* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;
    color: #101820;
    background: #f4f6f8;
    line-height: 1.7;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

.site-header {
    background: rgba(4, 15, 27, 0.96);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.admin-bar .site-header {
    top: 32px;
}

.header-inner {
    max-width: 1200px;
    height: 76px;
    margin: auto;
    padding: 0 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.site-logo {
    display: flex;
    gap: 7px;
    font-size: 25px;
    font-weight: 900;
}

.logo-main {
    color: #fff;
}

.logo-accent {
    color: #00d9ff;
}

.main-navigation {
    display: flex;
    gap: 32px;
}

.main-navigation a {
    color: #dbe4ec;
    font-size: 13px;
    font-weight: 700;
}

.main-navigation a:hover {
    color: #00d9ff;
}

.menu-toggle {
    display: none;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.menu-toggle span {
    width: 25px;
    height: 2px;
    margin: 6px 0;
    background: #fff;
    display: block;
}

.hero {
    min-height: 650px;
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 80% 20%, rgba(0, 217, 255, 0.18), transparent 30%),
        linear-gradient(135deg, #06111f 0%, #0a2338 55%, #06111f 100%);
}

.hero-label,
.section-label {
    color: #00d9ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 3px;
}

.hero-title {
    max-width: 800px;
    margin-top: 20px;
    color: #fff;
    font-size: clamp(42px, 6vw, 76px);
    line-height: 1.18;
}

.hero-title span {
    color: #00d9ff;
}

.hero-description {
    margin-top: 30px;
    color: #b8c7d5;
    font-size: 17px;
}

.hero-buttons {
    display: flex;
    gap: 14px;
    margin-top: 38px;
}

.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 200px;
    height: 54px;
    padding: 0 25px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 800;
}

.button-primary {
    color: #02101d;
    background: #00d9ff;
}

.button-secondary {
    color: #fff;
    border: 1px solid rgba(255,255,255,.3);
}

.section {
    padding: 100px 0;
}

.section-heading {
    margin-bottom: 45px;
}

.section-heading h2 {
    margin-top: 8px;
    font-size: clamp(30px, 4vw, 45px);
}

.featured-section {
    background: #fff;
}

.featured-race {
    width: 100%;
    max-width: none;
    padding: 36px;
    background: #071726;
    color: #fff;
    border-radius: 14px;
}

.featured-top {
    display: flex;
    justify-content: space-between;
}

.race-badge {
    display: inline-block;
    padding: 5px 11px;
    background: #00d9ff;
    color: #04111f;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 900;
}

.race-place {
    margin-top: 12px;
    font-size: 27px;
    font-weight: 900;
}

.race-number strong {
    font-size: 60px;
}

.race-number span {
    color: #00d9ff;
    font-weight: 900;
}

.race-info {
    display: flex;
    gap: 50px;
    margin-top: 35px;
    padding: 25px 0;
    border-top: 1px solid rgba(255,255,255,.1);
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.race-info div {
    display: flex;
    flex-direction: column;
}

.race-info span {
    color: #8294a4;
    font-size: 12px;
}

.race-info strong {
    font-size: 20px;
}

.prediction-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 25px;
}

.prediction-item {
    padding: 17px;
    display: flex;
    gap: 15px;
    background: rgba(255,255,255,.05);
    border-radius: 7px;
}

.prediction-symbol {
    font-size: 26px;
    font-weight: 900;
}

.honmei {
    color: #ff4664;
}

.taikou {
    color: #00d9ff;
}

.tanana {
    color: #ffc342;
}

.prediction-item div {
    display: flex;
    flex-direction: column;
}

.race-detail-button {
    margin-top: 25px;
    display: flex;
    justify-content: space-between;
    padding: 18px 20px;
    background: #00d9ff;
    color: #04111f;
    border-radius: 6px;
    font-weight: 900;
}

.race-section {
    background: #f2f5f7;
}

.race-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.race-card {
    padding: 24px;
    background: #fff;
    border-radius: 9px;
    border: 1px solid #e2e7eb;
    display: flex;
    flex-direction: column;
}

.race-status {
    width: fit-content;
    padding: 3px 8px;
    background: #e4fbff;
    color: #007f99;
    font-size: 10px;
    font-weight: 800;
}

.race-card strong {
    margin-top: 18px;
    font-size: 25px;
}

.data-section {
    background: #06111f;
}

.section-heading-light h2 {
    color: #fff;
}

.data-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.data-card {
    min-height: 260px;
    padding: 30px;
    background: #0b1d2d;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 9px;
}

.data-number {
    color: #00d9ff;
    font-size: 12px;
    font-weight: 900;
}

.data-card h3 {
    margin-top: 55px;
    color: #fff;
    font-size: 24px;
}

.data-card p {
    margin-top: 12px;
    color: #91a0ae;
}

.column-section {
    background: #fff;
}

.column-placeholder {
    padding: 50px;
    background: #f2f5f7;
    border-radius: 10px;
    text-align: center;
}

.site-footer {
    padding: 65px 0;
    background: #030a11;
    color: #fff;
}

.footer-inner {
    width: min(1120px, calc(100% - 40px));
    margin: auto;
}

.footer-logo {
    font-size: 27px;
    font-weight: 900;
}

.footer-logo strong {
    color: #00d9ff;
}

.footer-description {
    margin-top: 10px;
    color: #7f8d99;
}

.footer-navigation {
    display: flex;
    flex-wrap: wrap;
    gap: 25px;
    margin-top: 35px;
}

.copyright {
    margin-top: 40px;
    color: #53616d;
    font-size: 12px;
}
/* =========================
   HERO UPGRADE
========================= */

.hero {
    min-height: 720px;
    padding: 70px 0;
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: "";
    position: absolute;
    width: 700px;
    height: 700px;
    right: -260px;
    top: -250px;
    border-radius: 50%;
    border: 1px solid rgba(0, 217, 255, 0.12);
}

.hero::after {
    content: "";
    position: absolute;
    width: 450px;
    height: 450px;
    right: -80px;
    bottom: -280px;
    border-radius: 50%;
    border: 1px solid rgba(0, 217, 255, 0.09);
}

.hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(380px, 0.8fr);
    gap: 70px;
    align-items: center;
    position: relative;
    z-index: 2;
}

.hero-content {
    min-width: 0;
}

.hero-title {
    font-size: clamp(48px, 5.6vw, 82px);
}

.hero-description {
    max-width: 610px;
}

.hero-stats {
    display: flex;
    gap: 35px;
    margin-top: 55px;
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.hero-stat {
    display: flex;
    flex-direction: column;
}

.hero-stat strong {
    color: #fff;
    font-size: 20px;
    line-height: 1.2;
}

.hero-stat span {
    margin-top: 5px;
    color: #6f8597;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.3px;
}


/* PICKUP CARD */

.hero-pickup {
    padding: 28px;
    background:
        linear-gradient(
            145deg,
            rgba(17, 45, 66, .96),
            rgba(5, 20, 33, .98)
        );
    border: 1px solid rgba(0, 217, 255, .18);
    border-radius: 16px;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .3);
}

.pickup-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.pickup-label {
    color: #00d9ff;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 2px;
}

.pickup-header h2 {
    margin-top: 7px;
    color: #fff;
    font-size: 30px;
}

.pickup-header h2 span {
    margin-left: 8px;
    color: #00d9ff;
}

.pickup-live {
    position: relative;
    padding: 7px 10px 7px 23px;
    color: #fff;
    background: rgba(255, 68, 94, .12);
    border: 1px solid rgba(255, 68, 94, .25);
    border-radius: 4px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 1px;
}

.pickup-live::before {
    content: "";
    position: absolute;
    left: 9px;
    top: 50%;
    width: 7px;
    height: 7px;
    background: #ff445e;
    border-radius: 50%;
    transform: translateY(-50%);
}

.pickup-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 24px;
    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.pickup-meta > div {
    padding: 17px 0;
}

.pickup-meta > div + div {
    padding-left: 22px;
    border-left: 1px solid rgba(255,255,255,.08);
}

.pickup-meta span {
    display: block;
    color: #6e8394;
    font-size: 10px;
}

.pickup-meta strong {
    display: block;
    margin-top: 2px;
    color: #fff;
    font-size: 17px;
}

.boat-list {
    margin-top: 20px;
}

.boat-row {
    display: grid;
    grid-template-columns: 42px 1fr 36px;
    gap: 14px;
    align-items: center;
    min-height: 55px;
    padding: 8px 11px;
    margin-top: 7px;
    background: rgba(255,255,255,.035);
    border-radius: 7px;
}

.boat-number {
    width: 38px;
    height: 38px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 5px;
    font-size: 17px;
    font-weight: 900;
}

.boat-info {
    display: flex;
    flex-direction: column;
}

.boat-info small {
    color: #667c8d;
    font-size: 8px;
    letter-spacing: 1px;
}

.boat-info strong {
    color: #dce6ed;
    font-size: 13px;
}

.boat-mark {
    color: #728696;
    font-size: 19px;
    font-weight: 900;
    text-align: center;
}

.mark-main {
    color: #ff4664;
}

.mark-second {
    color: #00d9ff;
}

.mark-third {
    color: #ffc342;
}


/* 艇番カラー */

.boat-1 .boat-number {
    color: #111;
    background: #fff;
}

.boat-2 .boat-number {
    color: #fff;
    background: #151515;
    border: 1px solid #444;
}

.boat-3 .boat-number {
    color: #fff;
    background: #e42132;
}

.boat-4 .boat-number {
    color: #fff;
    background: #2365d8;
}

.boat-5 .boat-number {
    color: #111;
    background: #ffd428;
}

.boat-6 .boat-number {
    color: #fff;
    background: #159547;
}

.pickup-button {
    margin-top: 22px;
    min-height: 50px;
    padding: 0 17px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #00d9ff;
    color: #03111d;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 900;
    transition: .2s;
}

.pickup-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 217, 255, .2);
}/* =========================
   TODAY'S RACES
========================= */

.race-section {
    background: #f3f6f8;
}

.race-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.section-description {
    margin-top: 10px;
    color: #6d7a84;
    font-size: 14px;
}

.race-update {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    background: #ffffff;
    border: 1px solid #e1e7eb;
    border-radius: 5px;
    color: #7b8791;
    font-size: 10px;
}

.race-update strong {
    color: #192631;
}

.race-update-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #15bb74;
}

.venue-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.venue-card {
    position: relative;
    overflow: hidden;

    min-height: 220px;
    padding: 22px;

    background: #ffffff;
    border: 1px solid #e0e7eb;
    border-radius: 11px;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.venue-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;

    width: 4px;
    height: 100%;

    background: #00cce8;
}

.venue-card:hover {
    transform: translateY(-5px);
    border-color: rgba(0, 204, 232, .45);
    box-shadow: 0 15px 35px rgba(13, 32, 46, .09);
}

.venue-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.venue-status {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;

    border-radius: 4px;

    font-size: 9px;
    font-weight: 900;
    letter-spacing: .3px;
}

.status-live {
    color: #087d59;
    background: #ddf8ec;
}

.venue-type {
    color: #8a969f;
    font-size: 10px;
    font-weight: 700;
}

.venue-main {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    margin-top: 30px;
}

.venue-code {
    color: #00bcd9;

    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1.5px;
}

.venue-main h3 {
    margin-top: 3px;

    color: #13202b;
    font-size: 31px;
    line-height: 1.2;
}

.venue-arrow {
    color: #00bcd9;

    font-size: 23px;

    transition: transform .2s ease;
}

.venue-card:hover .venue-arrow {
    transform: translateX(5px);
}

.venue-bottom {
    display: grid;
    grid-template-columns: 1fr 1fr;

    margin-top: 34px;
    padding-top: 17px;

    border-top: 1px solid #e8edf0;
}

.venue-bottom > div {
    display: flex;
    flex-direction: column;
}

.venue-bottom > div + div {
    padding-left: 18px;
    border-left: 1px solid #e8edf0;
}

.venue-bottom span {
    color: #8d99a2;
    font-size: 9px;
}

.venue-bottom strong {
    margin-top: 2px;

    color: #273742;
    font-size: 14px;
}

