:root {
    --bg: #ffffff;
    --text: #111111;
    --sub-text: #6e6e73; /* Apple風の洗練されたグレー */
    --accent: #0071e3;   /* 信頼感のあるブルー */
    --border: #d2d2d7;
    --soft-bg: #f5f5f7;
}

* { box-sizing: border-box; margin: 0; padding: 0; -webkit-font-smoothing: antialiased; }

body {
    background-color: var(--bg);
    color: var(--text);
    font-family:"LINE Seed JP", sans-serif; /* 全てゴシック体で統一 */
    line-height: 1.6;
    font-feature-settings: "palt";
}

.container { max-width: 1200px; margin: 0 auto; padding: 0;margin-bottom:56px;}

/* ナビゲーション */
nav {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border);
    font-size: 0.85rem;
    font-weight: 600;
}

/* ヒーローエリア：圧倒的な白と余白 */
.hero {
    padding:16px 0 64px;
    text-align: center;
}
.hero h1 {
    font-size: 3.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 20px;
}
.hero p {
    max-width: 1000px;
    margin: 0 auto 40px;
    font-size: 1.1rem;
    color: var(--sub-text);
    margin-bottom: 20px;
    line-height: 1.7;
}

.glass-card {
    background: var(--soft-bg);
    border-radius: 18px;
    padding: 40px;
    max-width: 900px;
    margin: 0 auto 80px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
.glass-card2 {
    background: var(--soft-bg);
    border-radius: 18px;
    padding: 16px;
    max-width: 900px;
    margin: 0 auto 32px;
}

.form-row2 {
    display: grid;
    grid-template-columns: 1fr;
    gap:8px;
}

.btn-submit {
    height: 52px;
    background:#ff00ff;
    color: #fff;
    border: none;
    border-radius: 16px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease;
}
.btn-submit:hover { transform: scale(1.02); }

.grid-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    padding-bottom: 100px;
}
.grid-info2 {
    position:fixed;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 1200px;
    height:100vh;
}
.cyn{background:#00aeff;filter:saturate(120%) contrast(110%);}
.mgt{background:#ff00ff;filter:saturate(120%) contrast(110%);}
.ylw{background:#ffd400;filter:saturate(120%) contrast(110%);}
.blk{background:#22283A;filter:saturate(120%) contrast(110%);}
.left{
    overflow-y:auto;
    overflow-x:none;
    box-sizing: border-box;
}
.bold {
    font-weight:bold;
    font-size:1.0em;
}
.bolds {
    font-weight:bold;
    font-size:1.0em;
    text-align:center;
    margin-bottom:20px;
    color:#fff;
}
.ggd0{background:#bbddff;color:#181818;}
.ggd1{background:#ffcccc;color:#181818;}
.ggd2{background:#ffffbb;color:#181818;}
.ggd3{background:#fff;color:#181818;border:1px solid #ccc;}
.ggd4{background:#888;color:#fff;}
.g5{padding:3px;}
.g6{padding-left:15px;}
.du{background:#ccffcc;color:#181818;}
.gn5{font-weight:normal;margin:3px;display:block;border:none;}
.red{color:#ff0000;}
.pw{font-size:0.8em;color:#dd8800;}
.fmn{font-size:0.9em;}
.s{padding:10px 10px;transform: skewY(1deg);}
.ll{text-align:left;}
.bgd0{background:linear-gradient(to bottom,#ddeeff,#fff);}
.bgd1{background:linear-gradient(to bottom,#ffeaea,#fff);}
.bgd2{background:linear-gradient(to bottom,#ffffea,#fff);}
.bgd3{background:linear-gradient(to bottom,#eee,#fff);}
.bgd4{background:linear-gradient(to bottom,#ddd,#fff);}
.bgd0 h2,.bgd1 h2,.bgd2 h2,.bgd3 h2,.bgd4 h2{color:var(--color-text-base);padding-bottom:10px;border-bottom:2px #aaa solid;margin-bottom:24px;}
.sbgd0{background:#f0f7ff;}
.sbgd2{background:#ffd400;color:#fff;}
.sbgd3{background:#22283A;color:#fff;}
.sbgd0 a,.sbgd1 a{
    background:#22283A;
    text-align:center;
    margin-top:10px;
    display:block;
    width:100%;
    padding:12px;
    border:none;
    border-radius:6px;
    color:white;
    font-size:18px;
    cursor:pointer;
    transition:background 0.2s;
    opacity:1;
}
.sbgd0 a:hover,.sbgd1 a:hover{
    opacity:0.8;
}
.modern-form {
    display:grid;
    gap:16px;
    flex-direction:column;
    max-width:100%;
    outline: 1px solid transparent;
    border-radius: 18px;
    padding:32px 40px;
    max-width: 900px;
    margin: 0 auto;
    box-shadow:0 4px 12px rgba(0,0,0,0.5);
    margin-bottom:64px;
}
.modern-form h2{text-align:center;}
.layout {
    padding:0;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100%;
}
.grid-table2, .grid-table3, .grid-table4 {
    display:grid;
    grid-template-rows:auto;
    gap:1px;
    width:100%;
    background:#fff;
}
.grid-table {
  display: grid;
  grid-template-rows: auto;
  width: 100%;
  gap:10px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  align-items: stretch;
}
.grid-table2 {grid-template-columns:20fr 80fr;align-items: center;}
.grid-table3 {grid-template-columns:40fr 60fr;text-align:right;}
.grid-table4 {grid-template-columns:25fr 25fr 25fr 25fr;margin:0;}
.grid-table > div, .grid-table2 > div, .grid-table4 > div{
    box-sizing:border-box;
    padding:0px 0 10px 0;
    text-align:center;
    letter-spacing:0em;
}
.dire{background:#333;padding:10px;color:#fff;border-radius:10px 10px 0 0;margin:0 0 5px 0;}
.d-item{
  display: flex;
  height:100%;
  flex-direction: column;
  justify-content: flex-start;
  align-items:center;
  margin:0;
  margin-top:auto;
  margin-bottom: auto;
  padding:0 10px 10px 10px;
  font-size:0.8em;
}
.kyo{background:#CC0000;color:#fff;padding:5px 10px;border-radius:5px;width:100%;margin-top:5px;}
.kichi{background:#004488;color:#fff;padding:5px 10px;border-radius:5px;width:100%;margin-top:5px;}

.info-card h2 {
    font-size: 1.8rem;
    margin-bottom: 20px;
    font-weight: 600;
}

.info-card p {
    font-size: 1.1rem;
    color: var(--sub-text);
    margin-bottom: 20px;
    line-height: 1.7;
}
/* フォーム直下の注釈 */
.form-disclaimer {
    font-size: 0.75rem;
    color: var(--sub-text);
    text-align: left;
    line-height: 1.5;
}
.form-disclaimer a {
    color: var(--accent);
    text-decoration: none;
}
.form-disclaimer a:hover {
    text-decoration: underline;
}

/* フッター・リンクエリア */
footer {
    max-width: 1200px;
    margin:64px auto 0 auto;
    padding:32px 0;
    border-top: 1px solid var(--border);
}
.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    justify-content: center;
    list-style: none;
    margin-bottom: 30px;
}
.footer-links a {
    font-size: 0.9rem;
    color: var(--text);
    text-decoration: none;
    font-weight: 500;
}
.footer-links a:hover {
    color: var(--accent);
}
.copyright {
    text-align: center;
    font-size: 0.8rem;
    color: var(--sub-text);
}
.date-grid{
    display: flex;
    flex-wrap: wrap;
    width:100%;
    gap: 1px; /* 境界線を1pxの隙間で表現 */
    background: var(--border);
    border: 1px solid var(--border);
    overflow: hidden;
    border-radius:8px;
}

.date-grid > div{
    flex: 1;
    background:#fff;
}
select, input {
    width: 100%;
    height: 60px;
    background: transparent;
    border: none;
    color:#333;
    font-size:1rem;
    font-weight:600;
    text-align: center;
    padding: 0;
    outline: none;
    appearance: none;
    border-radius: 0;
}

@media (max-width: 768px) {
    .hero,.info-card{padding:0 16px;}
    .hero h1 { font-size:1.5rem; }
    .info-card h2 {font-size:1.5rem; }
    .form-row,.form-row2 { grid-template-columns: 1fr; }
    .grid-info,.grid-info2 { grid-template-columns: 1fr; position:static;height:auto;}
    .glass-card {padding:40px 16px;margin-bottom:32px;}
    .hero p {text-align:left;}
    .layout {
        padding:10px 5px;
    }
    .grid-table {
        gap:1px;
    }
    .grid-table > div {
        padding:0;
    }
    .bold {font-size:0.8em;}
    .fmn{font-size:0.7em;}
    .pw{font-size:0.6em;}
    .mb{display:block;}
    .pc{display:none;}
    .custom-select-wrapper select {
        padding:5px 20px 5px 5px;
        font-size:0.8rem;
    }
    .modern-form {
        padding:20px 10px;
        margin-bottom:32px;
    }
    .kyo,.kichi{padding:5px;}
}
1