h2.subttl {
    font-size: 2rem !important;
    font-weight: bold !important;
    text-align: center;
}
.fair-area {
    width: 980px;
    margin: 2em auto 0;
}
.catcharea-waku {
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    background-image: url('https://www.tp-kantou.co.jp/wp-content/themes/template/images/geospatial-fair-2026/header-bg.jpg');
    background-position: 50% 35%;
    background-size: cover;
    margin-bottom: 2em;
    padding: 1em 0 5em;
}
.catcharea-waku::after{
    content: "";
    position: absolute;
    z-index: 2;
    width: 100%;
    height:100%;
    top: 0;
    left: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.129), rgba(5, 5, 5, 0.6));
}
.catcharea-waku > .catcharea {
    position: relative;
    z-index: 3;
}
.catcharea {
    margin: 1.5em 10px;
    text-align: center;
}
.nt-icon {
    text-align: left;
    margin: 0 1em 1em;
}
.nt-icon img {
    width:25%;
}
.catcharea img.catch-ttl {
    width:100%;
    max-width: 680px;
    object-fit: cover;
    object-position: 50% 50%;
}

.readarea-waku {
    margin-bottom: 2em;
}
.readarea {
    margin: 1.5em 10px;
    text-align: center;
}
.readarea .marker-yellow {
    padding: 5px 10px;
    background: #fff200;
    font-size: 2.5rem;
}
.readarea p {
    line-height: 1.8;
    font-size: 1.1rem;
}
.readarea .readtxt {
    max-width: 760px;
    margin: 2em auto;
    padding: 0 1em;
    text-align: left;
}
.readarea dl.sponsoring {
    max-width: 350px;
    width: 100%;
    margin: 1em auto 1em;
    font-size: 1rem;
    line-height: 1.5em;
    text-align: left;
}
.readarea dl.sponsoring dt {
    width: 60px;
    margin: 0;
    padding: 3px 0 0px;
    box-sizing: border-box;
}
.readarea dl.sponsoring dd {
    width: 100%;
    margin: 0;
    padding: 3px 0 0px;
    box-sizing: border-box;
}

.gree {
    background-color: #3ea537 !important;
    color: #fff !important;
}
.orange {
    background-color: #e47800 !important;
    color: #fff !important;
}
/*.gree.bgc_transparent {background-color: #d7ead1;}
.orange.bgc_transparent {background-color: #f5d5cb;}*/

.fair_area_box {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 1em !important;
    justify-content: center;
    align-items: center;
}
.fair_area {
    display: inline-block;
    width: 600px;
    padding: 15px 30px;
    box-sizing: border-box;
}
.fair_qr {
    display: inline-block;
    box-sizing: border-box;
    text-align: center;
}
dl.fair_info {
    display:flex;
    flex-wrap: wrap;
    width:100%;
    margin:0em auto;
    font-size: 1.15em;
    line-height: 1.4em;
}
dl.fair_info dt {
    float: none;
    display:inline-block;
    width:100px;
    margin: 0;
    padding:3px 0 0px;
    box-sizing: border-box;
}
dl.fair_info dt span {
    padding: 5px;
}
dl.fair_info dd {
    display:inline-block;
    width:calc(100% - 100px);
    margin: 0;
    padding:3px 0 0px;
    box-sizing: border-box;
}
dl.fair_info dd:first-of-type {
    padding:3px 0 25px;
}
dl.fair_info dt div,
dl.fair_info dd div {
    display:inline-block; font-size: .9em;
}
dl.fair_info dd span {
    font-family: 'Roboto', 'Noto Sans JP', sans-serif;
    font-size: 2em;
    font-weight: bold;
}
dl.fair_info dd span.floar {
    display: inline-block;
    font-family:inherit;
    font-size: .8em;
    font-weight: normal;
    margin-left: .5em;
}
dl.fair_info dd span.access-map {
    font-family:inherit;
    font-size: .8em;
    font-weight: normal;
}
.fair_time {
    font-size: 1.05em !important;
    font-weight: normal !important;
    white-space: nowrap;
    margin: 0 2em 0 0;
}
.enter_free {
    border: 1px solid #5e5e5e;
    background-color: #e1e1e1;
    font-size: .7em !important;
    font-weight: normal !important;
    white-space: nowrap;
    border-radius: 4px;
    padding: 3px 10px;
    margin: 0 0 0 0;
}