.all-venues-link {
    margin-top: 28px;
}

.all-venues-link a {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    min-height: 58px;

    padding: 0 22px;

    background: #0a1a28;
    color: #ffffff;

    border-radius: 7px;

    font-size: 13px;
    font-weight: 800;

    transition: .2s;
}

.all-venues-link a span {
    color: #00d9ff;
    font-size: 19px;
}

.all-venues-link a:hover {
    background: #10273a;
}
/* =========================
   RESPONSIVE - MOBILE
========================= */

@media (max-width: 768px) {

    .race-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .venue-grid {
        grid-template-columns: 1fr;
    }

    .race-update {
        align-self: flex-start;
    }

    .venue-card {
        min-height: 200px;
    }

    .hero-layout {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .hero {
        padding: 55px 0;
        min-height: 590px;
    }

    .hero-title {
        font-size: 47px;
    }

    .hero-stats {
        gap: 20px;
        justify-content: space-between;
    }

    .hero-stat strong {
        font-size: 17px;
    }

    .hero-pickup {
        padding: 20px;
    }

    .pickup-header h2 {
        font-size: 26px;
    }

    .boat-row {
        grid-template-columns: 38px 1fr 30px;
    }

    .admin-bar .site-header {
        top: 46px;
    }

    .main-navigation {
        position: absolute;
        left: 0;
        top: 76px;
        width: 100%;
        padding: 25px;
        background: #071726;
        flex-direction: column;
        display: none;
    }

    .main-navigation.is-open {
        display: flex;
    }

    .menu-toggle {
        display: block;
    }

    .hero-buttons {
        flex-direction: column;
    }

    .button {
        width: 100%;
    }

    .section {
        padding: 70px 0;
    }

    .prediction-list,
    .race-grid,
    .data-grid {
        grid-template-columns: 1fr;
    }

}


/* =========================
   DESKTOP
========================= */

@media (min-width: 769px) {

    .venue-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }

    .venue-card {
        min-height: 210px;
        padding: 20px;
    }

    .venue-main {
        margin-top: 24px;
    }

    .venue-bottom {
        margin-top: 26px;
    }

}/* =========================
   RACE LIST PAGE
========================= */

.race-list-page {
    background: #f3f6f8;
    min-height: 100vh;
}

.race-list-hero {
    padding: 80px 0 70px;
    background:
        radial-gradient(
            circle at 85% 20%,
            rgba(0, 217, 255, .12),
            transparent 25%
        ),
        linear-gradient(
            135deg,
            #06111f,
            #092339
        );
}

.race-back-link {
    display: inline-block;
    margin-bottom: 35px;
    color: #7e96a8;
    font-size: 12px;
    font-weight: 700;
}

.race-back-link:hover {
    color: #00d9ff;
}

.race-page-label {
    color: #00d9ff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 3px;
}

.race-page-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 15px;
}

.race-venue-code {
    color: #668297;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.race-page-title h1 {
    margin-top: 5px;
    color: #fff;
    font-size: clamp(50px, 7vw, 82px);
    line-height: 1;
}

.race-page-date {
    color: rgba(255,255,255,.13);
    font-size: 45px;
    font-weight: 900;
}

.race-page-description {
    margin-top: 22px;
    color: #a4b5c2;
    font-size: 14px;
}

.race-list-content {
    padding: 80px 0 110px;
}

.race-list-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 35px;
}

.race-list-heading h2 {
    margin-top: 5px;
    color: #10202d;
    font-size: 38px;
}

