@charset "UTF-8";

/* ==========================================
   Base Styles & Transitions
   ========================================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    color: #333333;
    background-color: #f8fafc;
    line-height: 1.6;
    font-size: 15px;
}

a, a:focus, a:hover {
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
}

.container {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px 40px 20px;
}

/* ==========================================
   Site Header
   ========================================== */
.site-header {
    background-color: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    padding: 20px;
    margin-bottom: 35px;
}

.header-inner {
    max-width: 800px;
    margin: 0 auto;
}

.header-flex {
    display: flex;
    align-items: center;
    gap: 20px;
}

.header-logo {
    flex-shrink: 0;
}

.header-logo img {
    height: 75px;
    width: auto;
    display: block;
}

.page-title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    color: #1e293b;
    letter-spacing: 0.02em;
}

/* ==========================================
   イベント＆セミナー
   ========================================== */
.content-section {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-left: 5px solid #3b65a5; /* エリア専用アクセントカラー */
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 35px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.section-logo {
    margin-bottom: 15px;
}

.section-logo img {
    max-width: 280px;
    width: 100%;
    height: auto;
    display: block;
}

.section-title {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 12px;
    color: #111111;
}

.section-title a {
    color: #3b65a5;
    text-decoration: none;
}

.section-title a:hover,
.section-title a:focus {
    opacity: 0.75;
}

.description {
    font-size: 18px;
    color: #333333;
    margin-bottom: 25px;
    line-height: 1.7;
}

/* イベントリスト */
.event-list {
    margin-bottom: 0;
}

.event-item {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px dashed #e2e8f0;
}

.event-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.event-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 4px;
}

.event-title a {
    color: #3b65a5;
    text-decoration: none;
}

.event-title a:hover,
.event-title a:focus {
    opacity: 0.75;
}

.event-date {
    font-size: 14px;
    color: #555555;
}

/* ==========================================
   インプレスアカデミー
   ========================================== */
.academy-section {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-left: 5px solid #00a0e9; /* コエテコ連携用アクセントカラー */
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 35px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.academy-logo {
    margin-bottom: 15px;
}

.academy-logo img {
    max-width: 320px;
    width: 100%;
    height: auto;
    display: block;
}

/* ==========================================
   協賛
   ========================================== */
.sponsor-section {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 30px;
    margin-bottom: 40px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.sponsor-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 12px;
    color: #222222;
}

.sponsor-text {
    font-size: 16px;
    color: #444444;
    line-height: 1.7;
    margin-bottom: 15px;
}

.sponsor-links {
    list-style: none;
    padding-left: 0;
}

.sponsor-links li {
    font-size: 16px;
    margin-bottom: 6px;
}

.sponsor-links a {
    color: #3b65a5;
    text-decoration: none;
}

.sponsor-links a:hover,
.sponsor-links a:focus {
    opacity: 0.75;
}

/* ==========================================
   Footer
   ========================================== */
footer {
    background-color: #535353;
    color: #ffffff;
    text-align: center;
    padding: 30px 20px;
    font-size: 13px;
}

.footer-nav {
    margin-bottom: 15px;
}

.footer-nav a {
    color: #ffffff;
    text-decoration: none;
    margin: 0 10px;
    display: inline-block;
}

.footer-nav a:hover,
.footer-nav a:focus {
    opacity: 0.75;
}

.copyright {
    font-size: 12px;
    color: #cccccc;
}

/* ==========================================
   誘導ボタン追加CSS
   ========================================== */
.button-area {
    margin-top: 25px;
    text-align: center;
}

.btn {
    display: inline-block;
    width: 100%;
    max-width: 460px; /* テキスト長に合わせて幅を拡張 */
    padding: 14px 40px 14px 20px; /* 右側に矢印用余白を確保 */
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 6px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    position: relative;
    box-sizing: border-box;
}

/* 右矢印アイコンの擬似要素 */
.btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%) rotate(45deg);
    width: 7px;
    height: 7px;
    border-top: 2px solid #ffffff;
    border-right: 2px solid #ffffff;
}

/* インプレス イベント＆セミナー用ボタン (ネイビー系) */
.btn-primary {
    background-color: #3b65a5;
    color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #2c4c7d;
    opacity: 1;
}

/* インプレスアカデミー用ボタン (コエテコブルー系) */
.btn-academy {
    background-color: #00a0e9;
    color: #ffffff;
}

.btn-academy:hover,
.btn-academy:focus {
    background-color: #0082be;
    opacity: 1;
}

/* スマホ表示の調整 */
@media (max-width: 600px) {
    .btn {
        max-width: 100%;
        padding: 12px 32px 12px 12px;
        font-size: 13.5px; /* スマホ画面で改行を防ぐ調整 */
    }
    
    .btn::after {
        right: 14px;
    }
}

/* ==========================================
   Responsive (Smartphone)
   ========================================== */
@media (max-width: 600px) {
    .site-header {
        padding: 15px;
        margin-bottom: 25px;
    }
    
    .header-flex {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .header-logo img {
        height: 55px;
    }

    .page-title {
        font-size: 14.5px;
    }

    .container {
        padding: 0 12px 30px 12px;
    }

    .content-section,
    .academy-section,
    .sponsor-section {
        padding: 20px 15px;
        margin-bottom: 25px;
    }

    .section-title {
        font-size: 18px;
    }

    .event-title {
        font-size: 15px;
    }

    .footer-nav a {
        margin: 5px 8px;
    }

    .section-logo img,
    .academy-logo img {
        max-width: 100%;
    }
}