.seminer-list-area {
    padding: 0em;
}
.seminer-list-area .seminer_attention {
    margin-top: 1em;
    display: flex;
    justify-content: end;
    width: auto;
}
.seminer-list-area .seminer_attention p {
    font-size: .96em;
    line-height: 1.8;
}
table.seminer-list {
    margin: 10px auto;
    font-size: .96em;
    width:cal(100% - 30px);
} 
table.seminer-list th {
    padding: 10px;
    box-sizing: border-box;
    text-align: center;
}
table.seminer-list th span {
    display: block;
}
table.seminer-list td {
    padding: 10px;
    box-sizing: border-box;
    line-height: 1.5;
    text-align: center;
}
table.seminer-list td ul {
    margin-bottom: 0 !important;
}
table.seminer-list td p {
    line-height: 1.6;
}
table.seminer-list td span {
    display: inline-block;
    margin-bottom: 0em;
}
table.seminer-list td:nth-child(3) span:first-of-type {
    margin-bottom: .5em;
    font-weight: 600;
}
table.seminer-list td:nth-child(4) span:first-of-type {
    margin-bottom: .5em;
}
table.seminer-list td:nth-child(1),
table.seminer-list td:nth-child(2) {
    font-size: .96em;
    width: 8%;
    padding: 10px 8px !important;
}
table.seminer-list td:nth-child(3) {
    width: 32%;
    padding: 10px 8px !important;
}
table.seminer-list td:nth-child(4) {
    font-size: .92em;
    width: 50%;
    text-align: left !important;
}

:root {
    --orange-main: #f39200;
    --orange-light: #fff5e6;
    --purple-main: #6a1b9a;
    --purple-light: #f3e5f5;
    --text-color: #333;
    --bg-white: #ffffff;
}
.product-container {
    max-width: 1200px;
    margin: 0 auto;
}
.section {
    padding: 10px 20px 20px;
    margin-bottom: 40px;
    border-radius: 12px;
}
.orange-theme {
    border-top: 8px solid var(--orange-main);
    background-color: var(--bg-white);
}
.purple-theme {
    border-top: 8px solid var(--purple-main);
    background-color: var(--bg-white);
}
.section-title {
    font-size: 1.8rem;
    margin-bottom: 30px !important;
    text-align: center;
}
.orange-theme .section-title { color: var(--orange-main); }
.purple-theme .section-title { color: var(--purple-main); }
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 25px;
}
.product-card {
    position: relative;
    padding: 20px;
    border: 1px solid #eee;
    border-radius: 8px;
    transition: transform 0.2s, box-shadow 0.2s;
    background-color: #fff;
    display: flex;
    flex-direction: column;
}
.product-card h4 {
    font-size: 1.1rem;
    margin: 15px 0 10px 0;
}
.product-card p {
    font-size: 0.86rem;
    line-height: 1.6;
    margin-bottom: 10px;
}
.product-card ul {
    font-size: 0.85rem;
    padding-left: 18px;
    margin: 0;
}
.image-placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 4px;
}
.image-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: contain; 
    display: block;
}
.badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 4px 8px;
    font-size: 0.7rem;
    font-weight: bold;
    border-radius: 4px;
    color: #fff;
    z-index: 1;
}