.race-count {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.race-count strong {
    color: #00bcd9;
    font-size: 30px;
}

.race-count span {
    color: #87949e;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px;
}

.race-schedule-list {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.race-schedule-item {
    min-height: 92px;
    padding: 0 24px;

    display: grid;
    grid-template-columns: 120px 1fr 180px 40px;
    align-items: center;

    background: #fff;

    border: 1px solid #e0e7eb;
    border-radius: 9px;

    transition:
        transform .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.race-schedule-item:hover {
    transform: translateX(5px);
    border-color: rgba(0, 196, 224, .45);
    box-shadow: 0 10px 30px rgba(11, 33, 48, .06);
}

.race-schedule-number {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.race-schedule-number strong {
    color: #101d28;
    font-size: 35px;
    line-height: 1;
}

.race-schedule-number span {
    color: #00bad6;
    font-size: 12px;
    font-weight: 900;
}

.race-schedule-name {
    display: flex;
    flex-direction: column;
}

.race-schedule-name span,
.race-schedule-time span {
    color: #8d99a3;
    font-size: 9px;
}

.race-schedule-name strong {
    margin-top: 3px;
    color: #263640;
    font-size: 15px;
}

.race-schedule-time {
    display: flex;
    flex-direction: column;

    padding-left: 24px;

    border-left: 1px solid #e6ebee;
}

.race-schedule-time strong {
    margin-top: 2px;
    color: #162630;
    font-size: 17px;
}

.race-schedule-arrow {
    color: #00bad6;
    font-size: 22px;
    text-align: right;

    transition: transform .2s ease;
}

.race-schedule-item:hover .race-schedule-arrow {
    transform: translateX(4px);
}


@media (max-width: 768px) {

    .race-list-hero {
        padding: 55px 0;
    }

    .race-page-title {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .race-page-date {
        font-size: 28px;
    }

    .race-list-content {
        padding: 60px 0 80px;
    }

    .race-schedule-item {
        min-height: 110px;
        padding: 17px;

        grid-template-columns: 65px 1fr 30px;
        gap: 10px;
    }

    .race-schedule-number strong {
        font-size: 28px;
    }

    .race-schedule-time {
        grid-column: 2;
        padding-left: 0;
        border-left: 0;
    }

    .race-schedule-arrow {
        grid-column: 3;
        grid-row: 1 / 3;
    }

}/* =========================
   RACE DETAIL PAGE
========================= */

.race-detail-page {
    min-height: 100vh;
    background: #f3f6f8;
}


/* HERO */

.race-detail-hero {
    padding: 55px 0 60px;

    background:
        radial-gradient(
            circle at 80% 15%,
            rgba(0, 217, 255, .13),
            transparent 27%
        ),
        linear-gradient(
            135deg,
            #06111f,
            #09263d
        );
}

.race-detail-breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;

    color: #6f8799;

    font-size: 11px;
}

.race-detail-breadcrumb a:hover {
    color: #00d9ff;
}

.race-detail-breadcrumb strong {
    color: #b5c5d0;
}

.race-detail-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 40px;

    margin-top: 45px;
}

.race-detail-heading h1 {
    margin-top: 8px;

    color: #ffffff;

    font-size: clamp(48px, 6vw, 76px);

    line-height: 1;
}

.race-detail-heading h1 span {
    margin-right: 15px;
}

.race-detail-name {
    margin-top: 15px;

    color: #9fb2bf;

    font-size: 15px;
}

.race-detail-deadline {
    min-width: 190px;

    padding: 18px 22px;

    background: rgba(255,255,255,.05);

    border: 1px solid rgba(255,255,255,.09);

    border-radius: 8px;
}

.race-detail-deadline span {
    display: block;

    color: #6e8799;

    font-size: 10px;
}

.race-detail-deadline strong {
    display: block;

    margin-top: 3px;

    color: #00d9ff;

    font-size: 30px;
}


/* CONTENT */

.race-detail-content {
    padding: 80px 0 110px;
}

.race-detail-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 30px;
}

.race-detail-section-heading h2 {
    margin-top: 6px;

    color: #10202d;

    font-size: 38px;
}

.race-detail-section-heading > p {
    color: #80909b;

    font-size: 12px;
}


/* ENTRY TABLE */

.entry-table {
    display: flex;
    flex-direction: column;

    gap: 8px;
}

.entry-row {
    min-height: 102px;

    padding: 0 22px;

    display: grid;

    grid-template-columns:
        62px
        minmax(180px, 1.6fr)
        repeat(4, minmax(90px, .7fr))
        85px;

    gap: 14px;

    align-items: center;

    background: #ffffff;

    border: 1px solid #e0e7eb;

    border-radius: 9px;
}

.entry-number span {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 6px;

    font-size: 20px;
    font-weight: 900;
}

.entry-player {
    display: flex;
    flex-direction: column;
}

.entry-label {
    color: #9aa7b0;

    font-size: 8px;

    letter-spacing: 1px;
}

.entry-player strong {
    margin-top: 2px;

    color: #172733;

    font-size: 17px;
}

.entry-player small {
    margin-top: 2px;

    color: #8a98a2;

    font-size: 10px;
}

.entry-data {
    min-height: 48px;

    padding-left: 15px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border-left: 1px solid #e8edf0;
}

.entry-data span {
    color: #9aa6ae;

    font-size: 9px;
}

.entry-data strong {
    margin-top: 2px;

    color: #21323e;

    font-size: 16px;
}

.entry-data small {
    color: #81919b;

    font-size: 9px;
}

.entry-evaluation {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.entry-mark {
    font-size: 25px;
    font-weight: 900;
}

.entry-evaluation small {
    color: #8b99a3;

    font-size: 9px;
}


/* BOAT COLORS */

.entry-boat-1 .entry-number span {
    color: #111;
    background: #ffffff;

    border: 1px solid #d5dade;
}

.entry-boat-2 .entry-number span {
    color: #fff;
    background: #171717;
}

.entry-boat-3 .entry-number span {
    color: #fff;
    background: #e92135;
}

.entry-boat-4 .entry-number span {
    color: #fff;
    background: #2366d9;
}

.entry-boat-5 .entry-number span {
    color: #111;
    background: #ffd52a;
}

.entry-boat-6 .entry-number span {
    color: #fff;
    background: #15994a;
}

.mark-1 {
    color: #ff4664;
}

.mark-2,
.mark-5,
.mark-6 {
    color: #85949e;
}

.mark-3 {
    color: #00bad8;
}

.mark-4 {
    color: #ffc342;
}


/* ANALYSIS */

.analysis-grid {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 18px;

    margin-top: 50px;
}

.analysis-card {
    min-height: 220px;

    padding: 28px;

    background: #0b1d2d;

    border-radius: 9px;
}

.analysis-number {
    color: #00d9ff;

    font-size: 10px;

    font-weight: 900;
}

.analysis-card h3 {
    margin-top: 55px;

    color: #ffffff;

    font-size: 21px;
}

.analysis-card p {
    margin-top: 12px;

    color: #8295a4;

    font-size: 13px;
}


/* PREDICTION */

.boatlab-prediction {
    margin-top: 50px;

    overflow: hidden;

    background: #06111f;

    border-radius: 12px;
}

.prediction-header {
    padding: 30px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-bottom: 1px solid rgba(255,255,255,.08);
}

.prediction-header h2 {
    margin-top: 5px;

    color: #ffffff;

    font-size: 30px;
}

.prediction-status {
    padding: 6px 10px;

    color: #00d9ff;

    border: 1px solid rgba(0,217,255,.25);

    border-radius: 4px;

    font-size: 9px;

    font-weight: 900;

    letter-spacing: 1px;
}

.prediction-main {
    padding: 30px;
}

.prediction-ranking {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 12px;
}

.prediction-ranking > div {
    padding: 20px;

    display: flex;
    align-items: center;

    gap: 14px;

    background: rgba(255,255,255,.04);

    border-radius: 7px;
}

.prediction-ranking span {
    font-size: 30px;

    font-weight: 900;
}

.prediction-ranking p {
    color: #758b9b;

    font-size: 10px;
}

.prediction-ranking strong {
    margin-left: auto;

    color: #ffffff;

    font-size: 16px;
}

.prediction-rank-main {
    color: #ff4664;
}

.prediction-rank-second {
    color: #00d9ff;
}

.prediction-rank-third {
    color: #ffc342;
}


/* BET */

.bet-section {
    margin-top: 18px;

    padding: 22px;

    display: grid;

    grid-template-columns: 150px 1fr;

    gap: 20px;

    align-items: center;

    background: rgba(255,255,255,.035);

    border-radius: 7px;
}

.bet-title span {
    color: #667f91;

    font-size: 9px;

    letter-spacing: 1px;
}

.bet-title h3 {
    margin-top: 2px;

    color: #ffffff;

    font-size: 18px;
}

.bet-list {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;
}

.bet-list span {
    padding: 9px 14px;

    background: #ffffff;

    color: #0c1a24;

    border-radius: 4px;

    font-size: 14px;

    font-weight: 900;
}

.bet-section-hole {
    border: 1px solid rgba(255,195,66,.17);
}


/* MOBILE */

@media (max-width: 768px) {

    .race-detail-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .race-detail-deadline {
        width: 100%;
    }

    .race-detail-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .entry-row {
        padding: 18px;

        grid-template-columns:
            52px
            1fr
            65px;

        gap: 12px;
    }

    .entry-player {
        grid-column: 2;
    }

    .entry-evaluation {
        grid-column: 3;

        grid-row: 1;
    }

    .entry-data {
        padding: 10px 0 0;

        border-left: 0;

        border-top: 1px solid #e8edf0;
    }

    .analysis-grid {
        grid-template-columns: 1fr;
    }

    .prediction-ranking {
        grid-template-columns: 1fr;
    }

    .bet-section {
        grid-template-columns: 1fr;
    }

}

/* =========================================================
   BOAT LAB - EXHIBITION / BEFORE INFO
   main.css の一番下へ追加
========================================================= */

.beforeinfo-section {
    margin-top: 42px;
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 18px;
    background: rgba(8, 20, 38, 0.88);
}

.beforeinfo-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}

.beforeinfo-heading h2 {
    margin: 4px 0 0;
}

.beforeinfo-heading > p {
    margin: 0;
    opacity: 0.72;
    font-size: 13px;
}

.beforeinfo-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.beforeinfo-table {
    min-width: 760px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    overflow: hidden;
}

.beforeinfo-row {
    display: grid;
    grid-template-columns: 130px repeat(6, minmax(90px, 1fr));
    align-items: stretch;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.beforeinfo-row:first-child {
    border-top: 0;
}

.beforeinfo-row > div {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 10px 8px;
    border-left: 1px solid rgba(255, 255, 255, 0.07);
    text-align: center;
}

.beforeinfo-row > div:first-child {
    border-left: 0;
}

.beforeinfo-head {
    background: rgba(255, 255, 255, 0.035);
}

.beforeinfo-label {
    justify-content: flex-start !important;
    padding-left: 16px !important;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    opacity: 0.75;
}

.beforeinfo-boat-head {
    gap: 3px;
    font-weight: 800;
}

.beforeinfo-boat-head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 16px;
}

.beforeinfo-boat-head small {
    font-size: 10px;
    opacity: 0.7;
}

.boat-head-1 span {
    background: #ffffff;
    color: #111111;
}

.boat-head-2 span {
    background: #20252d;
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.2);
}

.boat-head-3 span {
    background: #e33b3b;
    color: #ffffff;
}

.boat-head-4 span {
    background: #3478d4;
    color: #ffffff;
}

.boat-head-5 span {
    background: #f2d54a;
    color: #151515;
}

.boat-head-6 span {
    background: #2e9b63;
    color: #ffffff;
}

.beforeinfo-value {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.beforeinfo-value.is-flying {
    color: #ff6b6b;
}

.beforeinfo-updated {
    margin: 12px 0 0;
    text-align: right;
    font-size: 11px;
    opacity: 0.55;
}

.beforeinfo-waiting {
    padding: 30px 24px;
    border: 1px dashed rgba(255, 255, 255, 0.16);
    border-radius: 14px;
    text-align: center;
    background: rgba(255, 255, 255, 0.025);
}

.beforeinfo-waiting strong {
    display: block;
    margin-bottom: 8px;
}

.beforeinfo-waiting p {
    margin: 0;
    font-size: 13px;
    opacity: 0.68;
}

@media (max-width: 768px) {

    .beforeinfo-section {
        margin-top: 28px;
        padding: 18px 14px;
        border-radius: 14px;
    }

    .beforeinfo-heading {
        display: block;
        margin-bottom: 16px;
    }

    .beforeinfo-heading > p {
        margin-top: 8px;
    }

    .beforeinfo-table {
        min-width: 720px;
    }

    .beforeinfo-row {
        grid-template-columns: 112px repeat(6, 96px);
    }

    .beforeinfo-row > div {
        min-height: 54px;
        padding: 8px 6px;
    }

    .beforeinfo-label {
        padding-left: 12px !important;
    }
}
/* =========================================================
   BOAT LAB 展示・直前情報 視認性改善
========================================================= */

.beforeinfo-section {
    background: #0d1b2a;
    border: 1px solid rgba(0, 213, 255, 0.18);
    color: #ffffff;
}

.beforeinfo-section .section-label {
    color: #00d8ff;
    opacity: 1;
}

.beforeinfo-section h2 {
    color: #ffffff;
}

.beforeinfo-updated {
    color: #9eb3c7;
    opacity: 1;
}


/* テーブル */

.beforeinfo-table {
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: #101f30;
}

.beforeinfo-table-head,
.beforeinfo-row {
    color: #ffffff;
}


/* ヘッダー */

.beforeinfo-table-head {
    display: grid;
    grid-template-columns:
        50px
        minmax(120px, 1.5fr)
        repeat(5, minmax(80px, 1fr));

    align-items: center;

    min-height: 44px;

    background: #15283b;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.16);

    color: #8fa9bf;

    font-size: 11px;
    font-weight: 700;
}


/* 各選手行 */

.beforeinfo-row {
    display: grid;

    grid-template-columns:
        50px
        minmax(120px, 1.5fr)
        repeat(5, minmax(80px, 1fr));

    align-items: center;

    min-height: 50px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.10);

    color: #dce8f2;
}

.beforeinfo-row:last-child {
    border-bottom: 0;
}


/* 艇番 */

.beforeinfo-number {
    font-size: 15px;
    font-weight: 800;
    color: #ffffff;
}


/* 選手名 */

.beforeinfo-player {
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
}


/* 数値 */

.beforeinfo-row > span,
.beforeinfo-row > strong {
    color: #dce8f2;
}


/* 展示ST */

.beforeinfo-st {
    color: #00d8ff !important;
    font-size: 15px;
    font-weight: 900;
}

.beforeinfo-st.is-flying {
    color: #ff5964 !important;
}


/* 展示タイム */

.beforeinfo-row strong:not(.beforeinfo-player):not(.beforeinfo-st) {
    color: #ffffff;
}


/* 横スクロール対策 */

@media (max-width: 900px) {

    .beforeinfo-table {
        overflow-x: auto;
    }

    .beforeinfo-table-head,
    .beforeinfo-row {
        min-width: 720px;
    }
}/* =========================================================
   BOAT LAB VENUE CARD
   視認性改善版
========================================================= */

/* 終了カードでも薄くしすぎない */
.venue-card.is-ended {
    opacity: 1 !important;
}

/* 本日終了 */
.venue-card .venue-status,
.venue-card .venue-status.status-ended {
    color: #203744 !important;
    background: #dce6eb !important;

    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .02em !important;

    padding: 7px 10px !important;
    border-radius: 4px !important;
}

/* 開催中 */
.venue-card .venue-status.status-live {
    color: #087f70 !important;
    background: #e2f5f1 !important;

    font-size: 14px !important;
    font-weight: 900 !important;
}

/* デイ / ナイター */
.venue-card .venue-type {
    color: #2f4653 !important;

    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .02em !important;
}

/* 場コード */
.venue-card .venue-code {
    color: #00b8d4 !important;

    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .08em !important;
    margin-bottom: 9px !important;
}

/* 競艇場名 */
.venue-card .venue-main h3 {
    color: #203844 !important;

    font-size: 26px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .01em !important;
}

/* TODAY */
.venue-card .venue-ended-message .venue-bottom-label {
    color: #4a606d !important;

    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .06em !important;
    margin-bottom: 7px !important;
}

/* 本日の全12R終了 */
.venue-card .venue-ended-message strong {
    color: #1f3946 !important;

    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.4 !important;
}

/* 開催中 NEXT / 締切予定 */
.venue-card .venue-bottom-label {
    color: #4a606d !important;

    font-size: 13px !important;
    font-weight: 900 !important;
}

/* NEXT ○R */
.venue-card .venue-next-number {
    color: #102d3b !important;

    font-size: 25px !important;
    font-weight: 900 !important;
}

/* /12R */
.venue-card .venue-total-races {
    color: #536b78 !important;

    font-size: 14px !important;
    font-weight: 800 !important;
}

/* 締切予定時刻 */
.venue-card .venue-next-deadline strong {
    color: #102d3b !important;

    font-size: 19px !important;
    font-weight: 900 !important;
}

/* スマホ */
@media (max-width: 768px) {

    .venue-card .venue-status,
    .venue-card .venue-status.status-ended,
    .venue-card .venue-status.status-live {
        font-size: 12px !important;
    }

    .venue-card .venue-type {
        font-size: 12px !important;
    }

    .venue-card .venue-main h3 {
        font-size: 22px !important;
    }

    .venue-card .venue-ended-message .venue-bottom-label,
    .venue-card .venue-bottom-label {
        font-size: 11px !important;
    }

    .venue-card .venue-ended-message strong {
        font-size: 15px !important;
    }

}/* 開催前 */
.venue-card .venue-status.status-before {
    color: #36536b !important;
    background: #e7eef3 !important;

    font-size: 14px !important;
    font-weight: 900 !important;

    padding: 7px 10px !important;
    border-radius: 4px !important;
}

.venue-card.is-before {
    opacity: 1 !important;
}/* =========================================================
   BOAT LAB VENUE CARD
   STEP 1 : TYPOGRAPHY & STATUS
========================================================= */


/* =========================================================
   会場名
========================================================= */

.venue-card .venue-main h3 {
    color: #17303d !important;

    font-size: 28px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: .01em !important;
}


/* =========================================================
   会場コード
========================================================= */

.venue-card .venue-code {
    color: #00b9d8 !important;

    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .08em !important;

    margin-bottom: 8px !important;
}


/* =========================================================
   開催ステータス共通
========================================================= */

.venue-card .venue-status {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 28px !important;

    padding: 6px 10px !important;

    border-radius: 5px !important;

    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .03em !important;
}


/* =========================================================
   開催前
========================================================= */

.venue-card .venue-status.status-before {
    color: #31556d !important;
    background: #e6eef4 !important;
}


/* =========================================================
   開催中
========================================================= */

.venue-card .venue-status.status-live {
    color: #007f6e !important;
    background: #dff5ef !important;
}


/* =========================================================
   本日終了
========================================================= */

.venue-card .venue-status.status-ended {
    color: #566873 !important;
    background: #e9eef1 !important;
}


/* =========================================================
   デイ / ナイター
========================================================= */

.venue-card .venue-type {
    color: #344c59 !important;

    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;

    letter-spacing: .02em !important;
}


/* =========================================================
   START / NEXT / TODAY / 締切予定
========================================================= */

.venue-card .venue-bottom-label {
    color: #506875 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: .06em !important;

    margin-bottom: 7px !important;
}


/* =========================================================
   1R / NEXT ○R
========================================================= */

.venue-card .venue-next-number {
    color: #102b38 !important;

    font-size: 26px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}


/* =========================================================
   / 12R
========================================================= */

.venue-card .venue-total-races {
    color: #536b78 !important;

    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}


/* =========================================================
   締切時刻
========================================================= */

.venue-card .venue-next-deadline strong {
    color: #102b38 !important;

    font-size: 20px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
}


/* =========================================================
   本日終了時
========================================================= */

.venue-card .venue-ended-message .venue-bottom-label {
    color: #506875 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
}

.venue-card .venue-ended-message strong {
    color: #263f4b !important;

    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
}


/* =========================================================
   終了カードも薄くしすぎない
========================================================= */

.venue-card.is-ended {
    opacity: 1 !important;
}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 768px) {

    .venue-card .venue-main h3 {
        font-size: 23px !important;
    }

    .venue-card .venue-status {
        font-size: 12px !important;
        min-height: 26px !important;
        padding: 6px 9px !important;
    }

    .venue-card .venue-type {
        font-size: 12px !important;
    }

    .venue-card .venue-bottom-label {
        font-size: 11px !important;
    }

    .venue-card .venue-next-number {
        font-size: 22px !important;
    }

    .venue-card .venue-total-races {
        font-size: 13px !important;
    }

    .venue-card .venue-next-deadline strong {
        font-size: 17px !important;
    }

    .venue-card .venue-ended-message strong {
        font-size: 15px !important;
    }

}/* =========================================================
   BOAT LAB VENUE CARD
   STEP 2 : LAYOUT / SPACING / INTERACTION
========================================================= */


