/* normalize.css v3.0.2 | MIT License | git.io/normalize */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */
audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */
[hidden], template { display: none; }

/* Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background-color: transparent; }

/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }

/* Text-level semantics ========================================================================== */
/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari and Chrome. */
dfn { font-style: italic; }

/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9/10. */
img { border: 0; }

/** Correct overflow not hidden in IE 9/10/11. */
svg:not(:root) { overflow: hidden; }

/* Grouping content ========================================================================== */
/** Address margin not present in IE 8/9 and Safari. */
figure { margin: 1em 40px; }

/** Address differences between Firefox and other browsers. */
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }

/** Contain overflow in all browsers. */
pre { overflow: auto; }

/** Address odd `em`-unit font size rendering in all browsers. */
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }

/* Forms ========================================================================== */
/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */
/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */
button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ }

/** Address `overflow` set to `hidden` in IE 8/9/10/11. */
button { overflow: visible; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
input { line-height: normal; }

/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width.  1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }

/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** Remove default vertical scrollbar in IE 8/9/10/11. */
textarea { overflow: auto; }

/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */
optgroup { font-weight: bold; }

/* Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

td, th { padding: 0; }

/* HTML5 Boilerplate v5.2.0 | MIT License | https://html5boilerplate.com/ */
/* What follows is the result of much research on cross-browser styling. Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, Kroc Camen, and the H5BP dev community and team. */
/* ========================================================================== Base styles: opinionated defaults ========================================================================== */
html { color: #000; font-size: 1em; line-height: 1.875; }

/* Remove text-shadow in selection highlight: https://twitter.com/miketaylr/status/12228805301  These selection rule sets have to be separate. Customize the background color to match your design. */
::-moz-selection { background: #b3d4fc; text-shadow: none; }

::selection { background: #b3d4fc; text-shadow: none; }

/* A better looking default horizontal rule */
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }

/* Remove the gap between audio, canvas, iframes, images, videos and the bottom of their containers: https://github.com/h5bp/html5-boilerplate/issues/440 */
audio, canvas, iframe, img, svg, video { vertical-align: middle; }

/* Remove default fieldset styles. */
fieldset { border: 0; margin: 0; padding: 0; }

/* Allow only vertical resizing of textareas. */
textarea { resize: vertical; }

/* ========================================================================== Author's custom styles ========================================================================== */
body { font-family: "游ゴシック", "Yu Gothic", YuGothic, 'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,sans-serif; }

body.mct2015 { padding-top: 0; }

body.mct2015 .navbar-search { margin-top: 0; }

h1, h2, h3, h4, p, ul, ol { margin: 0; padding: 0; }

a { color: #0088cc; text-decoration: none; }

/* header_global */
#header_global { background: url(../img/bg_header_global.png) repeat-x 0 0; background-color: #f8f8f6; height: 40px; -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px; -moz-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px; box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px; }

#header_global .header_inner { margin: 0 auto; width: 950px; }

#header_global h1, #header_global ul, #header_global li { margin: 0; padding: 0; list-style: none; float: left; }

#header_global ul.second { float: right; }

.global_makej a { display: block; width: 120px; height: 40px; overflow: hidden; text-indent: 100%; font-size: 0; line-height: 0; white-space: nowrap; background: url(../img/bt_global_makejapan.png) no-repeat left top; }

.nav_global_blog a { display: block; width: 80px; height: 40px; overflow: hidden; text-indent: 100%; font-size: 0; line-height: 0; white-space: nowrap; background: url(../img/bt_global_blog.png) no-repeat left top; }

.nav_global_mfus a { display: block; width: 160px; height: 40px; overflow: hidden; text-indent: 100%; font-size: 0; line-height: 0; white-space: nowrap; background: url(../img/bt_global_makerfaire.png) no-repeat left top; }

.global_makej a:hover, .global_makej a:active, .nav_global_blog a:hover, .nav_global_blog a:active, .nav_global_mfus a:hover, .nav_global_mfus a:active { background-position-y: -40px; }

#header_global .nav_global_search { padding: 5px 0 0; line-height: 1; }

.nav_global_search input { vertical-align: middle; }

.nav_global_search input[type="text"] { padding: 0 5px 0 25px; width: 160px; height: 28px; border: none; background: url(../img/bg_search.png) no-repeat left top; }

.nav_global_lang { position: absolute; width: 950px; font-size: 14px; text-align: right; }

/* header_home */
#header_home #vi { height: 394px; background-image: url(../img/bg_header_home.jpg); background-position: center top; background-repeat: no-repeat; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; }
#header_home #vi .ph { width: 951px; margin: 0 auto; padding-top: 42px; }

/*
* header_regular
*/
#header_regular { margin-top: 10px; }
#header_regular #vi { margin-bottom: -33px; }
#header_regular #vi p { width: 1000px; margin: 0 auto; }

/*
* footer_global
*/
#footer { margin-top: 100px; background: url(../img/bg_footer.png) repeat-x 50% 0 #083c54; padding-top: 30px; padding-bottom: 35px; margin-bottom: -9px; }

.footer_inner { margin: 0 auto; width: 950px; padding: 0; }

#footer .ls { width: 675px; }

#nav_footer { list-style: none; margin: 24px 0 0; padding: 0; font-size: 14px; line-height: 1; }

#nav_footer li { display: inline; margin-left: 25px; }

#nav_footer li:first-child { border-left: none; padding-left: 0; margin-left: 0; }

#nav_footer a { color: #fff; }

#nav_footer a:hover, #nav_footer a:active { color: #eee; }

#copyright { margin: 15px 0 0; color: #778994; font-size: 12px; font-weight: bold; line-height: 1; }

#footer .rs { padding-top: 11px; }

#btn_footer_sns { list-style: none; margin: 0; padding: 0 5px 0 0; text-align: right; }

#btn_footer_sns li { display: inline-block; vertical-align: bottom; margin-left: 10px; }

a.social { display: block; overflow: hidden; width: 38px; height: 38px; text-indent: 100%; font-size: 0; line-height: 0; white-space: nowrap; background: url(../img/bt_sns.png) no-repeat left 0px; }

a.sns_fb { background-position: 0 -38px; }

a.sns_ig { background-position: 0 -76px; }

a.sns_yt { background-position: 0 -114px; }

#logo_make { display: inline-block; vertical-align: bottom; }

#logo_oreilly { display: inline-block; margin: 11px 0 0 40px; vertical-align: bottom; }

/* main */
#main { background-color: #FFF; border-top: solid 6px #00abcd; }

#main-content { margin: 0 auto; width: 950px; /* Layout */ }
body.home #main-content #primary { margin-top: 50px; }
#main-content #secondary { margin-top: 50px; float: left; width: 240px; }
#main-content #secondary nav ul { min-height: 161px; background: transparent url(../img/line_nav.png) left top no-repeat; }
#main-content #secondary nav li { display: block; padding-top: 1px; }
#main-content #secondary nav li a { display: block; padding-left: 12px; width: 228px; font-size: 14px; font-weight: 500; line-height: 37px; border-top: solid 1px #fff; border-bottom: solid 1px #fff; background-image: url(../img/sprite_nav.png); background-repeat: no-repeat; }
#main-content #secondary nav li a:hover { background-color: #f2f2f0; }
#main-content #secondary nav li.nav_1 a { background-position: 216px 10px; }
#main-content #secondary nav li.nav_1 a:hover { color: #00abcd; background-position: 216px -56px; }
body.home #main-content #secondary nav li.nav_1 a { background-color: #f2f2f0; }
#main-content #secondary nav li.nav_2 a, #main-content #secondary nav li.nav_3 a, #main-content #secondary nav li.nav_4 a { background-position: 219px -124px; }
#main-content #secondary nav li.nav_2 a:hover, #main-content #secondary nav li.nav_3 a:hover, #main-content #secondary nav li.nav_4 a:hover { color: #00abcd; background-position: 219px -194px; }
body.program #main-content #secondary nav li.nav_2 a { background-color: #f2f2f0; }
body.sponsor #main-content #secondary nav li.nav_3 a { background-color: #f2f2f0; }
body.archive #main-content #secondary nav li.nav_4 a { background-color: #f2f2f0; }
#main-content #secondary .bnr { margin-top: 20px; }
#main-content #secondary .bnr a { display: block; width: 240px; height: 90px; background-image: url(../img/sprite_ticket.png); background-repeat: no-repeat; }
#main-content #secondary .bnr a:hover { background-position: 0 -100px; }
#main-content #secondary #twitter { margin-top: 20px; }
#main-content #primary { float: right; width: 650px; }
#main-content #primary .ttl_page { margin: 10px 0 21px; font-size: 20px; line-height: 1; color: #00abcd; text-align: right; }
#main-content #primary article { padding-left: 10px; width: 640px; }
#main-content #primary article a { color: #08c; font-weight: 500; text-decoration: none; }
#main-content #primary article a:hover { color: #00abcd; text-decoration: underline; }
#main-content #primary article h1 { margin-bottom: 38px; color: #e21a22; font-size: 24px; font-weight: 500; line-height: 1; }
#main-content #primary article h2 { color: black; font-size: 20px; font-weight: 700; line-height: 1; }
#main-content #primary article table tr { background: transparent url(../img/line_dots.png) left top repeat-x; }
#main-content #primary article table th, #main-content #primary article table td { padding-top: 11px; padding-bottom: 11px; }
#main-content #primary article table th { padding-left: 12px; width: 188px; text-align: left; vertical-align: top; }
#main-content #primary article table td { width: 440px; }
body.home #main-content #primary article.box_1 table, body.home #main-content #primary article.box_5 table { margin-top: 13px; }
body.home #main-content #primary article.box_1 ul, body.home #main-content #primary article.box_5 ul { margin-top: 11px; }
body.home #main-content #primary article.box_1 ul li, body.home #main-content #primary article.box_5 ul li { color: #666; font-size: 12px; line-height: 20px; list-style: none; text-indent: -1em; padding-left: 1em; }
body.home #main-content #primary article.box_3 .note { padding-top: 9px; padding-left: 12px; color: #666; font-size: 12px; line-height: 20px; background: transparent url(../img/line_dots.png) left top repeat-x; }
body.home #main-content #primary article.box_3 table span { font-size: 14px; }
body.home #main-content #primary article.box_3 table tr.dark { background: transparent url(../img/line_dots.png) left top repeat-x !important; }
body.home #main-content #primary article.box_3 table tr.dark th, body.home #main-content #primary article.box_3 table tr.dark td { padding: 1px 0 0; line-height: 47px; }
body.home #main-content #primary article.box_3 table tr.dark th span { display: block; padding-left: 12px; border-top: solid 1px #fff; border-bottom: solid 1px #fff; background-color: #f2f2f0; font-size: 16px; }
body.home #main-content #primary article.box_3 table tr.dark td span { display: block; border-top: solid 1px #fff; border-bottom: solid 1px #fff; background-color: #f2f2f0; font-size: 16px; }
body.home #main-content #primary article.box_4 .box_speaker { padding-top: 10px; background: transparent url(../img/line_dots.png) left top repeat-x; }
body.home #main-content #primary article.box_4 .box_speaker .photo { float: left; }
body.home #main-content #primary article.box_4 .box_speaker .text { float: right; width: 440px; }
body.home #main-content #primary article.box_4 .box_speaker .text .name { font-size: 20px; font-weight: 700; line-height: 30px; }
body.home #main-content #primary article.box_4 .box_speaker .text .name span { font-size: 16px; }
body.home #main-content #primary article.box_4 .box_speaker .text .post { font-size: 14px; line-height: 20px; }
body.home #main-content #primary article.box_4 .box_speaker .text .detail { margin-top: 10px; }
body.home #main-content #primary article.box_6 .low { padding-top: 12px; padding-bottom: 20px; background: transparent url(../img/line_dots.png) left top repeat-x; }
body.home #main-content #primary article.box_6 p { font-size: 12px; font-weight: 700; line-height: 16px; }
body.home #main-content #primary article.box_6 ul { margin-top: 8px; }
body.home #main-content #primary article.box_6 ul li { display: block; float: left; list-style: none; }
body.home #main-content #primary article.box_6 ul li a { display: block; }
body.home #main-content #primary article.box_6 .box_gold ul li { margin-right: 50px; }
body.home #main-content #primary article.box_6 .box_gold ul li:last-child { margin-right: 0; }
body.home #main-content #primary article.box_6 .box_silver ul li { margin-right: 40px; }
body.home #main-content #primary article.box_6 .box_silver ul li:last-child { margin-right: 0; }
body.home #main-content #primary article.box_7 .map { border: solid 1px #a0a0a0; }
body.home #main-content #primary article.box_7 .link_map { margin-top: 12px; text-align: right; }
body.home #main-content #primary article.box_7 .link_map a { font-size: 14px; line-height: 20px; }
body.home #main-content #primary article.box_8 ul li { list-style: none; }
body.home #main-content #primary article.box_9 { padding-left: 12px; color: #666; font-size: 12px; line-height: 16px; }
body.program #main-content #primary article .time { font-size: 20px; font-weight: 700; line-height: 30px; color: #e21a22; }
body.program #main-content #primary article .ttl, body.program #main-content #primary article .name { font-size: 20px; font-weight: 700; line-height: 30px; }
body.program #main-content #primary article .ttl span, body.program #main-content #primary article .name span { font-size: 16px; }
body.program #main-content #primary article .post { font-size: 14px; line-height: 20px; }
body.program #main-content #primary article .detail { margin-top: 7px; }
body.program #main-content #primary article .box_1col, body.program #main-content #primary article .box_2col_1, body.program #main-content #primary article .box_2col_2 { padding: 10px 0; background: transparent url(../img/line_dots.png) left top repeat-x; }
body.program #main-content #primary article .box_2col_1 .photo { float: left; }
body.program #main-content #primary article .box_2col_1 .text { float: right; width: 440px; }
body.program #main-content #primary article .box_2col_2 .col_left { float: left; width: 200px; }
body.program #main-content #primary article .box_2col_2 .col_right { float: right; width: 440px; }
body.program #main-content #primary article .box_2col_2 .name { font-size: 16px; }
body.program #main-content #primary article .box_2col_2 .name span { font-size: 12px; }
body.program #main-content #primary article .box_2col_2 .post { font-size: 12px; }
body.program #main-content #primary article .box_2col_2 .detail { margin-top: 2px; font-size: 14px; line-height: 24px; }
body.program #main-content #primary article.box_presentation .box_1col .name { font-size: 16px; }
body.program #main-content #primary article.box_presentation .box_1col .name span { font-size: 12px; }
body.program #main-content #primary article.box_demo .box_1col .name { font-size: 16px; }
body.sponsor #main-content #primary article .box_2col_1 { padding: 10px 0; background: transparent url(../img/line_dots.png) left top repeat-x; }
body.sponsor #main-content #primary article .box_2col_1 .photo { float: left; }
body.sponsor #main-content #primary article .box_2col_1 .text { float: right; width: 440px; }
body.sponsor #main-content #primary article .box_2col_1 .text .name { font-size: 20px; font-weight: 700; line-height: 30px; }
body.sponsor #main-content #primary article .box_2col_1 .text .link { margin-top: 12px; }
body.sponsor #main-content #primary article.box_silver .box_2col_1 .photo { padding-left: 25px; }
body.sponsor #main-content #primary article.box_copper .box_2col_1 .photo { padding-left: 40px; }
body.archive #main-content #primary article .box_1col { padding: 10px 0 20px; background: transparent url(../img/line_dots.png) left top repeat-x; }
body.archive #main-content #primary article .box_1col .ttl, body.archive #main-content #primary article .box_1col .name { font-size: 20px; font-weight: 700; line-height: 30px; }
body.archive #main-content #primary article .box_1col .name { margin-top: 6px; }
body.archive #main-content #primary article .box_1col .name span { font-size: 16px; }
body.archive #main-content #primary article .box_1col .post { font-size: 14px; line-height: 20px; }
body.archive #main-content #primary article .box_1col .link { margin-top: 16px; }
body.archive #main-content #primary article .box_1col .video { margin-top: 13px; }
body.archive #main-content #primary article.box_2 .box_1col .ttl { margin-bottom: 5px; }
body.archive #main-content #primary article.box_2 .box_1col .name { margin-top: 0; font-size: 16px; font-weight: 700; line-height: 20px; }
body.archive #main-content #primary article.box_2 .box_1col .name span { font-size: 12px; }
#main-content #primary .box_pagetop { margin: 50px 0 25px; width: 650px; border-top: solid 6px #00abcd; }
#main-content #primary .box_pagetop a { float: right; display: block; margin-top: -11px; width: 30px; height: 11px; background: white url(../img/sprite_nav.png) 10px -272px no-repeat; }
#main-content #primary .box_pagetop a:hover { background-position: 10px -333px; }

/* ========================================================================== Helper classes ========================================================================== */
/* Hide visually and from screen readers: */
.hidden { display: none !important; }

/* Hide only visually, but have it available for screen readers: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility */
.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }

/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: https://www.drupal.org/node/897638 */
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }

/* Hide visually and from screen readers, but maintain layout */
.invisible { visibility: hidden; }

/* Clearfix: contain floats  For modern browsers 1. The space content is one way to avoid an Opera bug when the `contenteditable` attribute is included anywhere else in the document. Otherwise it causes space to appear at the top and bottom of elements that receive the `clearfix` class. 2. The use of `table` rather than `block` is only necessary if using `:before` to contain the top-margins of child elements. */
.clearfix:before, .clearfix:after { content: " "; /* 1 */ display: table; /* 2 */ }

.clearfix:after { clear: both; }
