@charset "utf-8";
/* CSS Document */

/* ==========================================
   文字の配置・整列 (Alignment)
   ========================================== */
.align-left   { text-align: left; }
.align-center { text-align: center; }
.align-right  { text-align: right; }
.align-top    { vertical-align: top; }
.align-middle { vertical-align: middle; }
.align-bottom { vertical-align: bottom; }

/* ==========================================
   行間 (Line Height)
   ========================================== */
.lh-11 { line-height: 1.1; }
.lh-12 { line-height: 1.2; }
.lh-13 { line-height: 1.3; }
.lh-15 { line-height: 1.5; }
.lh-17 { line-height: 1.7; } /* ★ツアー解説などの長文に一番おすすめ */
.lh-20 { line-height: 2.0; }
.lh-30 { line-height: 3.0; }

/* ==========================================
   角丸 (Border Radius)
   ========================================== */
.bl-5  { border-radius: 5px; }
.bl-10 { border-radius: 10px; }
.bl-15 { border-radius: 15px; }
.bl-20 { border-radius: 20px; }

/* ==========================================
   外側余白 (Margin Bottom / Top / Right / Left)
   ========================================== */
.mb-5   { margin-bottom: 5px; }
.mb-10  { margin-bottom: 10px; }
.mb-15  { margin-bottom: 15px; }
.mb-20  { margin-bottom: 20px; }
.mb-30  { margin-bottom: 30px; }
.mb-45  { margin-bottom: 45px; }
.mb-60  { margin-bottom: 60px; }
.mb-80  { margin-bottom: 80px; }
.mb-100 { margin-bottom: 100px; }

.mt-5   { margin-top: 5px; }
.mt-10  { margin-top: 10px; }
.mr-5   { margin-right: 5px; }
.ml-5   { margin-left: 5px; }
.mv-5   { margin: 0 5px; } /* ※数値を5pxに補正しました */

/* ==========================================
   文字の太さ (Font Weight)
   ========================================== */
.fw-b   { font-weight: bold; }
.fw-ber { font-weight: bolder; }

/* ==========================================
   内側余白 (Padding)
   ========================================== */
.pb-5   { padding-bottom: 5px; }
.pb-10  { padding-bottom: 10px; }
.pd-3   { padding: 3px; }
.pd-5   { padding: 5px; }
.pd-10  { padding: 10px; }
.pd-15  { padding: 15px; }
.pd-20  { padding: 20px; }
.pr-5   { padding-right: 5px; }
.pl-5   { padding-left: 5px; }
.pl-10  { padding-left: 10px; }
.pl-15  { padding-left: 15px; }
.ph-5   { padding: 0 5px; }
.ph-25  { padding: 2px 5px; }
.ph-510 { padding: 5px 10px; }

/* ==========================================
   文字サイズ (Font Size)
   ========================================== */
.fs-07 { font-size: 0.7em; }
.fs-08 { font-size: 0.8em; }
.fs-09 { font-size: 0.9em; }
.fs-11 { font-size: 1.1em; }
.fs-12 { font-size: 1.2em; }
.fs-13 { font-size: 1.3em; }
.fs-14 { font-size: 1.4em; }
.fs-15 { font-size: 1.5em; }

/* ==========================================
   文字色 (Font Color)
   ========================================== */