/* =========================================================
   カード全体
========================================================= */

.venue-card {
    position: relative;

    padding: 18px 18px 16px !important;

    border: 1px solid #dce6eb !important;
    border-left: 3px solid #00c7e6 !important;

    border-radius: 8px !important;

    background: #ffffff !important;

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease !important;
}


/* ホバー時 */

.venue-card:hover {
    transform: translateY(-3px) !important;

    border-color: #b9dfe7 !important;
    border-left-color: #00bddd !important;

    box-shadow:
        0 10px 24px rgba(18, 48, 61, .08) !important;
}


/* =========================================================
   上部
   開催状態 / デイ・ナイター
========================================================= */

.venue-card .venue-card-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 12px !important;

    margin-bottom: 15px !important;
}


/* =========================================================
   会場名エリア
========================================================= */

.venue-card .venue-main {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 18px !important;

    margin-bottom: 14px !important;
}


.venue-card .venue-main > div {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}


/* =========================================================
   矢印
========================================================= */

.venue-card .venue-arrow {
    flex: 0 0 auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 34px !important;
    height: 34px !important;

    margin-left: auto !important;

    border: 1px solid #d8e8ed !important;
    border-radius: 7px !important;

    background: #f7fbfc !important;

    color: #00b9d8 !important;

    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    transition:
        transform .18s ease,
        background-color .18s ease,
        border-color .18s ease !important;
}


/* 矢印ホバー */

.venue-card:hover .venue-arrow {
    transform: translateX(3px) !important;

    background: #eefafd !important;
    border-color: #bfe6ee !important;
}


/* =========================================================
   下段
   START / NEXT / 締切時刻
========================================================= */

.venue-card .venue-bottom {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr) !important;

    gap: 0 !important;

    margin-top: 0 !important;

    padding-top: 13px !important;

    border-top: 1px solid #dce6eb !important;
}


/* 左側 */

.venue-card .venue-next-race {
    min-width: 0 !important;

    padding-right: 16px !important;
}


/* 右側 */

.venue-card .venue-next-deadline {
    min-width: 0 !important;

    padding-left: 16px !important;

    border-left: 1px solid #dce6eb !important;
}


/* =========================================================
   レース進捗
========================================================= */

.venue-card .venue-race-progress {
    display: flex !important;
    align-items: baseline !important;

    gap: 5px !important;
}


/* =========================================================
   終了時
========================================================= */

.venue-card .venue-ended-message {
    grid-column: 1 / -1 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 16px !important;

    min-height: 42px !important;
}


/* =========================================================
   状態ごとの左ライン
========================================================= */

/* 開催前 */

.venue-card.is-before {
    border-left-color: #7ba6bc !important;
}


/* 開催中 */

.venue-card.is-live {
    border-left-color: #00cfae !important;
}


/* 本日終了 */

.venue-card.is-ended {
    border-left-color: #b6c3ca !important;
}


/* =========================================================
   開催中は少しだけ強調
========================================================= */

.venue-card.is-live {
    box-shadow:
        0 3px 10px rgba(0, 181, 163, .04) !important;
}


.venue-card.is-live:hover {
    box-shadow:
        0 12px 26px rgba(0, 181, 163, .10) !important;
}


/* =========================================================
   カード間隔
========================================================= */

.venue-grid {
    gap: 14px !important;
}


/* =========================================================
   PC 3列
========================================================= */

@media (min-width: 901px) {

    .venue-grid {
        display: grid !important;

        grid-template-columns:
            repeat(3, minmax(0, 1fr)) !important;

        gap: 14px !important;
    }

}


/* =========================================================
   タブレット
========================================================= */

@media (min-width: 601px) and (max-width: 900px) {

    .venue-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 600px) {

    .venue-grid {
        grid-template-columns: 1fr !important;

        gap: 12px !important;
    }


    .venue-card {
        padding: 16px !important;
    }


    .venue-card .venue-card-top {
        margin-bottom: 13px !important;
    }


    .venue-card .venue-main {
        gap: 12px !important;

        margin-bottom: 13px !important;
    }


    .venue-card .venue-arrow {
        width: 32px !important;
        height: 32px !important;
    }


    .venue-card .venue-next-race {
        padding-right: 12px !important;
    }


    .venue-card .venue-next-deadline {
        padding-left: 12px !important;
    }

}/* =========================================================
   BOAT LAB VENUE CARD
   STEP 3 : FINAL POLISH
========================================================= */

/* 会場名まわりに少しだけ呼吸を戻す */
.venue-card .venue-main {
    margin-bottom: 17px !important;
}

/* 会場名の読みやすさを最終調整 */
.venue-card .venue-main h3 {
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
}

/* 矢印を少し控えめに */
.venue-card .venue-arrow {
    width: 32px !important;
    height: 32px !important;

    background: #fbfdfe !important;
    border-color: #e1ebef !important;

    color: #00b9d8 !important;

    font-size: 15px !important;
}

/* ホバー時だけ操作感を強くする */
.venue-card:hover .venue-arrow {
    background: #eefafd !important;
    border-color: #b8e4ed !important;

    transform: translateX(3px) !important;
}

/* 下段との境界線を少し見やすく */
.venue-card .venue-bottom {
    border-top-color: #d5e1e6 !important;
}

/* START / NEXTなど */
.venue-card .venue-bottom-label {
    color: #3f5d6c !important;
}

/* 開催前 */
.venue-card .venue-status.status-before {
    color: #31566b !important;
    background: #e6eef3 !important;
}

/* 開催中 */
.venue-card .venue-status.status-live {
    color: #007b68 !important;
    background: #dcf4ed !important;
}

/* 終了 */
.venue-card .venue-status.status-ended {
    color: #52636d !important;
    background: #e8edef !important;
}

/* 終了カードは文字を薄くしない */
.venue-card.is-ended {
    opacity: 1 !important;
}

/* PCでは現在の3列を維持 */
@media (min-width: 901px) {

    .venue-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

}/* =========================================================
   BOAT LAB
   TODAY'S RACES SECTION HEADER
========================================================= */


/* セクション全体の上側余白 */
.today-races,
.venues-section,
.venue-section {
    padding-top: 72px;
    padding-bottom: 72px;
}


/* 見出しエリア
   既存の親要素が flex の場合にも整える */
.venue-section-header,
.section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 32px;

    margin-bottom: 30px;
}


/* 左側のテキストエリア */
.venue-section-header > div:first-child,
.section-header > div:first-child {
    max-width: 620px;
}


/* TODAY'S RACES などの英字ラベル */
.section-label {
    margin: 0 0 10px;

    color: #00b9d8;

    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;

    letter-spacing: .18em;
}


/* 本日の開催 */
.venue-section-header h2,
.section-header h2 {
    margin: 0;

    color: #071d2b;

    font-size: 34px;
    font-weight: 900;
    line-height: 1.18;

    letter-spacing: -.02em;
}


/* 説明文 */
.section-description {
    margin: 12px 0 0;

    color: #526874;

    font-size: 15px;
    font-weight: 500;
    line-height: 1.7;

    letter-spacing: .01em;
}


/* =========================================================
   データ更新
========================================================= */

.race-update {
    flex: 0 0 auto;

    display: inline-flex;
    align-items: center;

    gap: 7px;

    min-height: 34px;

    padding: 8px 11px;

    border: 1px solid #d8e4e9;
    border-radius: 6px;

    background: #ffffff;

    color: #536975;

    font-size: 11px;
    font-weight: 700;
    line-height: 1;

    white-space: nowrap;
}


/* 緑の点 */
.race-update-dot {
    width: 7px;
    height: 7px;

    flex: 0 0 auto;

    border-radius: 50%;

    background: #18bd88;

    box-shadow:
        0 0 0 3px rgba(24, 189, 136, .08);
}


/* データ更新という文字 */
.race-update > span:not(.race-update-dot) {
    color: #657a85;

    font-size: 11px;
    font-weight: 700;
}


/* 時刻 */
.race-update strong {
    color: #17313e;

    font-size: 12px;
    font-weight: 900;
}


/* =========================================================
   カード群との距離
========================================================= */

.venue-grid {
    margin-top: 0 !important;
}


/* =========================================================
   タブレット
========================================================= */

@media (max-width: 900px) {

    .venue-section-header,
    .section-header {
        align-items: flex-start;
    }

    .venue-section-header h2,
    .section-header h2 {
        font-size: 30px;
    }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 600px) {

    .today-races,
    .venues-section,
    .venue-section {
        padding-top: 52px;
        padding-bottom: 52px;
    }

    .venue-section-header,
    .section-header {
        display: block;

        margin-bottom: 24px;
    }

    .venue-section-header h2,
    .section-header h2 {
        font-size: 28px;
    }

    .section-description {
        font-size: 14px;
    }

    .race-update {
        margin-top: 18px;
    }

}/* =========================================================
   BOAT LAB
   TODAY'S RACES SECTION HEADER
   本日の開催 見出し完成版
========================================================= */


/* =========================================================
   本日の開催セクション全体
========================================================= */

#today-race {
    padding-top: 72px !important;
    padding-bottom: 76px !important;
}


/* =========================================================
   見出しエリア
========================================================= */

#today-race .race-section-heading {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;

    gap: 32px !important;

    margin-bottom: 30px !important;
}


/* 左側 */
#today-race .race-section-heading > div:first-child {
    flex: 1 1 auto !important;
    max-width: 650px !important;
}


/* =========================================================
   TODAY'S RACES
========================================================= */

#today-race .section-label {
    display: block !important;

    margin: 0 0 10px !important;

    color: #00b9d8 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .18em !important;
}


/* =========================================================
   本日の開催
========================================================= */

#today-race .race-section-heading h2 {
    margin: 0 !important;

    color: #071d2b !important;

    font-size: 36px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: -.025em !important;
}


/* =========================================================
   説明文
========================================================= */

#today-race .section-description {
    margin: 13px 0 0 !important;

    color: #4f6673 !important;

    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;

    letter-spacing: .01em !important;
}


/* =========================================================
   データ更新
========================================================= */

#today-race .race-update {
    flex: 0 0 auto !important;

    display: inline-flex !important;
    align-items: center !important;

    gap: 7px !important;

    min-height: 36px !important;

    padding: 9px 12px !important;

    border: 1px solid #d6e2e7 !important;
    border-radius: 7px !important;

    background: #ffffff !important;

    box-shadow:
        0 2px 8px rgba(18, 48, 61, .035) !important;

    white-space: nowrap !important;
}


/* 緑の点 */
#today-race .race-update-dot {
    display: block !important;

    width: 7px !important;
    height: 7px !important;

    flex: 0 0 auto !important;

    border-radius: 50% !important;

    background: #16bb82 !important;

    box-shadow:
        0 0 0 3px rgba(22, 187, 130, .08) !important;
}


/* データ更新 */
#today-race .race-update > span:not(.race-update-dot) {
    color: #607580 !important;

    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}


/* 更新時刻 */
#today-race .race-update strong {
    color: #17313e !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}


/* =========================================================
   カード群
========================================================= */

#today-race .venue-grid {
    margin-top: 0 !important;
}


/* =========================================================
   PC
========================================================= */

@media (min-width: 901px) {

    #today-race .race-section-heading {
        min-height: 100px !important;
    }

}


/* =========================================================
   タブレット
========================================================= */

