/*body {
    background-image: url(../assets/img/ynavi背景.png);
}*/

@charset "UTF-8";

/* =======================================
   基本設定
======================================= */
body {
    margin: 0;
    padding: 0;
    font-family: "Yu Mincho", "游明朝", "MS Mincho", serif;
    background-image: url(../assets/img/ynavi背景.png);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: #ffffff;
    /* 中央配置*/
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
}

/* 画面全体の幅調整 */
.navi-wrapper {
    width: 100%;
    max-width: 420px;
    padding: 20px;
    box-sizing: border-box;
}

/* 金枠コンテナ*/
.navi-container {
    border: 1px solid #bda85e; 
    padding: 50px 30px;
    background-color: rgba(0, 0, 0, 0.4); 
    box-sizing: border-box;
}

/* 見出し・テキスト*/
.navi-header {
    margin-bottom: 40px;
}

.navi-header h1 {
    font-size: 2rem;
    margin: 0 0 15px 0;
    font-weight: normal;
    letter-spacing: 2px;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}

.navi-header .subtitle {
    font-size: 1.1rem;
    line-height: 1.8;
    margin: 0;
    letter-spacing: 1px;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.8);
}

/*フォームの区切り線（STEP1/STEP2）*/
.navi-form {
    display: flex;
    flex-direction: column;
}

.section-divider {
    display: flex;
    align-items: center;
    color: #bda85e; 
    font-size: 0.7rem;
    font-weight: bold;
    letter-spacing: 2px;
    margin: 25px 0 10px 0;
}

/* 左側の短い線 */
.section-divider::before {
    content: "";
    width: 30px;
    border-top: 1px solid #bda85e;
    margin-right: 10px;
}

/* 右側の長い線 */
.section-divider::after {
    content: "";
    flex-grow: 1; 
    border-top: 1px solid #bda85e;
    margin-left: 10px;
}

/* 入力項目（出発・到着など）*/
.form-group {
    display: flex;
    height: 45px;
    margin-bottom: 5px;
}

/* 左側のえんじ色ラベル */
.form-group label {
    background-color: #922b20; 
    color: #ffffff;
    width: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.1rem;
    letter-spacing: 4px;
    flex-shrink: 0;
}

/* 右側のプルダウン部分 */
.select-wrapper {
    flex-grow: 1;
    position: relative;
}

/* プルダウン本体 */
.select-wrapper select {
    width: 100%;
    height: 100%;
    background-color: #f8f8f8;
    border: none;
    padding: 0 30px 0 15px;
    font-family: inherit;
    font-size: 1rem;
    color: #333;
    /* デフォルトの矢印を消す */
    appearance: none; 
    -webkit-appearance: none;
    cursor: pointer;
    box-sizing: border-box;
}

.select-wrapper select:focus {
    outline: 2px solid #bda85e;
}

/* 金色のくの字 */
.select-wrapper::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-60%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid #bda85e;
    border-bottom: 2px solid #bda85e;
    pointer-events: none; /* クリックを邪魔しないよう*/
}

/* ボタン類*/

/* ＋経由 ボタン */
.via-wrapper {
    margin-bottom: 15px;
    padding-left: 15px; 
}

.btn-via {
    background-color: #5c2018; 
    color: #ffffff;
    border: none;
    padding: 4px 12px;
    font-size: 0.8rem;
    font-family: inherit;
    cursor: pointer;
    letter-spacing: 1px;
}

/* 検索 ボタン */
.submit-wrapper {
    margin-top: 35px;
    display: flex;
    justify-content: center;
}

.btn-submit {
    background-color: #922b20; 
    color: #ffffff;
    border: none;
    border-radius: 30px; 
    padding: 12px 40px;
    font-size: 1.5rem;
    font-family: inherit;
    letter-spacing: 6px;
    text-indent: 6px; /* letter-spacingのズレを補正 */
    cursor: pointer;
    width: 85%;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);
    transition: 0.3s;
}

.btn-submit:hover {
    background-color: #a63326;
    transform: translateY(-2px);
}