.red        { color: red; }
.navy       { color: navy; }
.sig        { color: #dc143c; }
.pink       { color: #dc143b; }
.orange     { color: #ff6700; }
.white      { color: white; }
.green      { color: #006478; }
.darkred    { color: darkred; }
.purple     { color: #514882; }
.black      { color: black; }
.brown      { color: brown; }
.hotpink    { color: hotpink; }
.navy-b     { color: navy; font-weight: bolder; }
.darkred-b  { color: darkred; font-weight: bolder; }
.green-b    { color: #006478; font-weight: bolder; }
.pink-b     { color: #dc143b; font-weight: bolder; }
.darkgrey-b { color: dimgray; font-weight: bolder; }
.red-b      { color: red; font-weight: bolder; }

/* ==========================================
   背景色 (Background Color)
   ========================================== */
.base-gray     { background-color: #ececec; }
.base-beige    { background-color: beige; }
.base-green    { background-color: #E3EDE3; }
.base-pink     { background-color: #FFF1EF; }
.base-darkpink { background-color: #dc143b; }
.base-darkred  { background-color: darkred; }
.base-orange   { background-color: #FFE3BC; }
.base-aiiro    { background-color: #DAE0F2; }
.base-yellow   { background-color: #ffff99; }
.base-white    { background-color: white; }
.base-purple   { background-color: #eee9f7; }
.base-sand     { background-color: #f7eedf; }
.base-navy     { background-color: navy; }
.base-blue     { background-color: #e6f2ff; }
.base-f2c9ea   { background-color: #f2c9ea; }
.base-lgray    { background-color: #f5f5f5; }

/* ==========================================
   見出し・タイトル (Title Styles)
   ========================================== */
.title {
    color: #3d3d3d;
    background-color: #d4d4d4;
    font-weight: bold;
    padding: 3px 5px;
    border-radius: 2px;
    margin-bottom: 5px;
}
.title_pink   { color: #dc143b; background-color: #ffe7e3; }
.title_brown  { color: #4a3016; background-color: #E5D0C0; }
.title_blue   { color: navy;    background-color: #D0E6FF; }
.title_green  { color: #006478; background-color: #C4D9C4; }
.title_purple { color: #4406a9; background-color: #DFD5F0; }
.title_yellow { color: #505200; background-color: #f9faaf; }

/* ==========================================
   ハイライト (Highlight Styles)
   ========================================== */
.hl {
    color: black;
    font-size: 0.9em;
    padding: 1px 5px;
    border-radius: 2px;
    margin: 0 5px 0 0;
}
.hl-blue   { background-color: #D0E6FF; }
.hl-pink   { background-color: #FFF1EF; }
.hl-green  { background-color: #E3EDE3; }
.hl-yellow { background-color: #ffff99; }
.hl-grey   { background-color: #ececec; }
.hl-purple { background-color: #eee9f7; }
.hl-orange { background-color: #FFE3BC; }
.hl-sand   { background-color: #f7eedf; }

/* ==========================================
   外枠・フレーム (Frame Borders)
   ========================================== */
.flame-green        { border-radius: 4px; border: 1px solid #006478; }
.flame-navy         { border-radius: 4px; border: 1px solid navy; }
.flame-darkpink     { border-radius: 4px; border: 1px solid #dc143b; }
.flame-orangered    { border-radius: 4px; border: 1px solid orangered; }
.flame-grey         { border-radius: 4px; border: 1px solid grey; } 
.flame-green2px     { border-radius: 4px; border: 2px solid #006478; }
.flame-navy2px      { border-radius: 4px; border: 2px solid navy; }
.flame-darkpink2px  { border-radius: 4px; border: 2px solid #dc143b; }
.flame-hotpink2px   { border-radius: 4px; border: 2px solid hotpink; }
.flame-orangered2px { border-radius: 4px; border: 2px solid orangered; }
.flame-grey2px      { border-radius: 4px; border: 2px solid grey; } 
.flame-white        { border-radius: 4px; border: 1px solid white; }
.flame-white2px     { border-radius: 4px; border: 2px solid white; }

.dash-f-green    { border-radius: 4px; border: 3px dashed #006478; padding: 5px; }
.dash-f-darkpink { border-radius: 4px; border: 3px dashed #dc143b; padding: 5px; }

/* ==========================================
   装飾バッジ (Decoration Tags)
   ========================================== */
.deco {
    color: white;
    font-weight: normal;
    font-size: 0.8em;
    padding: 2px 5px;
    border-radius: 4px;
}
.deco-darkpink { background-color: #dc143c; }
.deco-pink     { background-color: #e0649c; }
.deco-navy     { background-color: navy; }
.deco-green    { background-color: #006478; }
.deco-orange   { background-color: orangered; }
.deco-grey     { background-color: dimgrey; }
.deco-brown    { background-color: #4a3016; }
.deco-purple   { background-color: #514882; }

/* ==========================================
   国別などのマルチカラー修飾 (Multi-color)
   ========================================== 
.multi {
    color: black;
    font-weight: bold;
    padding: 2px 6px 2px 10px;
    border-radius: 4px;
    margin: 1px 0 2px;
}
.multi-cap {
    color: black;
    font-weight: bold;
    padding: 4px 6px;
    border-radius: 4px;
    font-size: 1.1em;
}
.multi-1, .multi-1-cap { background: #c9e0f2; }
.multi-2, .multi-2-cap { background: #f2c9ea; }
.multi-3, .multi-3-cap { background: #e0f2c9; }
.multi-4, .multi-4-cap { background: lightgray; }
.multi-5, .multi-5-cap { background: #ffd68a; }
.multi-6, .multi-6-cap { background: #c9b8e5; }
.multi-7, .multi-7-cap { background: #d1bdb3; }

/* ==========================================
   国別レクチャーベース (Country Lecture Borders)
   ========================================== */
.country-lec-base {
    border-width: 5px;
    border-style: solid;
    font-weight: normal;
    padding: 2px 6px 2px 0;
    border-radius: 4px;
    margin-bottom: 10px;
}
.country-lec-1 { border-color: #5899cc; }
.country-lec-2 { border-color: orchid; }
.country-lec-3 { border-color: #648c6e; }
.country-lec-4 { border-color: #697178; }
.country-lec-5 { border-color: #df724b; }