@media (max-width: 900px) {

    #today-race {
        padding-top: 60px !important;
        padding-bottom: 64px !important;
    }

    #today-race .race-section-heading {
        align-items: flex-start !important;

        margin-bottom: 26px !important;
    }

    #today-race .race-section-heading h2 {
        font-size: 32px !important;
    }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 600px) {

    #today-race {
        padding-top: 48px !important;
        padding-bottom: 52px !important;
    }

    #today-race .race-section-heading {
        display: block !important;

        margin-bottom: 24px !important;
    }

    #today-race .section-label {
        font-size: 11px !important;

        margin-bottom: 8px !important;
    }

    #today-race .race-section-heading h2 {
        font-size: 29px !important;
    }

    #today-race .section-description {
        margin-top: 10px !important;

        font-size: 14px !important;
    }

    #today-race .race-update {
        margin-top: 18px !important;
    }

}/* =========================================================
   BOAT LAB HERO
   SAFE TYPOGRAPHY POLISH
   レイアウトを壊さず文字・ボタンのみ改善
========================================================= */


/* =========================================================
   HERO LABEL
========================================================= */

.hero .hero-label {
    color: #00d4f2 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .18em !important;
}


/* =========================================================
   HERO TITLE
========================================================= */

.hero .hero-title {
    color: #ffffff !important;

    font-weight: 900 !important;
    line-height: 1.13 !important;

    letter-spacing: -.025em !important;
}

.hero .hero-title span {
    color: #00d4f2 !important;
}


/* =========================================================
   HERO DESCRIPTION
========================================================= */

.hero .hero-description {
    color: #c0d0d9 !important;

    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1.8 !important;

    letter-spacing: .01em !important;
}


/* =========================================================
   HERO BUTTONS
========================================================= */

.hero .button {
    min-height: 54px !important;

    font-size: 14px !important;
    font-weight: 900 !important;

    border-radius: 6px !important;
}


/* メインボタン */
.hero .button-primary {
    color: #06202b !important;

    background: #00d4ee !important;

    border-color: #00d4ee !important;

    box-shadow:
        0 8px 22px rgba(0, 212, 238, .14) !important;
}


/* サブボタン */
.hero .button-secondary {
    color: #edf7fa !important;

    border-color: rgba(201, 222, 230, .42) !important;
}


/* =========================================================
   HERO STATS
========================================================= */

.hero .hero-stat strong {
    color: #ffffff !important;

    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.hero .hero-stat span {
    color: #91a7b4 !important;

    font-size: 10px !important;
    font-weight: 800 !important;

    letter-spacing: .08em !important;
}


/* =========================================================
   PICKUP LABEL
========================================================= */

.hero .pickup-label {
    color: #00d4f2 !important;

    font-size: 10px !important;
    font-weight: 900 !important;

    letter-spacing: .14em !important;
}


/* =========================================================
   会場名・レース番号
========================================================= */

.hero .pickup-header h2 {
    color: #ffffff !important;

    font-size: 25px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
}

.hero .pickup-header h2 span {
    color: #00d4f2 !important;

    font-size: 25px !important;
    font-weight: 900 !important;
}


/* =========================================================
   SOON / LIVE / FINISH
========================================================= */

.hero .pickup-live {
    font-size: 10px !important;
    font-weight: 900 !important;

    letter-spacing: .06em !important;
}


/* =========================================================
   締切・レース名
========================================================= */

.hero .pickup-meta span {
    color: #829aa8 !important;

    font-size: 10px !important;
    font-weight: 800 !important;
}

.hero .pickup-meta strong {
    color: #ffffff !important;

    font-size: 14px !important;
    font-weight: 900 !important;
}


/* 締切時刻だけ強調 */
.hero .pickup-meta > div:first-child strong {
    font-size: 18px !important;
}


/* =========================================================
   艇情報
========================================================= */

.hero .boat-info small {
    color: #76909f !important;

    font-size: 9px !important;
    font-weight: 800 !important;

    letter-spacing: .06em !important;
}

.hero .boat-info strong {
    color: #f0f7fa !important;

    font-size: 13px !important;
    font-weight: 800 !important;
}


/* 本命 / 対抗 / 単穴など */
.hero .pickup-evaluation {
    color: #8fa5b2 !important;

    font-size: 10px !important;
    font-weight: 700 !important;
}


/* ◎ ○ ▲ */
.hero .boat-mark {
    font-size: 18px !important;
    font-weight: 900 !important;
}


/* =========================================================
   詳細分析ボタン
========================================================= */

.hero .pickup-button {
    min-height: 46px !important;

    font-size: 13px !important;
    font-weight: 900 !important;

    border-radius: 5px !important;
}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 600px) {

    .hero .hero-description {
        font-size: 15px !important;
    }

    .hero .hero-stat strong {
        font-size: 20px !important;
    }

    .hero .hero-stat span {
        font-size: 8px !important;
    }

    .hero .pickup-header h2,
    .hero .pickup-header h2 span {
        font-size: 22px !important;
    }

    .hero .boat-info strong {
        font-size: 12px !important;
    }

}/* =========================================================
   BOAT LAB
   FEATURED RACE FULL WIDTH
   FIXED VERSION
========================================================= */


/* =========================================================
   セクション
========================================================= */

#prediction.featured-section {
    padding-top: 76px !important;
    padding-bottom: 82px !important;
}


/* 見出し */
#prediction .section-heading {
    margin-bottom: 30px !important;
}

#prediction .section-label {
    margin-bottom: 10px !important;

    color: #00b9d8 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .18em !important;
}

#prediction .section-heading h2 {
    margin: 0 !important;

    color: #071d2b !important;

    font-size: 36px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: -.025em !important;
}


/* =========================================================
   注目レースカード全体
========================================================= */

#prediction .featured-race {
    position: relative !important;

    width: 100% !important;
    max-width: none !important;

    display: grid !important;

    grid-template-columns:
        minmax(230px, .9fr)
        minmax(220px, .8fr)
        minmax(380px, 1.4fr) !important;

    grid-template-rows:
        auto
        auto !important;

    gap: 0 !important;

    padding: 0 !important;

    overflow: hidden !important;

    background: #071726 !important;

    color: #ffffff !important;

    border: 1px solid #163247 !important;
    border-radius: 12px !important;

    box-shadow:
        0 16px 42px rgba(8, 29, 43, .10) !important;
}


/* =========================================================
   左ブロック
   PICK UP / 住之江 / 12R
========================================================= */

#prediction .featured-top {
    grid-column: 1 !important;
    grid-row: 1 / 3 !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;

    gap: 20px !important;

    min-width: 0 !important;

    padding: 30px !important;

    border-right:
        1px solid rgba(255,255,255,.10) !important;
}


#prediction .race-badge {
    display: inline-flex !important;
    align-items: center !important;

    padding: 6px 9px !important;

    color: #04111f !important;

    background: #00d9ff !important;

    border-radius: 4px !important;

    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .07em !important;
}


#prediction .race-place {
    margin: 15px 0 0 !important;

    color: #ffffff !important;

    font-size: 29px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: -.02em !important;
}


/* 12R */
#prediction .race-number {
    flex: 0 0 auto !important;

    display: flex !important;
    align-items: baseline !important;

    gap: 4px !important;
}


#prediction .race-number strong {
    color: #ffffff !important;

    font-size: 48px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}


#prediction .race-number span {
    color: #00d9ff !important;

    font-size: 15px !important;
    font-weight: 900 !important;
}


/* =========================================================
   中央ブロック
   締切予定 / レース種別
========================================================= */

#prediction .race-info {
    grid-column: 2 !important;
    grid-row: 1 / 3 !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;

    gap: 0 !important;

    min-width: 0 !important;

    margin: 0 !important;

    padding: 28px !important;

    border-top: 0 !important;
    border-bottom: 0 !important;

    border-right:
        1px solid rgba(255,255,255,.10) !important;
}


#prediction .race-info > div {
    padding: 15px 0 !important;
}


#prediction .race-info > div + div {
    border-top:
        1px solid rgba(255,255,255,.09) !important;
}


#prediction .race-info span {
    display: block !important;

    color: #8195a4 !important;

    font-size: 10px !important;
    font-weight: 800 !important;

    letter-spacing: .06em !important;
}


#prediction .race-info strong {
    display: block !important;

    margin-top: 5px !important;

    color: #ffffff !important;

    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}


/* 20:38 */
#prediction .race-info > div:first-child strong {
    color: #00d9ff !important;

    font-size: 25px !important;
}


/* =========================================================
   右上
   ◎ ○ ▲
========================================================= */

#prediction .prediction-list {
    grid-column: 3 !important;
    grid-row: 1 !important;

    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr)) !important;

    gap: 10px !important;

    min-width: 0 !important;

    margin: 0 !important;

    padding: 28px 28px 14px !important;
}


/* 各予想カード */
#prediction .prediction-item {
    min-width: 0 !important;

    display: flex !important;
    align-items: center !important;

    gap: 11px !important;

    padding: 15px 13px !important;

    background:
        rgba(255,255,255,.04) !important;

    border:
        1px solid rgba(255,255,255,.09) !important;

    border-radius: 7px !important;
}


/* ◎○▲ */
#prediction .prediction-symbol {
    flex: 0 0 auto !important;

    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}


#prediction .prediction-symbol.honmei {
    color: #ff4664 !important;
}

#prediction .prediction-symbol.taikou {
    color: #00d9ff !important;
}

#prediction .prediction-symbol.tanana {
    color: #ffc342 !important;
}


/* 本命 / 対抗 / 単穴 */
#prediction .prediction-item small {
    display: block !important;

    color: #8195a4 !important;

    font-size: 9px !important;
    font-weight: 800 !important;

    line-height: 1.2 !important;
}


/* 1号艇 / 3号艇 / 4号艇 */
#prediction .prediction-item strong {
    display: block !important;

    margin-top: 4px !important;

    color: #ffffff !important;

    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}


/* =========================================================
   右下
   レース分析を見る
========================================================= */

#prediction .race-detail-button {
    grid-column: 3 !important;
    grid-row: 2 !important;

    position: static !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: 48px !important;

    margin:
        0
        28px
        28px !important;

    padding:
        0
        16px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    color: #04111f !important;

    background: #00d9ff !important;

    border-radius: 6px !important;

    font-size: 12px !important;
    font-weight: 900 !important;

    transition:
        transform .18s ease,
        background-color .18s ease !important;
}


#prediction .race-detail-button:hover {
    transform: translateY(-2px) !important;

    background: #25e0f6 !important;
}


#prediction .race-detail-button span {
    font-size: 17px !important;
}


/* =========================================================
   タブレット
========================================================= */

@media (max-width: 950px) {

    #prediction .featured-race {
        grid-template-columns:
            1fr
            1fr !important;
    }


    #prediction .featured-top {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }


    #prediction .race-info {
        grid-column: 2 !important;
        grid-row: 1 !important;

        border-right: 0 !important;
    }


    #prediction .prediction-list {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;

        border-top:
            1px solid rgba(255,255,255,.10) !important;
    }


    #prediction .race-detail-button {
        grid-column: 1 / -1 !important;
        grid-row: 3 !important;
    }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 650px) {

    #prediction.featured-section {
        padding-top: 54px !important;
        padding-bottom: 58px !important;
    }


    #prediction .section-heading h2 {
        font-size: 29px !important;
    }


    #prediction .featured-race {
        display: block !important;
    }


    #prediction .featured-top {
        padding: 22px !important;

        border-right: 0 !important;

        border-bottom:
            1px solid rgba(255,255,255,.10) !important;
    }


    #prediction .race-info {
        padding: 10px 22px !important;

        border-right: 0 !important;

        border-bottom:
            1px solid rgba(255,255,255,.10) !important;
    }


    #prediction .prediction-list {
        grid-template-columns: 1fr !important;

        padding: 22px !important;

        border-top: 0 !important;
    }


    #prediction .race-detail-button {
        margin:
            0
            22px
            22px !important;

        width: auto !important;
    }


    #prediction .race-place {
        font-size: 25px !important;
    }


    #prediction .race-number strong {
        font-size: 40px !important;
    }

}/* =========================================================
   BOAT LAB DATA SECTION
   COMPLETE POLISH
========================================================= */


/* =========================================================
   セクション全体
========================================================= */

#data.data-section {
    position: relative;

    padding-top: 86px !important;
    padding-bottom: 92px !important;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 88% 15%,
            rgba(0, 217, 255, .07),
            transparent 26%
        ),
        #06111f !important;
}