.badge.new { background-color: #ff3d00; }
.badge.imu { background-color: #007bff; right: 60px; }
.badge.type { background-color: #444; }

.demo {background-color: #9fd8f5;}
.imgbox {display: inline-block; width: 15%;}
.imgbox img {width: auto; height: 100%; object-fit: cover; margin: 0 !important;}
.cmtbox {display: flex; justify-content: center; align-items: center; width: 70%; text-align: left; padding: 1em; box-sizing: border-box; }
.cmtbox .inner p {display: block; width: fit-content; margin: 0 auto; font-size: 1.1em; line-height: 1.4;}
.cmtbox .inner p:first-of-type {font-size: 1.5em; text-align: center; margin-bottom: .5em;}
#presentarea {justify-content:center; border-top:1px solid #ccc; padding:3em 0; margin:5em auto 0em;}
#presentarea p.ttl {font-size: 1.2em; font-weight: bold; text-align: center;}
#presentarea img {width:460px; height:auto; margin:10px auto;}

@media  screen and (max-width:979px) {
    .cpds {
        text-align: center;
    }
    .catcharea .picktxt span:first-of-type {
        font-size: 7vw;
        margin-top: .5em;
    }
    .catcharea .picktxt span:nth-of-type(2) {
        font-size: .9em !important;
    }
    .catcharea .picktxt2 {
        font-size: 1em;
    }
    .catcharea .picktxt2 span {
        font-size: 1.3em;
    }
    .catcharea .picktxt3 {
        font-size: 1em;
    }
    .catcharea .picktxt3 span {
        font-size: 1.5em;
    }

    .fair-area {
        width: 100%;
    }
    .fair_qr {
        display: none;
    }

    .seminer-list-area .seminer_attention {
        justify-content: flex-start;
    }
    table.seminer-list td:nth-child(5) {
        text-align: left;
    }
    table.seminer-list td:nth-child(5) br {
        display: none;
    }
    
    .cmtbox .inner p {font-size: .9em;}
    .cmtbox .inner p:first-of-type {font-size: 1.1em;}
}
@media screen and (max-width: 640px) {
    .catcharea .picktxt span br {
        display: inline;
    }
    .catcharea .picktxt span:first-of-type {
        margin-top: .5em;
    }

    .readarea-waku {
        margin-bottom: 1.5em;
    }
    .readarea {
        margin: 0px;
        text-align: center;
    }
    .readarea .picktxt span {
        display: block;
    }
    .readarea .readtxt {
        font-size: 1em;
        padding: 0 0em;
    }
    .readarea .marker-yellow {
        font-size: 1.5rem;
    }
    .readarea p {
        font-size: 1rem;
        text-align: left;
    }

    dl.fair_info {
        max-width: 430px;
    }
    dl.fair_info dd {
        margin-top: 10px;
    }
    dl.fair_info dt,
    dl.fair_info dd {
        width:100%;
    }
    dl.fair_info dd span {
        font-size: 1.8em; line-height: 1.4;
    }
    dl.fair_info dd p {
        line-height: 1.4;
    }
    dl.fair_info dd span.floar {
        font-size: .6em; margin-bottom: 1em;
    }

    .seminer-list-area {
        padding: 0 0 0 0em;
    }
    .seminer-list-area {
        padding: 0 0 0 0em;
    }
    table.seminer-list tr.last td:last-child {
        width: 100%;
    }
    table.seminer-list th span {
        display: inline-block;
    }
    table.seminer-list th span::after {
        content: "・";
    }
    table.seminer-list th:nth-child(1),
    table.seminer-list th:nth-child(2) {
        display: inline-block;
        width: 50%;
    }
    table.seminer-list th:nth-child(3),
    table.seminer-list th:nth-child(4) {
        display: inline-block;
        width: 100%;
    }
    table.seminer-list td:nth-child(1),
    table.seminer-list td:nth-child(2) {
        display: inline-block;
        width: 50%;
    }
    table.seminer-list td:nth-child(3),
    table.seminer-list td:nth-child(4) {
        display: inline-block;
        width: 100%;
        text-align: left;
    }
    table.seminer-list td:nth-child(3) span {
        display: inline-block;
        width: 100%;
        text-align: left;
    }
    table.seminer-list td:nth-child(1) span,
    table.seminer-list td:nth-child(2) span {
        display: inline-block;
        margin: 0 .5em;
    }
    table.seminer-list td span br {
        display: none;
    }

    .section-title {
        font-size: 1.4rem;
    }
    .product-grid {
        grid-template-columns: 1fr 1fr; /* ★2列に変更 */
        gap: 10px; /* カード間の隙間を狭くする */
    }
    .product-card {
        padding: 10px; /* カード内の余白を調整 */
    }
    .product-card p, 
    .product-card ul {
        font-size: 0.75rem; /* 説明文を小さくして収まりを良くする */
        line-height: 1.4;
    }
    .badge {
        font-size: 0.6rem;
        padding: 2px 4px;
        top: 5px;
        right: 5px;
    }
    .badge.imu {
        right: 42px; /* IMUバッジが重ならないよう調整 */
    }
}