/* =======================================
   検索結果画面用 追加スタイル
======================================= */
/* 見出しの余白調整 */
.navi-header.result-header {
    margin-bottom: 20px;
}

/* 結果（赤い帯） */
.result-title-box {
    background-color: #922b20; /* えんじ色 */
    text-align: center;
    padding: 10px 0;
    margin-bottom: 15px;
}

.result-title-box h2 {
    margin: 0;
    color: #ffffff;
    font-size: 1.6rem;
    letter-spacing: 8px;
    font-weight: normal;
    text-indent: 8px; /* letter-spacingのズレ補正 */
}

/* 検索条件テキスト（〇月〇日...） */
.result-conditions {
    margin-bottom: 25px;
    font-size: 0.95rem;
    letter-spacing: 1px;
}

/* 読み取り専用の入力ボックス風装飾 */
.route-display {
    margin-bottom: 40px;
}

.form-group.read-only .input-display {
    flex-grow: 1;
    background-color: #f8f8f8;
    height: 100%;
    border: 1px solid rgba(189, 168, 94, 0.5); 
    box-sizing: border-box;
}

/* 快適になる時間（メッセージ部分） */
.result-message {
    margin-bottom: 50px;
}

.result-message p {
    margin: 0 0 5px 0;
    font-size: 1.4rem;
    line-height: 1.6;
    letter-spacing: 2px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.highlight-time {
    display: flex;
    align-items: baseline; 
    margin-top: 10px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.circle-placeholder {
    font-size: 3rem; 
    font-weight: normal;
    line-height: 1;
    margin-right: 15px;
    letter-spacing: 0;
}

.small-text {
    font-size: 1.2rem;
    letter-spacing: 2px;
}

/* 再検索ボタン */
.btn-research {
    background-color: #922b20;
    color: #ffffff;
    border: 1px solid #bda85e; 
    border-radius: 30px; 
    padding: 12px 20px;
    font-size: 1.1rem;
    font-family: inherit;
    letter-spacing: 2px;
    cursor: pointer;
    width: 90%;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);
    transition: 0.3s;
}

.btn-research:hover {
    background-color: #a63326;
    transform: translateY(-2px);
}



/* =======================================
   「乗れるバス、何本後？」画面用 追加スタイル
======================================= */
/* タイトルの文字サイズと行間調整 */
.bus-wait-header h1 {
    font-size: 2.2rem;
    line-height: 1.4;
    margin-bottom: 30px;
}

/* フォーム項目の間隔を広めにとる */
.bus-wait-form .form-group {
    margin-bottom: 25px;
}

/* 検索ボタンの上の余白を広めにとる */
.bus-wait-form .submit-wrapper {
    margin-top: 40px;
}

/* 「乗車人数」など2行になるラベルの調整 */
.form-group label.label-multiline {
    flex-direction: column;
    font-size: 0.9rem; 
    letter-spacing: 2px;
    line-height: 1.2;
}


/* =======================================
   「乗れるバス、何本後？」検索結果画面用 追加スタイル
======================================= */
/* メインメッセージ */
.bus-result-message {
    margin-top: 25px;
    margin-bottom: 20px;
}

.bus-result-message p {
    margin: 0;
    font-size: 1.8rem;
    line-height: 1.5;
    letter-spacing: 2px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

/* 〇本後です の部分 */
.highlight-buses {
    display: flex;
    align-items: baseline;
    margin-top: 5px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.highlight-buses .circle-placeholder {
    font-size: 3.5rem; /* 〇を大きく強調 */
    line-height: 1;
    font-weight: normal;
}

.highlight-buses .text-suffix {
    font-size: 1.8rem;
    letter-spacing: 2px;
}

/* 所要時間 */
.estimated-time {
    font-size: 0.85rem;
    letter-spacing: 1px;
    margin-bottom: 25px;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8);
}

/* あなたのルート（区切り線の微調整） */
.route-divider {
    margin-bottom: 20px;
    font-size: 0.65rem;
}

.route-divider::before,
.route-divider::after {
    opacity: 0.7; /* 線を少し控えめにして文字を目立たせる */
}

/* 読み取り専用ボックスの中のテキスト配置 */
.form-group.read-only .input-display {
    display: flex;
    align-items: center;
    padding-left: 15px;
    color: #333;
    font-size: 1rem;
    letter-spacing: 1px;
}

/* 項目間の余白をフォーム画面に合わせる */
.bus-route-display .form-group {
    margin-bottom: 20px;
}

/* =======================================
   戻るボタン（左下）
======================================= */
/* ボタンをコンテナの左下に配置するためのラッパー */
.back-btn-wrapper {
    margin-top: 15px; /* 上の金枠コンテナとの隙間 */
    display: flex;
    justify-content: flex-start; /* 左寄せ */
}

/* ボタン本体の装飾 */
.btn-back {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 55px;
    height: 55px;
    background-color: #922b20; /* えんじ色 */
    border: 2px solid #bda85e; /* 金色の枠線 */
    border-radius: 12px; /* 少し丸みを帯びた四角 */
    text-decoration: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);
    transition: 0.3s;
    box-sizing: border-box;
}

/* ホバー時の動き */
.btn-back:hover {
    background-color: #a63326;
    transform: translateY(-2px);
}

/* 金色の「く」の字アイコン（CSSだけで描画） */
.btn-back .chevron-left {
    width: 14px;
    height: 14px;
    border-top: 3px solid #bda85e;
    border-left: 3px solid #bda85e;
    transform: rotate(-45deg); /* 四角の枠を傾けて「く」にする */
    margin-left: 6px; /* 視覚的にど真ん中に来るように微調整 */
}

/* 乗車人数の入力ボックスを他のプルダウンと同じサイズにする */
.select-wrapper input[type="number"] {
    width: 100%;
    height: 100%;
    background-color: #f8f8f8;
    border: none;
    padding: 0 15px; /* 右側の余白は「くの字」がない分、少し調整 */
    font-family: inherit;
    font-size: 1rem;
    color: #333;
    box-sizing: border-box;
    outline: none;
}

/* フォーカス時の枠線（他のプルダウンと合わせる） */
.select-wrapper input[type="number"]:focus {
    outline: 2px solid #bda85e;
}

/* 乗車人数の時だけ「金のくの字」を消すための専用クラス */
.select-wrapper.no-arrow::after {
    display: none;
}

/* (任意) 数字入力の横に出てくるスピンボタン（上下矢印）を消したい場合 */
.select-wrapper input[type="number"]::-webkit-inner-spin-button,
.select-wrapper input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.route-output-area {
    margin: 30px 0;
    padding: 15px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(189, 168, 94, 0.5);
    border-radius: 8px;
}
.route-node {
    display: flex;
    align-items: center;
    margin: 8px 0;
}
.node-type {
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: bold;
    margin-right: 15px;
    color: #ffffff;
    width: 60px;
    text-align: center;
    flex-shrink: 0;
}
/* 交通手段ごとの色分け */
.type-bus { background-color: #2E7D32; } /* 緑 */
.type-subway { background-color: #1565C0; } /* 青 */
.type-tourist { background-color: #C62828; } /* 赤 */
            
.node-name {
    font-size: 1.1rem;
    letter-spacing: 1px;
}
.route-arrow {
    margin-left: 35px;
    color: #bda85e;
    font-size: 1.2rem;
    line-height: 1;
    margin-bottom: 5px;
}
.route-stay {
    margin-left: 35px;
    font-size: 0.9rem;
    color: #cccccc;
    margin-bottom: 5px;
}
.diff-notice {
    font-size: 0.85rem;
    color: #f8db70;
    margin-left: 35px;
    margin-bottom: 15px;
    border-left: 2px solid #bda85e;
    padding-left: 10px;
}
.error-message {
    color: #ffcccc;
    text-align: center;
    margin: 20px 0;
}
            /* 計算式を表示するエリアのデザイン */
.score-details-box {
    margin-top: 15px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px dashed rgba(255, 255, 255, 0.3);
    border-radius: 5px;
    text-align: center;
}