/* 薄い背景装飾 */
#data.data-section::before {
    content: "";

    position: absolute;
    right: -170px;
    top: -230px;

    width: 500px;
    height: 500px;

    border: 1px solid rgba(0, 217, 255, .07);
    border-radius: 50%;

    pointer-events: none;
}


/* コンテンツを背景装飾より前へ */
#data .container {
    position: relative;
    z-index: 1;
}


/* =========================================================
   見出し
========================================================= */

#data .section-heading {
    margin-bottom: 36px !important;
}


#data .section-label {
    margin: 0 0 11px !important;

    color: #00d9ff !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .18em !important;
}


#data .section-heading h2 {
    margin: 0 !important;

    color: #ffffff !important;

    font-size: 38px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: -.025em !important;
}


/* =========================================================
   3カード
========================================================= */

#data .data-grid {
    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr)) !important;

    gap: 18px !important;
}


/* =========================================================
   カード本体
========================================================= */

#data .data-card {
    position: relative;

    min-height: 230px !important;

    display: flex !important;
    flex-direction: column !important;

    padding: 27px 28px 28px !important;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            rgba(14, 39, 58, .96),
            rgba(9, 29, 45, .98)
        ) !important;

    border:
        1px solid rgba(139, 190, 210, .17) !important;

    border-radius: 10px !important;

    box-shadow:
        0 10px 28px rgba(0, 0, 0, .08) !important;

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease !important;
}


/* 上部のシアンライン */
#data .data-card::before {
    content: "";

    position: absolute;
    left: 0;
    top: 0;

    width: 100%;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            #00d9ff 0%,
            rgba(0, 217, 255, .25) 45%,
            transparent 100%
        );

    opacity: .8;
}


/* ホバー */
#data .data-card:hover {
    transform: translateY(-4px);

    border-color:
        rgba(0, 217, 255, .34) !important;

    box-shadow:
        0 18px 38px rgba(0, 0, 0, .15) !important;
}


/* =========================================================
   01 / 02 / 03
========================================================= */

#data .data-number {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 42px !important;
    height: 28px !important;

    margin: 0 !important;

    color: #00d9ff !important;

    background:
        rgba(0, 217, 255, .07) !important;

    border:
        1px solid rgba(0, 217, 255, .16) !important;

    border-radius: 5px !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .04em !important;
}


/* =========================================================
   見出し
========================================================= */

#data .data-card h3 {
    margin: 34px 0 0 !important;

    color: #ffffff !important;

    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: -.01em !important;
}


/* =========================================================
   説明文
========================================================= */

#data .data-card p {
    max-width: 300px;

    margin: 13px 0 0 !important;

    color: #9eb1bd !important;

    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.75 !important;

    letter-spacing: .01em !important;
}


/* =========================================================
   カード右下の装飾
========================================================= */

#data .data-card::after {
    content: "→";

    position: absolute;
    right: 24px;
    bottom: 21px;

    color: rgba(0, 217, 255, .45);

    font-size: 18px;
    font-weight: 800;

    transition:
        transform .18s ease,
        color .18s ease;
}


#data .data-card:hover::after {
    transform: translateX(3px);

    color: #00d9ff;
}


/* =========================================================
   タブレット
========================================================= */

@media (max-width: 900px) {

    #data.data-section {
        padding-top: 70px !important;
        padding-bottom: 74px !important;
    }


    #data .section-heading h2 {
        font-size: 33px !important;
    }


    #data .data-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }


    #data .data-card:last-child {
        grid-column: 1 / -1;
    }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 600px) {

    #data.data-section {
        padding-top: 54px !important;
        padding-bottom: 58px !important;
    }


    #data .section-heading {
        margin-bottom: 26px !important;
    }


    #data .section-label {
        font-size: 11px !important;
    }


    #data .section-heading h2 {
        font-size: 29px !important;
    }


    #data .data-grid {
        grid-template-columns: 1fr !important;

        gap: 14px !important;
    }


    #data .data-card,
    #data .data-card:last-child {
        grid-column: auto !important;

        min-height: 205px !important;

        padding: 23px !important;
    }


    #data .data-card h3 {
        margin-top: 27px !important;

        font-size: 21px !important;
    }


    #data .data-card p {
        font-size: 13px !important;
    }

}/* =========================================================
   BOAT LAB
   LATEST INFORMATION / COLUMN
   COMPLETE POLISH
========================================================= */


/* =========================================================
   セクション全体
========================================================= */

#column.column-section {
    position: relative;

    padding-top: 82px !important;
    padding-bottom: 88px !important;

    overflow: hidden;

    background: #ffffff !important;
}


/* =========================================================
   見出し
========================================================= */

#column .section-heading {
    margin-bottom: 30px !important;
}


#column .section-label {
    margin: 0 0 10px !important;

    color: #00b9d8 !important;

    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;

    letter-spacing: .18em !important;
}


#column .section-heading h2 {
    margin: 0 !important;

    color: #071d2b !important;

    font-size: 36px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;

    letter-spacing: -.025em !important;
}


/* =========================================================
   メインパネル
========================================================= */

#column .column-placeholder {
    position: relative;

    width: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 60px !important;

    padding: 38px 42px !important;

    overflow: hidden;

    text-align: left !important;

    background:
        linear-gradient(
            135deg,
            #f7fafb 0%,
            #eef5f7 100%
        ) !important;

    border: 1px solid #dbe7eb !important;
    border-radius: 12px !important;

    box-shadow:
        0 14px 36px rgba(16, 45, 61, .055) !important;
}


/* 左のシアンライン */
#column .column-placeholder::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 4px;
    height: 100%;

    background: #00cfea;
}


/* 右側の薄い装飾 */
#column .column-placeholder::after {
    content: "";

    position: absolute;

    right: -90px;
    top: -120px;

    width: 310px;
    height: 310px;

    border-radius: 50%;

    border:
        1px solid rgba(0, 194, 222, .09);

    pointer-events: none;
}


/* =========================================================
   左側コンテンツ
========================================================= */

#column .column-placeholder-content {
    position: relative;
    z-index: 2;

    flex: 1 1 auto;

    max-width: 690px;
}


/* BOAT LAB INSIGHT */
#column .column-placeholder-label {
    display: block;

    margin-bottom: 12px;

    color: #00aeca;

    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;

    letter-spacing: .16em;
}


/* メイン文言 */
#column .column-placeholder h3 {
    margin: 0;

    color: #112c3a;

    font-size: 25px;
    font-weight: 900;
    line-height: 1.3;

    letter-spacing: -.015em;
}


/* 説明文 */
#column .column-placeholder p {
    max-width: 650px;

    margin: 13px 0 0 !important;

    color: #5e7480 !important;

    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.8 !important;

    letter-spacing: .01em !important;
}


/* =========================================================
   COMING SOON
========================================================= */

#column .column-coming-soon {
    position: relative;
    z-index: 2;

    flex: 0 0 auto;

    min-width: 170px;

    padding-left: 34px;

    border-left: 1px solid #d5e3e8;
}


#column .column-coming-soon span {
    display: block;

    color: #8799a3;

    font-size: 10px;
    font-weight: 800;
    line-height: 1;

    letter-spacing: .15em;
}


#column .column-coming-soon strong {
    display: block;

    margin-top: 7px;

    color: #123443;

    font-size: 24px;
    font-weight: 900;
    line-height: 1;

    letter-spacing: .03em;
}


/* SOONの右にシアンポイント */
#column .column-coming-soon strong::after {
    content: "";

    display: inline-block;

    width: 8px;
    height: 8px;

    margin-left: 9px;

    border-radius: 50%;

    background: #00cfea;
}


/* =========================================================
   ホバー
========================================================= */

#column .column-placeholder {
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}


#column .column-placeholder:hover {
    transform: translateY(-3px);

    border-color: #c5e2e8 !important;

    box-shadow:
        0 18px 42px rgba(16, 45, 61, .09) !important;
}


/* =========================================================
   タブレット
========================================================= */

@media (max-width: 900px) {

    #column.column-section {
        padding-top: 68px !important;
        padding-bottom: 72px !important;
    }


    #column .section-heading h2 {
        font-size: 32px !important;
    }


    #column .column-placeholder {
        gap: 35px !important;

        padding: 32px !important;
    }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width: 600px) {

    #column.column-section {
        padding-top: 54px !important;
        padding-bottom: 58px !important;
    }


    #column .section-heading {
        margin-bottom: 24px !important;
    }


    #column .section-label {
        font-size: 11px !important;
    }


    #column .section-heading h2 {
        font-size: 29px !important;
    }


    #column .column-placeholder {
        display: block !important;

        padding: 27px 24px !important;
    }


    #column .column-placeholder h3 {
        font-size: 21px;
    }


    #column .column-placeholder p {
        font-size: 13px !important;
    }


    #column .column-coming-soon {
        min-width: 0;

        margin-top: 26px;
        padding-top: 20px;
        padding-left: 0;

        border-left: 0;
        border-top: 1px solid #d5e3e8;
    }


    #column .column-coming-soon strong {
        font-size: 21px;
    }

}/* =========================================================
   BOAT LAB FOOTER
   FINAL DESIGN
========================================================= */


/* =========================================================
   FOOTER BASE
========================================================= */

.site-footer {
    position: relative;

    padding: 0 !important;

    overflow: hidden;

    background: #030d16 !important;
    color: #ffffff;
}


/* 背景の薄い装飾 */
.site-footer::before {
    content: "";

    position: absolute;

    width: 420px;
    height: 420px;

    right: -180px;
    top: -240px;

    border-radius: 50%;

    border:
        1px solid rgba(0, 217, 255, .06);

    pointer-events: none;
}


.site-footer .footer-container {
    position: relative;
    z-index: 1;

    padding-top: 64px;
    padding-bottom: 28px;
}


/* =========================================================
   MAIN
========================================================= */

.site-footer .footer-main {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    align-items: start;

    gap: 80px;

    padding-bottom: 54px;
}


/* =========================================================
   BRAND
========================================================= */

.site-footer .footer-brand {
    max-width: 440px;
}


.site-footer .footer-logo {
    display: inline-block;

    margin: 0;

    color: #ffffff !important;

    font-size: 27px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: -.025em;

    text-decoration: none !important;
}


.site-footer .footer-logo strong {
    color: #00d9ff !important;

    font-weight: 900;
}


/* ブランド説明 */
.site-footer .footer-description {
    margin: 17px 0 0 !important;

    color: #9badb8 !important;

    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;
}


/* 英字コンセプト */
.site-footer .footer-concept {
    margin: 26px 0 0 !important;

    color: #00cce8 !important;

    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .16em !important;
}


/* =========================================================
   NAVIGATION AREA
========================================================= */

.site-footer .footer-nav-area {
    min-width: 390px;
}


/* NAVIGATION */
.site-footer .footer-nav-label {
    margin: 0 0 18px !important;

    color: #667d8b !important;

    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .16em !important;
}


/* ナビ */
.site-footer .footer-navigation {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(120px, 1fr));

    gap: 0 42px !important;

    margin: 0 !important;
}


/* リンク */
.site-footer .footer-navigation a {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: space-between;

    min-height: 43px;

    color: #d9e3e8 !important;

    border-bottom:
        1px solid rgba(255, 255, 255, .08);

    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2;

    text-decoration: none !important;

    transition:
        color .18s ease,
        padding-left .18s ease;
}


/* 矢印 */
.site-footer .footer-navigation a::after {
    content: "→";

    margin-left: 20px;

    color: #00d9ff;

    font-size: 13px;

    opacity: .7;

    transition:
        transform .18s ease,
        opacity .18s ease;
}


/* hover */
.site-footer .footer-navigation a:hover {
    padding-left: 4px;

    color: #ffffff !important;
}


.site-footer .footer-navigation a:hover::after {
    transform: translateX(3px);

    opacity: 1;
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.site-footer .footer-bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 30px;

    padding-top: 24px;

    border-top:
        1px solid rgba(255, 255, 255, .09);
}


/* コピーライト */
.site-footer .copyright {
    margin: 0 !important;

    color: #607481 !important;

    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}


