﻿@charset "euc-jp";

/*

    再利用可能なコンポーネント

*/

/* ----------------------------------------------------------
    アイコン()
------------------------------------------------------------- */
@font-face {
    font-family: 'xserver';
    font-style: normal;
    font-weight: normal;
    src: url(fonts/xserver.eot?-yof791);
    src: url(fonts/xserver.eot?#iefix-yof791) format('embedded-opentype'),
    url(fonts/xserver.ttf?-yof791) format('truetype'),
    url(fonts/xserver.woff?-yof791) format('woff'),
    url(fonts/xserver.svg?-yof791#xserver) format('svg');
}

.ico {
    font-family: 'xserver';
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    line-height: 1;
    vertical-align: middle;
    text-transform: none;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.ico--circle:before { content: "\e800"; }
.ico--circleDouble:before { content: "\e814"; }
.ico--circleFill:before { content: "\e801"; }
.ico--square:before { content: "\e802"; }
.ico--squareFill:before { content: "\e803"; }
.ico--exclamation:before { content: "\e804"; }
.ico--exclamationFill:before { content: "\e805"; }
.ico--triangleDown:before { content: "\e815"; }
.ico--triangleLeft:before { content: "\e816"; }
.ico--triangleRight:before { content: "\e817"; }
.ico--triangleUp:before { content: "\e818"; }
.ico--circleArrowDown:before { content: "\e806"; }
.ico--circleArrowLeft:before { content: "\e807"; }
.ico--circleArrowRight:before { content: "\e808"; }
.ico--circleArrowUp:before { content: "\e809"; }
.ico--arrowDown:before { content: "\e600"; }
.ico--arrowLeft:before { content: "\e601"; }
.ico--arrowRight:before { content: "\e602"; }
.ico--arrowUp:before { content: "\e603"; }
.ico--chevronDown:before { content: "\e604"; }
.ico--chevronLeft:before { content: "\e605"; }
.ico--chevronRight:before { content: "\e606"; }
.ico--chevronUp:before { content: "\e607"; }
.ico--circleDown:before { content: "\e608"; }
.ico--circleLeft:before { content: "\e609"; }
.ico--circleRight:before { content: "\e60a"; }
.ico--circleUp:before { content: "\e60b"; }
.ico--hierarchy:before { content: "\e624"; }
.ico--check:before { content: "\e80f"; }
.ico--cross:before { content: "\e60c"; }
.ico--plus:before { content: "\e60d"; }
.ico--minus:before { content: "\e60e"; }
.ico--menu:before { content: "\e60f"; }
.ico--list:before { content: "\e610"; }
.ico--book:before { content: "\e611"; }
.ico--display:before { content: "\e612"; }
.ico--circleCheck:before { content: "\e613"; }
.ico--email:before { content: "\e614"; }
.ico--gear:before { content: "\e615"; }
.ico--globe:before { content: "\e616"; }
.ico--home:before { content: "\e617"; }
.ico--lock:before { content: "\e618"; }
.ico--magnifier:before { content: "\e619"; }
.ico--mouse:before { content: "\e61a"; }
.ico--newWindow:before { content: "\e61b"; }
.ico--operator:before { content: "\e61c"; }
.ico--pencil:before { content: "\e61d"; }
.ico--phone:before { content: "\e61e"; }
.ico--refresh:before { content: "\e61f"; }
.ico--safety:before { content: "\e620"; }
.ico--server:before { content: "\e621"; }
.ico--tag:before { content: "\e622"; }
.ico--unlock:before { content: "\e623"; }
.ico--balloon:before { content: "\e80a"; }
.ico--balloonQ:before { content: "\e80b"; }
.ico--balloonA:before { content: "\e80c"; }
.ico--squareQ:before { content: "\e80d"; }
.ico--squareA:before { content: "\e80e"; }
.ico--q:before { content: "\e810"; }
.ico--signature:before { content: "\e811"; }
.ico--window:before { content: "\e812"; }
.ico--wordpress:before { content: "\e813"; }
.ico--squareExclamation:before { content: "\e900"; }
.ico--squareQuestion:before { content: "\e901"; }
.ico--smartPhone:before { content: "\e902"; }



/* ----------------------------------------------------------
    アイコン(xacc用)
------------------------------------------------------------- */

@font-face {
    font-family: 'xacc';
    src: url('fonts/xacc.eot');
    src: url('fonts/xacc.eot#iefix') format('embedded-opentype'),
    url('fonts/xacc.ttf') format('truetype'),
    url('fonts/xacc.woff') format('woff'),
    url('fonts/xacc.svg#xacc') format('svg');
    font-weight: normal;
    font-style: normal;
    font-display: block;
}


.ico-xacc {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'xacc' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    vertical-align: middle;

    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.ico-xacc--list:before {
    content: "\e90c";
}

.ico-xacc--menu:before {
    content: "\e90f";
}

/* ----------------------------------------------------------
    画像アイコン / .imgico
------------------------------------------------------------- */
.imgico {
    display: inline-block;
    background: url(../img/common/icons.png) 0 0 no-repeat;
    line-height: 0;
    vertical-align: middle;
}
.ie7 .imgico {
    display: inline;
    zoom: 1;
}
.imgico--medal {
    width: 16px;
    height: 23px;
    background-position: 0 0;
}
.imgico--markerGray {
    width: 7px;
    height: 4px;
    background-position: 0 -60px;
}
.imgico--markerBlue {
    width: 7px;
    height: 4px;
    background-position: -10px -60px;
}
.imgico--seveneleven {
    width: 36px;
    height: 35px;
    background-position: 0 -80px;
}
.imgico--lawson {
    width: 36px;
    height: 35px;
    background-position: -40px -80px;
}
.imgico--familymart {
    width: 36px;
    height: 35px;
    background-position: -80px -80px;
}
.imgico--dailyyamazaki {
    width: 36px;
    height: 35px;
    background-position: -120px -80px;
}
.imgico--ministop {
    width: 36px;
    height: 35px;
    background-position: -160px -80px;
}
.imgico--seicomart {
    width: 36px;
    height: 35px;
    background-position: -200px -80px;
}
.imgico--circlek {
    width: 36px;
    height: 35px;
    background-position: -240px -80px;
}
.imgico--2way {
    width: 39px;
    height: 39px;
    background-position: 0 -120px;
}
.imgico--circle-double {
    width: 26px;
    height: 26px;
    background-position: -50px 0;
}
.imgico--circle {
    width: 26px;
    height: 26px;
    background-position: -20px 0;
}
.imgico--circle-mini_orange {
    width: 11px;
    height: 11px;
    background-position: -80px 0;
}


/* ----------------------------------------------------------
    図(画像)
------------------------------------------------------------- */
.graph {
    display: inline-block;
    line-height: 1;
    vertical-align: middle;
    background: 50% 50% no-repeat;
    background-size: contain;
}

.graph--targetBlank {
    width: 10px;
    height: 9px;
    background-image: url(../img/common/ico_target_blank.png);
}

/* ----------------------------------------------------------
    ボタン
------------------------------------------------------------- */
.btn {
    cursor: pointer;
    display: inline-block;
    box-sizing: border-box;
    margin: 0 0 5px;
    padding: 8px 20px;
    border: none;
    font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "游ゴシック", YuGothic, sans-serif;
    text-align: center;
    background-color: #fff;
    background: -moz-linear-gradient(top, #fff 0, #fff 50%, #f4f4f4 51%, #f4f4f4 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, #fff), color-stop(50%, #fff), color-stop(51%, #f4f4f4), color-stop(100%, #f4f4f4));
    background: -webkit-linear-gradient(top, #fff 0, #fff 50%, #f4f4f4 51%, #f4f4f4 100%);
    background: -o-linear-gradient(top, #fff 0, #fff 50%, #f4f4f4 51%, #f4f4f4 100%);
    background: -ms-linear-gradient(top, #fff 0, #fff 50%, #f4f4f4 51%, #f4f4f4 100%);
    border-radius: 3px;
    -webkit-transition-property: transform, background-color;
    -o-transition-property: transform, background-color;
    transition-property: transform, background-color;
    -webkit-transition-duration: .1s;
    -o-transition-duration: .1s;
    transition-duration: .1s;
    -webkit-transition-timing-function: ease-out;
    -o-transition-timing-function: ease-out;
    transition-timing-function: ease-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
}
a.btn { text-decoration: none !important; }

/* PC */
@media only screen and (min-width: 1000px) {
    .btn:hover {
        -webkit-transform: translateY(2px);
        -ms-transform: translateY(2px);
        transform: translateY(2px);
    }
}

.btn--primary {
    border: 1px solid #113d6b;
    color: #113d6b !important;
}
.btn--primary:hover {
    background: #f4f4f4;
    background: -moz-linear-gradient(top, #f4f4f4 0, #f4f4f4 50%, #e4e4e4 51%, #e4e4e4 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, #f4f4f4), color-stop(50%, #f4f4f4), color-stop(51%, #e4e4e4), color-stop(100%, #e4e4e4));
    background: -webkit-linear-gradient(top, #f4f4f4 0, #f4f4f4 50%, #e4e4e4 51%, #e4e4e4 100%);
    background: -o-linear-gradient(top, #f4f4f4 0, #f4f4f4 50%, #e4e4e4 51%, #e4e4e4 100%);
    background: -ms-linear-gradient(top, #f4f4f4 0, #f4f4f4 50%, #e4e4e4 51%, #e4e4e4 100%);
}

.btn--baseColor {
    background-color: #113d6b;
    background: -moz-linear-gradient(top, #113d6b 0, #113d6b 50%, #0f3760 51%, #0f3760 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, #113d6b), color-stop(50%, #113d6b), color-stop(51%, #0f3760), color-stop(100%, #0f3760));
    background: -webkit-linear-gradient(top, #113d6b 0, #113d6b 50%, #0f3760 51%, #0f3760 100%);
    background: -o-linear-gradient(top, #113d6b 0, #113d6b 50%, #0f3760 51%, #0f3760 100%);
    background: -ms-linear-gradient(top, #113d6b 0, #113d6b 50%, #0f3760 51%, #0f3760 100%);
    color: #fff !important;
}
.btn--baseColor > .ico {
    color: #fff !important;
}

.btn--orange {
    background-color: #ffba00;
    background: -moz-linear-gradient(top, #ffba00 0, #ffba00 50%, #ffab00 51%, #ffab00 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, #ffba00), color-stop(50%, #ffba00), color-stop(51%, #ffab00), color-stop(100%, #ffab00));
    background: -webkit-linear-gradient(top, #ffba00 0, #ffba00 50%, #ffab00 51%, #ffab00 100%);
    background: -o-linear-gradient(top, #ffba00 0, #ffba00 50%, #ffab00 51%, #ffab00 100%);
    background: -ms-linear-gradient(top, #ffba00 0, #ffba00 50%, #ffab00 51%, #ffab00 100%);
    color: #1A2E51 !important;
}
.btn--orange > .ico {
    color: #1A2E51 !important;
}

.btn--s {
    padding: 13px 15px;
    font-size: 14px;
}
.btn--l {
    padding: 14px 24px;
    font-size: 18px;
}
.btn--xl {
    padding: 18px 40px;
    font-size: 24px;
}


/* ----------------------------------------------------------
    幅、余白確保ボックス
------------------------------------------------------------- */

/* PC */
@media only screen and (min-width: 960px) {
    .holderL,
    .holderSL,
    .holderML,
    .holderSML {
        width: 960px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Tab */
@media only screen and (min-width: 768px) and (max-width: 959px) {
    .holderM,
    .holderSM,
    .holderML,
    .holderSML {
        width: 94.79%;
        margin-left: auto;
        margin-right: auto;
    }
}

/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .holderS,
    .holderSM,
    .holderSL,
    .holderSML {
        width: 93.75%;
        margin-left: auto;
        margin-right: auto;
    }
}

/* ----------------------------------------------------------
    テーブル / .table
------------------------------------------------------------- */

.table {
    width: 100%;
    margin: 0 0 20px;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
}
.table caption {
    padding: 10px 15px;
    background: #113d6b;
    border-bottom: 1px solid #fff;
    color: #fff;
    font-weight: normal;
    text-align: center;
}
.table th,
.table td {
    padding: 10px 15px;
    vertical-align: middle;
}
.table td {
    border-bottom: 1px solid #e5e5e5;
    border-right: 1px solid #e5e5e5;
}
.table td:last-child { border-right: none; }
.table th > :last-child,
.table td > :last-child { margin-bottom: 0; }
.table thead th {
    background: #285686;
    border-right: 1px solid #c6d0db;
    color: #fff;
    font-weight: normal;
    text-align: center;
}
.table thead th:last-child { border: none; }

.table tbody:first-child { border-top: 1px solid #e1e1e1; }

.table tbody th {
    background: #f4f9ff;
    border-bottom: 1px solid #e1e1e1;
    font-weight: bold;
    color: #113d6b;
}
.table tbody tr:nth-child(even) th { background: #eef6ff;}
.table tbody tr:nth-child(even) td { background: #f9f9f9; }

.table--useCaption thead th {
    background: #28507a;
    border-right: 1px solid #e1e1e1;
    color: #fff;
}
.table--useCaption thead th:last-child { border: none; }
.table table{ font-size: 14px; }

.table caption a,
.table thead th a { color: #fff; }

/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .table--responsive { width: 100%; }
    .table--responsive th,
    .table--responsive td {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        display: block;
        width: 100%;
        text-align: center;
    }
    .table--responsive th {
        padding: 10px;
        background-position: 0 100%;
    }
    .table--responsive td { border-bottom: 1px solid #ddd; }
    .table--responsive td:last-child { border-bottom: none; }
    .table--responsive tbody tr:nth-child(even) th { background: #f4f9ff; }
    .table--responsive tbody tr:nth-child(even) td { background: #fff; }
}

/* ----------------------------------------------------------
    レスポンシブテーブル
------------------------------------------------------------- */
.noJS .primaryTableML,
.noJS .primaryTableL { display: table !important; }

/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .primaryTableML,
    .primaryTableL { display: none; }

    .secondlyTableS,
    .secondlyTableSM { margin: 0 0 10px; }

    .secondlyTableS caption,
    .secondlyTableS th,
    .secondlyTableS td,
    .secondlyTableSM caption,
    .secondlyTableSM th,
    .secondlyTableSM td { padding: 5px; }
}

/* Tab */
@media only screen and (min-width: 768px) and (max-width: 959px) {
    .primaryTableL { display: none; }
    .secondlyTableS { display: none; }

    .secondlyTableSM { margin: 0 0 10px; }

    .secondlyTableSM caption,
    .secondlyTableSM th,
    .secondlyTableSM td { padding: 5px; }
}

/* PC */
@media only screen and (min-width: 960px) {
    .secondlyTableS,
    .secondlyTableSM { display: none; }
}

/* ----------------------------------------------------------
    注釈 / .note, noteList
------------------------------------------------------------- */
.note,
.note--x2,
.note--x3,
.noteList > li,
.noteList--x2 > li,
.noteList--x3 > li {
    margin-left: 1em;
    font-size: 14px;
    text-indent: -1em;
}
.note--x2,
.noteList--x2 > li {
    margin-left: 2em;
    text-indent: -2em;
}
.note--x3,
.noteList--x3 > li {
    margin-left: 3em;
    text-indent: -3em;
}
.noteList--margin > li { margin-bottom: 10px; }
.noteList--margin > li:last-child { margin-bottom: 0; }

/* ----------------------------------------------------------
    ページタイトル / .ttl
------------------------------------------------------------- */
.ttl {
    position: relative;
    margin: 0 0 30px;
    padding: 22px 12px 20px;
    background: #f8f9fa url(../img/common/bg_diagonal_lightgray.png) 0 0 repeat;
    color: #333;
    font-size: 26px;
    font-weight: bold;
    border-bottom: 3px solid #113d6b;
}

/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .ttl {
        margin: 0 0 25px;
        padding: 16px 12px 14px;
        font-size: 22px;
    }
}

/* ----------------------------------------------------------
    最も大きなセクション(h2相当)
------------------------------------------------------------- */
.section {
    margin: 0 0 40px;
}
.section:last-child {
    margin-bottom: 0;
}

.section__ttl {
    margin: 0 0 25px;
    padding: 0 0 11px;
    color: #333;
    border-bottom: 1px solid #113d6b;
    font-size: 20px;
    font-weight: bold;
}

.section__body {}
.section__body > :last-child { margin-bottom: 0; }

.section__footer {
    padding: 20px 0 0;
    border-top: 1px solid #ddd;
}

/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .section__ttl {
        margin-bottom: 20px;
        padding-bottom: 8px;
        font-size: 18px;
    }
}

/* ----------------------------------------------------------
    2番目に大きなブロック(h3相当)
------------------------------------------------------------- */
.block {
    margin: 0 0 30px;
}
.block:last-child {
    margin-bottom: 0;
}

.block__ttl {
    margin: 0 0 20px;
    color: #113d6b;
    font-size: 18px;
    font-weight: bold;
    font-family: Helvetica, Arial, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
}

.block__body {}
.block__body > :last-child { margin-bottom: 0; }

/* ----------------------------------------------------------
    3番目に大きなブロック(h4相当)
------------------------------------------------------------- */
.serialBox { margin: 0 0 30px 0; }

.box {
    margin: 0 0 20px;
    border: 1px solid #d8d8d8;
}
.serialBox .box {
    margin: 0;
    border-bottom: none;
}
.serialBox .box:last-child { border-bottom: 1px solid #d8d8d8; }

.box__ttl {
    margin: 0;
    padding: 13px;
    background: #e8f3f6;
    border-bottom: 1px solid #d8d8d8;
    color: #1f86a8;
    font-weight: bold;
    font-family: Helvetica, Arial, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
}
.box__ttl:last-child {
    margin-bottom: 0;
    border-bottom: none;
}

.box__body {
    padding: 10px 13px 20px;
    background: #fff;
}
.box__body > :last-child { margin-bottom: 0; }

/* ----------------------------------------------------------
    画像フレーム / .img
------------------------------------------------------------- */
.img {
    max-width: 100%;
    border: 1px solid #ddd;
}

/* ----------------------------------------------------------
    画像付きボックス
------------------------------------------------------------- */
.media { clear: both; }
.media:before, .media:after {
    content: " ";
    display: table;
}
.media:after { clear: both; }
.media { *zoom: 1; }

.media__image {
    float: left;
    margin-right: 15px;
}
.media__image > img { display: block; }
.media__image--rev {
    float: right;
    margin-left: 15px;
    margin-right: 0;
}
.media__body { overflow: hidden; }
.media__body > :last-child { margin-bottom: 0; }

/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .media__image {
        float: none;
        display: block;
        margin: 0 0 10px;
        text-align: center;
    }
    .media__image > img { display: inline; }
    .media__image--rev {
        float: none;
        margin: 0 0 10px;
    }
    .media__body { overflow: visible; }
}

/* ----------------------------------------------------------
    リスト(デフォルトスタイル)
------------------------------------------------------------- */
.ul {
    margin: 0 0 1em 1.5em;
    list-style: disc outside;
}
.ul--margin > li { margin-bottom: 1em; }

.ol {
    margin: 0 0 1em 1.5em;
    list-style: decimal outside;
}
.ol--lowerRoman { list-style-type: lower-roman; }
.ol--margin > li { margin-bottom: 1em; }

/* ----------------------------------------------------------
    リスト(アイコン付き)
------------------------------------------------------------- */
.list { margin: 0 0 1em 1.5em; }
.list > li { position: relative; }
.list > li li { margin: 0 0 0 13px; }
.list > li:after {
    content: '';
    position: absolute;
    top: .5em;
    left: -1.1em;
    display: block;
}

.list--margin > li { margin-bottom: 1em; }

.list--arrowDown > li:after {
    top: .6em;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #113d6b;
}

.list--arrowUp > li:after {
    top: .6em;
    width: 0;
    height: 0;
    border-bottom: 5px solid #113d6b;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
}

.list--arrowRight > li:after {
    top: .6em;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #113d6b;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
}


/* ----------------------------------------------------------
    定義 / .dl
------------------------------------------------------------- */
.dl {
    margin: 0 0 1em;
    padding: 10px;
    background: #fff;
    border: 1px solid #eee;
}
.dl dt {
    margin: 0 0 10px;
    padding: 5px 8px;
    background: #e8f7f6;
    font-weight: bold;
}
.dl dd {
    margin: 0 0 20px;

    padding: 0 0 0 1em;
}
.dl dd > :last-child { margin-bottom: 0; }
/* SP */
@media only screen and (min-width: 0) and (max-width: 767px) {
    .dl dd { padding: 0; }
}

/* ----------------------------------------------------------
    ボーダーボックス / .border
------------------------------------------------------------- */
.border {
    margin-bottom: 1em;
    padding: 12px 15px;
    border: 1px solid;
}
.border > :last-child { margin-bottom: 0; }

.border--gray {
    background-color: #fff;
    border-color: #ccc;
}

.border--blue {
    background-color: #f7f8fa;
    border-color: #84a8c5;
}

.border--yellow {
    background-color: #fffdf5;
    border-color: #efe6c0;
}

.border--green {
    background-color: #e8f7f6;
    border-color: #b7e2df;
}

/* ----------------------------------------------------------
    ステッカー / .sticker
------------------------------------------------------------- */
.sticker {
    display: inline-block;
    margin: 0 5px;
    padding: 4px 5px;
    background: #20b5aa;
    border: 1px solid #fff;
    border-radius: 3px;
    color: #fff;
    font-size: 10px;
    font-weight: bold;
    line-height: 1;
    vertical-align: middle;
    text-decoration: none !important;
    -webkit-box-shadow: 0 0 3px 0 #ccc;
    -moz-box-shadow: 0 0 3px 0 #ccc;
    box-shadow: 0 1px 1px 0 #ccc;
    -webkit-transition: background-color .1s ease-out;
    -o-transition: background-color .1s ease-out;
    transition: background-color .1s ease-out;
}
a.sticker:hover {

    background: #129a8d;
    color: #fff;
}

/* ----------------------------------------------------------
    ツールチップ
------------------------------------------------------------- */
.tooltip {
    display: inline-block;
    margin: 0 0 0 5px;
    vertical-align: top;
    cursor: pointer;
}

.tooltip__balloon {
    text-align: left;
    color: #000;
    background: #fff;
    border: 1px solid #333333;
    position: absolute;
    z-index: 100;
    padding: 10px;
    font-size: 12px;
}

.tooltip__balloon:before {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #333;
    content: '';
    position: absolute;
    left: 50%;
    bottom: -11px;
    margin-left: -10px;
}

.tooltip__balloon:after {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #fff;
    content: '';
    position: absolute;
    left: 50%;
    bottom: -10px;
    margin-left: -10px;
}

.tooltip__balloon.top:before {
    border-top-color: transparent;
    border-bottom: 10px solid #333;
    top: -21px;
    bottom: auto;
}
.tooltip__balloon.top:after {
    border-top-color: transparent;
    border-bottom: 10px solid #fff;
    top: -20px;
    bottom: auto;
}


.tooltip__balloon.left:before,
.tooltip__balloon.left:after {
    left: 10px;
    margin: 0;
}

.tooltip__balloon.right:before,
.tooltip__balloon.right:after {
    right: 10px;
    left: auto;
    margin: 0;
}

/* ----------------------------------------------------------
    リンク / .link
------------------------------------------------------------- */
.link { display: inline-block; }
.link .ico {
    margin: 0 5px;
    color: #1b63a7;
}

/* ----------------------------------------------------------
    サンプルコード / .code
------------------------------------------------------------- */
.code {
    margin-bottom: 1em;
    padding: 12px 15px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    font-size: 14px;
    -webkit-box-shadow: 1px 1px 2px #eee inset;
    -moz-box-shadow: 1px 1px 2px #eee inset;
    box-shadow: 1px 1px 2px #eee inset;
}

/* ----------------------------------------------------------
    メッセージ / .msg
------------------------------------------------------------- */
.msg {
    margin: 0 0 20px;
    padding: 15px;
    background: #f7f7f7;
    border: 1px solid #ddd;
}
.msg > :last-child { margin-bottom: 0; }
.msg .btn { margin: 0 5px 5px 0; }

.msg__ttl {
    margin: 0 0 10px;
    color: #129a8d;
    font-size: 16px;
    font-weight: bold;
}
.msg__ttl .ico {
    margin: 0 5px 0 0;
    font-size: 18px;
}

.msg__body {}
.msg__body > :last-child { margin-bottom: 0; }

.msg--notice {
    background: #FBF8EA;
    border-color: #e7e3d3;
}
.msg--notice .msg__ttl { color: #eca700; }

.msg--caution {
    background: #FBEDED;
    border-color: #ebd5d5;
}
.msg--caution .msg__ttl { color: #BF1517; }