/* 右下 */
.site-footer .footer-bottom-message {
    margin: 0 !important;

    color: #607481 !important;

    font-size: 9px !important;
    font-weight: 800 !important;
    line-height: 1 !important;

    letter-spacing: .16em !important;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .site-footer .footer-container {
        padding-top: 54px;
    }


    .site-footer .footer-main {
        grid-template-columns: 1fr;

        gap: 44px;

        padding-bottom: 44px;
    }


    .site-footer .footer-nav-area {
        min-width: 0;
        width: 100%;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .site-footer .footer-container {
        padding-top: 46px;
        padding-bottom: 24px;
    }


    .site-footer .footer-main {
        gap: 38px;

        padding-bottom: 38px;
    }


    .site-footer .footer-logo {
        font-size: 24px !important;
    }


    .site-footer .footer-description {
        margin-top: 14px !important;

        font-size: 13px !important;
    }


    .site-footer .footer-concept {
        margin-top: 22px !important;

        font-size: 9px !important;
    }


    .site-footer .footer-navigation {
        grid-template-columns: 1fr;

        gap: 0 !important;
    }


    .site-footer .footer-navigation a {
        min-height: 46px;

        font-size: 13px !important;
    }


    .site-footer .footer-bottom {
        display: block;

        padding-top: 22px;
    }


    .site-footer .footer-bottom-message {
        margin-top: 10px !important;
    }

}/* =========================================================
   BOAT LAB FOOTER
   FINAL BALANCE FIX
========================================================= */

@media (min-width: 901px) {

    /* フッター全体 */
    .site-footer .footer-container {
        padding-top: 68px !important;
        padding-bottom: 30px !important;
    }


    /* 左：ブランド / 右：ナビ */
    .site-footer .footer-main {
        display: grid !important;

        grid-template-columns:
            minmax(0, 1fr)
            430px !important;

        align-items: start !important;

        gap: 100px !important;

        padding-bottom: 58px !important;
    }


    /* =====================================================
       LEFT / BRAND
    ===================================================== */

    .site-footer .footer-brand {
        max-width: 500px !important;
    }


    .site-footer .footer-logo {
        display: inline-block !important;

        color: #ffffff !important;

        font-size: 30px !important;
        font-weight: 900 !important;
        line-height: 1 !important;

        letter-spacing: -.03em !important;
    }


    .site-footer .footer-logo strong {
        color: #00d9ff !important;
    }


    .site-footer .footer-description {
        margin-top: 20px !important;

        color: #9fb2bd !important;

        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.7 !important;
    }


    .site-footer .footer-concept {
        margin-top: 28px !important;

        color: #00d9ff !important;

        font-size: 11px !important;
        font-weight: 900 !important;

        letter-spacing: .15em !important;
    }


    /* =====================================================
       RIGHT / NAVIGATION
    ===================================================== */

    .site-footer .footer-nav-area {
        width: 100% !important;
        min-width: 0 !important;

        justify-self: end !important;
    }


    .site-footer .footer-nav-label {
        margin: 0 0 18px !important;

        color: #00d9ff !important;

        font-size: 10px !important;
        font-weight: 900 !important;

        letter-spacing: .18em !important;
    }


    .site-footer .footer-navigation {
        display: grid !important;

        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        column-gap: 38px !important;
        row-gap: 0 !important;

        width: 100% !important;

        margin: 0 !important;
    }


    .site-footer .footer-navigation a {
        display: flex !important;

        align-items: center !important;
        justify-content: space-between !important;

        min-height: 48px !important;

        padding: 0 !important;

        border-bottom:
            1px solid rgba(255,255,255,.09) !important;

        color: #dbe5ea !important;

        font-size: 14px !important;
        font-weight: 800 !important;

        text-decoration: none !important;
    }


    .site-footer .footer-navigation a::after {
        content: "→" !important;

        color: #00d9ff !important;

        font-size: 14px !important;

        opacity: .75 !important;
    }


    .site-footer .footer-navigation a:hover {
        color: #ffffff !important;
        padding-left: 4px !important;
    }


    .site-footer .footer-navigation a:hover::after {
        transform: translateX(3px);
        opacity: 1 !important;
    }


    /* =====================================================
       BOTTOM
    ===================================================== */

    .site-footer .footer-bottom {
        display: flex !important;

        align-items: center !important;
        justify-content: space-between !important;

        width: 100% !important;

        padding-top: 26px !important;

        border-top:
            1px solid rgba(255,255,255,.10) !important;
    }


    .site-footer .copyright {
        margin: 0 !important;

        color: #708591 !important;

        font-size: 11px !important;
        font-weight: 700 !important;
    }


    .site-footer .footer-bottom-message {
        margin: 0 !important;

        color: #708591 !important;

        font-size: 10px !important;
        font-weight: 900 !important;

        letter-spacing: .16em !important;
    }

}/* =========================================================
   BOAT LAB
   MOBILE FINAL POLISH
========================================================= */

@media (max-width: 600px) {

    /* =====================================================
       HEADER
    ===================================================== */

    .site-header {
        min-height: 50px !important;
    }

    .site-header .container,
    .header-inner {
        min-height: 50px !important;
    }

    .site-logo,
    .site-branding a {
        font-size: 20px !important;
    }

    .menu-toggle {
        width: 30px !important;
        height: 30px !important;
    }


    /* =====================================================
       HERO
    ===================================================== */

    .hero {
        padding-top: 36px !important;
        padding-bottom: 40px !important;
    }

    .hero .hero-title {
        font-size: 37px !important;
        line-height: 1.08 !important;
    }

    .hero .hero-description {
        margin-top: 18px !important;
        font-size: 14px !important;
        line-height: 1.7 !important;
    }

    .hero .hero-buttons {
        margin-top: 26px !important;
        gap: 10px !important;
    }

    .hero .button {
        height: 48px !important;
    }

    .hero .hero-stats {
        margin-top: 28px !important;
    }

    .hero .hero-layout {
        gap: 32px !important;
    }

    .hero .hero-pickup {
        padding: 16px !important;
    }

    .hero .boat-row {
        min-height: 44px !important;
    }


    /* =====================================================
       TODAY'S RACES
    ===================================================== */

    #today-race {
        padding-top: 42px !important;
        padding-bottom: 46px !important;
    }

    #today-race .race-section-heading {
        margin-bottom: 18px !important;
    }

    #today-race .race-update {
        margin-top: 14px !important;
    }

    #today-race .venue-grid {
        gap: 9px !important;
    }

    #today-race .venue-card {
        padding: 14px 14px 13px !important;
    }

    #today-race .venue-card-top {
        margin-bottom: 10px !important;
    }

    #today-race .venue-main {
        margin-bottom: 10px !important;
    }

    #today-race .venue-main h3 {
        font-size: 21px !important;
    }

    #today-race .venue-arrow {
        width: 29px !important;
        height: 29px !important;
    }

    #today-race .venue-bottom {
        padding-top: 10px !important;
    }

    #today-race .venue-next-number {
        font-size: 20px !important;
    }

    #today-race .venue-next-deadline strong {
        font-size: 16px !important;
    }

    #today-race .all-venues-link a {
        min-height: 44px !important;
    }


    /* =====================================================
       FEATURED RACE
    ===================================================== */

    #prediction.featured-section {
        padding-top: 46px !important;
        padding-bottom: 48px !important;
    }

    #prediction .featured-race {
        border-radius: 9px !important;
    }

    #prediction .featured-top {
        padding: 18px !important;
    }

    #prediction .race-place {
        font-size: 23px !important;
    }

    #prediction .race-number strong {
        font-size: 38px !important;
    }

    #prediction .race-info {
        padding: 6px 18px !important;
    }

    #prediction .race-info > div {
        padding: 12px 0 !important;
    }

    #prediction .prediction-list {
        padding: 18px !important;
        gap: 8px !important;
    }

    #prediction .prediction-item {
        padding: 12px !important;
    }

    #prediction .race-detail-button {
        min-height: 44px !important;
        margin: 0 18px 18px !important;
    }


    /* =====================================================
       DATA
    ===================================================== */

    #data.data-section {
        padding-top: 46px !important;
        padding-bottom: 50px !important;
    }

    #data .section-heading h2 {
        font-size: 27px !important;
        line-height: 1.18 !important;
    }

    #data .data-grid {
        gap: 11px !important;
    }

    #data .data-card,
    #data .data-card:last-child {
        min-height: 185px !important;
        padding: 20px !important;
    }

    #data .data-card h3 {
        margin-top: 23px !important;
        font-size: 20px !important;
    }

    #data .data-card p {
        font-size: 12px !important;
        line-height: 1.65 !important;
    }


    /* =====================================================
       COLUMN
    ===================================================== */

    #column.column-section {
        padding-top: 46px !important;
        padding-bottom: 50px !important;
    }

    #column .column-placeholder {
        padding: 22px 20px !important;
    }

    #column .column-placeholder h3 {
        font-size: 20px !important;
        line-height: 1.35 !important;
    }

    #column .column-placeholder p {
        font-size: 12px !important;
        line-height: 1.7 !important;
    }


    /* =====================================================
       FOOTER
    ===================================================== */

    .site-footer .footer-container {
        padding-top: 40px !important;
        padding-bottom: 28px !important;
    }

    .site-footer .footer-main {
        gap: 32px !important;
        padding-bottom: 30px !important;
    }

    .site-footer .footer-navigation a {
        min-height: 42px !important;
    }

    .site-footer .footer-bottom {
        padding-top: 18px !important;
    }

    .site-footer .copyright {
        font-size: 10px !important;
    }

    .site-footer .footer-bottom-message {
        margin-top: 8px !important;
        font-size: 8px !important;
    }

}/* =========================================================
   BOAT LAB
   MOBILE TODAY'S RACES - 2 COLUMN
========================================================= */

@media (max-width: 600px) {

    /* ========================================
       本日の開催：2列
    ======================================== */

    #today-race .venue-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }


    /* ========================================
       カード
    ======================================== */

    #today-race .venue-card {
        min-width: 0 !important;
        padding: 12px 11px 11px !important;
        border-radius: 7px !important;
    }


    /* ========================================
       開催前 / デイ・ナイター
    ======================================== */

    #today-race .venue-card-top {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        gap: 5px !important;
        margin-bottom: 12px !important;
    }

    #today-race .venue-status {
        padding: 5px 6px !important;

        font-size: 9px !important;
        font-weight: 900 !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }

    #today-race .venue-type {
        font-size: 9px !important;
        font-weight: 800 !important;

        white-space: nowrap !important;
    }


    /* ========================================
       会場番号・会場名
    ======================================== */

    #today-race .venue-main {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        gap: 5px !important;
        margin-bottom: 11px !important;
    }

    #today-race .venue-main > div {
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }

    #today-race .venue-code {
        margin-bottom: 4px !important;

        font-size: 10px !important;
        font-weight: 900 !important;
    }

    #today-race .venue-main h3 {
        margin: 0 !important;

        font-size: 18px !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;

        white-space: nowrap !important;
    }


    /* ========================================
       矢印
    ======================================== */

    #today-race .venue-arrow {
        flex: 0 0 25px !important;

        width: 25px !important;
        height: 25px !important;

        font-size: 12px !important;
        border-radius: 5px !important;
    }


    /* ========================================
       START / 締切予定
    ======================================== */

    #today-race .venue-bottom {
        display: grid !important;
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;

        gap: 7px !important;

        padding-top: 9px !important;
    }

    #today-race .venue-next-race,
    #today-race .venue-next-deadline {
        min-width: 0 !important;
    }

    #today-race .venue-next-deadline {
        padding-left: 7px !important;
    }


    /* ラベル */

    #today-race .venue-bottom-label {
        margin-bottom: 5px !important;

        font-size: 8px !important;
        font-weight: 900 !important;
        letter-spacing: .03em !important;

        white-space: nowrap !important;
    }


    /* 1R / 12R */

    #today-race .venue-race-progress {
        display: flex !important;
        align-items: baseline !important;
        gap: 3px !important;

        white-space: nowrap !important;
    }

    #today-race .venue-next-number {
        font-size: 18px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }

    #today-race .venue-total-races {
        font-size: 8px !important;
        font-weight: 800 !important;
    }


    /* 締切時刻 */

    #today-race .venue-next-deadline strong {
        display: block !important;

        font-size: 14px !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;

        white-space: nowrap !important;
    }


    /* ========================================
       本日終了カード
    ======================================== */

    #today-race .venue-ended-message {
        min-width: 0 !important;
    }

    #today-race .venue-ended-message strong {
        font-size: 12px !important;
        font-weight: 900 !important;
        line-height: 1.3 !important;
    }


    /* ========================================
       開催場一覧ボタン
       これは2列にせず横幅いっぱい
    ======================================== */

    #today-race .all-venues-link {
        grid-column: 1 / -1 !important;
    }

}/* =========================================================
   BOAT LAB
   MOBILE VENUE GRID 2COL - FINAL POLISH
========================================================= */

@media (max-width: 600px) {

    /* カード間隔 */
    #today-race .venue-grid {
        gap: 8px !important;
    }


    /* カード全体 */
    #today-race .venue-card {
        padding: 11px 10px 12px !important;
        min-height: 132px !important;
    }


    /* 開催前 / デイ・ナイター */
    #today-race .venue-card-top {
        margin-bottom: 9px !important;
    }

    #today-race .venue-status {
        font-size: 9px !important;
        padding: 5px 6px !important;
        font-weight: 900 !important;
    }

    #today-race .venue-type {
        font-size: 9px !important;
        font-weight: 900 !important;
    }


    /* 会場番号 */
    #today-race .venue-code {
        font-size: 10px !important;
        margin-bottom: 3px !important;
    }


    /* 会場名 */
    #today-race .venue-main {
        margin-bottom: 9px !important;
    }

    #today-race .venue-main h3 {
        font-size: 18px !important;
        line-height: 1.1 !important;
        font-weight: 900 !important;
        letter-spacing: -0.02em !important;
    }


    /* 矢印 */
    #today-race .venue-arrow {
        width: 25px !important;
        height: 25px !important;
        flex-basis: 25px !important;
    }


    /* 下部情報 */
    #today-race .venue-bottom {
        grid-template-columns:
            minmax(0, .95fr)
            minmax(0, 1.05fr) !important;

        gap: 6px !important;
        padding-top: 8px !important;
    }

    #today-race .venue-next-deadline {
        padding-left: 6px !important;
    }


    /* START / 締切予定 */
    #today-race .venue-bottom-label {
        font-size: 9px !important;
        line-height: 1.1 !important;
        margin-bottom: 5px !important;
        letter-spacing: 0 !important;
        font-weight: 900 !important;
    }


    /* 1R */
    #today-race .venue-next-number {
        font-size: 19px !important;
        line-height: 1 !important;
        font-weight: 900 !important;
    }


    /* /12R */
    #today-race .venue-total-races {
        font-size: 8px !important;
        font-weight: 900 !important;
    }


    /* 締切時刻 */
    #today-race .venue-next-deadline strong {
        font-size: 15px !important;
        line-height: 1 !important;
        font-weight: 900 !important;
    }


    /* 全24場ボタン */
    #today-race .all-venues-link {
        margin-top: 10px !important;
    }

    #today-race .all-venues-link a {
        min-height: 44px !important;
        padding: 0 14px !important;
        font-size: 11px !important;
        font-weight: 900 !important;
    }

}/* =========================================================
   BOAT LAB
   MOBILE HEADING TYPOGRAPHY FINAL
========================================================= */

@media (max-width: 600px) {

    /* =====================================================
       HERO
    ===================================================== */

    .hero .hero-title {
        max-width: 100% !important;

        font-size: 29px !important;
        font-weight: 900 !important;
        line-height: 1.13 !important;

        letter-spacing: -0.045em !important;

        word-break: keep-all !important;
        overflow-wrap: normal !important;
    }

    .hero .hero-title span {
        color: #00d9ff !important;
    }


    /* HERO上の英字 */
    .hero .hero-label {
        font-size: 10px !important;
        font-weight: 900 !important;

        line-height: 1.3 !important;

        letter-spacing: .17em !important;

        margin-bottom: 13px !important;
    }


    /* HERO説明 */
    .hero .hero-description {
        margin-top: 18px !important;

        color: #c3d2da !important;

        font-size: 13px !important;
        font-weight: 500 !important;
        line-height: 1.75 !important;

        letter-spacing: .01em !important;
    }



    /* =====================================================
       DATA
    ===================================================== */

    #data .section-heading {
        margin-bottom: 24px !important;
    }


    #data .section-label {
        margin-bottom: 9px !important;

        font-size: 9px !important;
        font-weight: 900 !important;

        letter-spacing: .17em !important;
    }


    #data .section-heading h2 {
        max-width: 100% !important;

        margin: 0 !important;

        color: #ffffff !important;

        font-size: 25px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;

        letter-spacing: -0.04em !important;

        word-break: keep-all !important;
        overflow-wrap: normal !important;
    }

}/* =========================================================
   BOAT LAB
   MOBILE SMART HEADER
========================================================= */

@media (max-width: 600px) {

    .site-header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;

        width: 100% !important;

        z-index: 9999 !important;

        transition:
            transform .25s ease,
            min-height .25s ease,
            background-color .25s ease,
            box-shadow .25s ease !important;
    }


    /* 通常時 */
    .site-header .header-inner,
    .site-header .container {
        min-height: 50px !important;

        transition:
            min-height .25s ease,
            padding .25s ease !important;
    }


    /* スクロール開始後：少しコンパクト */
    .site-header.is-scrolled {
        background: rgba(5, 18, 31, .96) !important;

        box-shadow:
            0 6px 18px rgba(0, 0, 0, .12) !important;
    }

    .site-header.is-scrolled .header-inner,
    .site-header.is-scrolled .container {
        min-height: 44px !important;
    }


    /* ロゴも少し小さく */
    .site-header.is-scrolled .site-logo,
    .site-header.is-scrolled .site-branding a {
        font-size: 18px !important;
    }


    /* メニューボタンも少し縮小 */
    .site-header.is-scrolled .menu-toggle {
        transform: scale(.9);
    }


    /* 下スクロール時に隠す */
    .site-header.is-hidden {
        transform: translateY(-110%) !important;
    }


    /* 上スクロール時に戻す */
    .site-header.is-visible {
        transform: translateY(0) !important;
    }


    /* 固定ヘッダー分だけ本文を下げる */
    body {
        padding-top: 50px !important;
    }

}/* =========================================================
   BOAT LAB
   FEATURED RACE SAFE ORDER FIX
========================================================= */

/*
 * 既存のPCレイアウトは維持
 * 買い目とボタンだけ全幅にする
 */

#prediction .featured-bets {
    grid-column: 1 / -1 !important;

    width: 100% !important;

    margin: 0 !important;
}


/*
 * ボタンは買い目の下に配置
 */

#prediction .race-detail-button {
    grid-column: 1 / -1 !important;

    width: auto !important;

    margin:
        0
        28px
        24px !important;

    min-height: 52px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    padding:
        0
        18px !important;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 650px) {

    #prediction .featured-bets {
        width: 100% !important;
    }

    #prediction .race-detail-button {
        margin:
            0
            18px
            18px !important;

        min-height: 48px !important;
    }

}/* =========================================================
   BOAT LAB
   FEATURED BET AREA - COMPLETE RESTORE
   2026-08-19
========================================================= */


/* =========================================================
   買い目エリア
========================================================= */

#prediction .featured-bets {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;

    width: 100% !important;
    box-sizing: border-box !important;

    margin: 0 !important;
    padding: 22px 28px 24px !important;

    background: rgba(0, 0, 0, .10) !important;

    border-top:
        1px solid rgba(255, 255, 255, .10) !important;
}


/* =========================================================
   買い目タイトル部分
========================================================= */

#prediction .featured-bets-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 18px !important;

    margin-bottom: 18px !important;
}


#prediction .featured-bets-header > div {
    min-width: 0 !important;
}


#prediction .featured-bets-label {
    display: block !important;

    margin-bottom: 6px !important;

    color: #00d9ff !important;

    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .14em !important;
}


#prediction .featured-bets-header strong {
    display: block !important;

    color: #ffffff !important;

    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}


/* =========================================================
   展示反映済み / 展示前予想
========================================================= */

#prediction .featured-bets-status {
    flex: 0 0 auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 27px !important;

    padding: 6px 10px !important;

    border-radius: 4px !important;

    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    white-space: nowrap !important;
}


#prediction .featured-bets-status.is-final {
    color: #061b22 !important;

    background: #00d9ff !important;
}


#prediction .featured-bets-status.is-pre {
    color: #c2d2dc !important;

    background: rgba(255, 255, 255, .06) !important;

    border:
        1px solid rgba(255, 255, 255, .12) !important;
}


/* =========================================================
   本線 / 押さえ / 穴
========================================================= */

#prediction .featured-bets-grid {
    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr)) !important;

    gap: 10px !important;
}


#prediction .featured-bet-group {
    min-width: 0 !important;

    padding: 14px !important;

    background: rgba(255, 255, 255, .035) !important;

    border:
        1px solid rgba(255, 255, 255, .10) !important;

    border-radius: 7px !important;
}


/* =========================================================
   MAIN / COVER / VALUE
========================================================= */

#prediction .featured-bet-title {
    display: flex !important;
    align-items: center !important;

    gap: 8px !important;

    margin-bottom: 11px !important;
}


#prediction .featured-bet-title span {
    color: #7891a2 !important;

    font-size: 8px !important;
    font-weight: 900 !important;

    letter-spacing: .09em !important;
}


#prediction .featured-bet-title strong {
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}


/* 本線 */

#prediction .bet-main .featured-bet-title strong {
    color: #ff5574 !important;
}


/* 押さえ */

#prediction .bet-cover .featured-bet-title strong {
    color: #00d9ff !important;
}


/* 穴 */

#prediction .bet-value .featured-bet-title strong {
    color: #ffc23d !important;
}


/* =========================================================
   買い目数字
========================================================= */

#prediction .featured-ticket-list {
    display: flex !important;
    flex-wrap: wrap !important;

    gap: 7px !important;
}


#prediction .featured-ticket {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 31px !important;

    padding: 6px 10px !important;

    color: #ffffff !important;

    background: rgba(255, 255, 255, .06) !important;

    border:
        1px solid rgba(255, 255, 255, .12) !important;

    border-radius: 4px !important;

    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    white-space: nowrap !important;
}


#prediction .featured-ticket-empty {
    color: #758b99 !important;

    font-size: 12px !important;
    font-weight: 800 !important;
}


/* =========================================================
   レース分析ボタン
   以前の明示Grid配置を解除
========================================================= */

#prediction .race-detail-button {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;

    width: auto !important;

    margin:
        18px
        28px
        24px !important;

    min-height: 52px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    padding:
        0
        18px !important;

    box-sizing: border-box !important;

    color: #06202b !important;

    background: #00d9f5 !important;

    border-radius: 5px !important;

    font-size: 13px !important;
    font-weight: 900 !important;
}


/* =========================================================
   HTML順をそのまま利用

   1. featured-top / race-info / prediction-list
   2. featured-bets
   3. race-detail-button
========================================================= */

#prediction .featured-bets {
    order: 50 !important;
}

#prediction .race-detail-button {
    order: 60 !important;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 650px) {

    #prediction .featured-bets {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;

        padding:
            18px
            16px !important;
    }


    #prediction .featured-bets-header {
        gap: 10px !important;

        margin-bottom: 15px !important;
    }


    #prediction .featured-bets-header strong {
        font-size: 15px !important;
    }


    #prediction .featured-bets-grid {
        grid-template-columns: 1fr !important;

        gap: 8px !important;
    }


    #prediction .featured-bet-group {
        padding: 12px !important;
    }


    #prediction .featured-ticket {
        min-height: 30px !important;

        padding: 6px 9px !important;

        font-size: 12px !important;
    }


    #prediction .race-detail-button {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;

        margin:
            14px
            16px
            18px !important;

        min-height: 48px !important;

        font-size: 12px !important;
    }

}