@charset "UTF-8";
/* CSS Document */
/* あの日の日の出・あの日の日の入り */
/* みんなの知識 ちょっと便利帳 */
/* 2026/07/27 */

/* ============================================================
   あの日の日の出・あの日の日の入り - scoped styles (prefix: .hi-)
   カラーテーマ：Sunrise Gold & Dusk Indigo
============================================================ */
.hi-wrap{
    --hi-bg: #FFF6E9;
    --hi-border: #9A4B00;
    --hi-text: #3E2A14;
    --hi-heading: #7A3B00;
    --hi-sub: #8C6239;
    --hi-accent: #FF7A00;
    --hi-accent-dark: #C1440E;
    --hi-gold: #FFB703;
    --hi-dusk: #5B4B8A;
    --hi-dusk-dark: #3E3163;
    --hi-card-bg: #FFFFFF;
    --hi-gap: 18px;

    font-family: system-ui,-apple-system,"Segoe UI",sans-serif;
    background: var(--hi-bg);
    margin: 10px auto;
    padding: 0 10px 15px 0;
    border: 2px solid var(--hi-border);
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(122, 59, 0, 0.15);
    color: var(--hi-text);
    line-height: 2.0;
    font-size: 21px;
    text-align: left;
    overflow-wrap: break-word;
}
.hi-wrap *{ box-sizing:border-box; }

.hi-container{
    max-width:800px;
    margin:auto;
    padding: 22px 0 32px;
}

.hi-header{
    text-align:left;
    padding: 6px var(--hi-gap) 4px;
}
.hi-header h2{
    font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
    font-size: clamp(23px, 4.5vw, 30px);
    margin: 0 0 10px;
    letter-spacing: .04em;
    color: var(--hi-heading);
    text-align: center;
}
.hi-header p{
    margin:0;
    font-size:15px;
    color: #7A3B00;
    font-weight: 500;
    line-height: 150%;
}
.hi-range-note{
    margin:8px 0 0 15px !important;
    font-size:13px !important;
    color: var(--hi-accent-dark) !important;
	padding-left: 1em;
	text-indent: -1em;	
}

.hi-map-block{
    margin: 22px var(--hi-gap) 0;
    padding: 20px 22px;
    background: var(--hi-card-bg);
    border: 1px solid #F0D2A8;
    border-radius: 8px;
}
.hi-map-block h3{
    font-size:17px;
    color: var(--hi-heading);
    margin: 0 0 8px;
}
.hi-map-desc{
    font-size: 15px;
    color: var(--hi-sub);
    margin: 0 0 14px;
    line-height: 1.4;
}
.hi-map{
    width: 100%;
    height: 380px;
    border-radius: 8px;
    border: 1px solid #F0D2A8;
    background: #F6E4C8;
}
.hi-loc-fields{
    display:flex;
    flex-wrap:wrap;
    gap: 14px var(--hi-gap);
    margin-top: 16px;
}
.hi-loc-fields .hi-field{ flex: 1 1 130px; }
.hi-loc-current{
    margin-top: 12px;
    font-size: 14.5px;
    color: var(--hi-accent-dark);
    font-weight: 700;
}
.hi-loc-note{
    font-size: 13.5px;
    color: var(--hi-sub);
    line-height: 1.6;
    padding-left: 1em;
	margin-left: 10px;
    text-indent: -1em;	
}

.hi-form{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    gap: 16px var(--hi-gap);
    margin: 22px var(--hi-gap) 0;
    padding: 20px;
    background: var(--hi-card-bg);
    border: 1px solid #F0D2A8;
    border-radius: 8px;
}
.hi-field{
    display:flex;
    flex-direction:column;
    gap:7px;
    flex: 1 1 200px;
    text-align:left;
}
.hi-field-date{ flex: 1 1 320px; }
.hi-date-nav{
    display:flex;
    align-items:center;
    gap:8px;
}
.hi-date-nav .hi-input{
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
}
.hi-nav-btn{
    flex: 0 0 auto;
    padding: 12px 14px;
    font-size: 15px;
    white-space: nowrap;
}
.hi-field label{
    font-size:16px;
    color: var(--hi-sub);
    font-weight:600;
}
.hi-input{
    font-size:20px;
    padding:12px 14px;
    border:1px solid #E8C08A;
    border-radius:6px;
    background:#FFFBF3;
    color: var(--hi-text);
    line-height:1.4;
    width:100%;
}
.hi-input:focus{
    outline:none;
    border-color: var(--hi-accent);
    box-shadow: 0 0 0 3px rgba(255,122,0,0.18);
}

.hi-btns{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    flex: 0 1 auto;
    justify-content: center;
    margin: 0 auto;
}
.hi-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size:18px;
    font-weight:600;
    padding:13px 22px;
    border-radius:6px;
    cursor:pointer;
    border:1px solid transparent;
    transition: transform .08s ease, opacity .15s ease, background-color .15s ease;
}
.hi-btn:active{ transform: scale(0.97); }
.hi-btn-primary{
    background: var(--hi-accent);
    color:#fff;
}
.hi-btn-primary:hover{ background: var(--hi-accent-dark); }
.hi-btn-ghost{
    background:#fff;
    color: var(--hi-border);
    border-color:#E8C08A;
}
.hi-btn-ghost:hover{ border-color: var(--hi-border); }

.hi-result{
    margin: 22px var(--hi-gap) 0;
    padding: 24px;
    background: var(--hi-card-bg);
    border: 1px solid #F0D2A8;
    border-radius: 8px;
}
.hi-summary{ text-align:left; }
.hi-summary-date{
    font-size:22px;
    color: var(--hi-sub);
    font-weight: bold;
    letter-spacing:.04em;
    margin-bottom:2px;
    text-align: center;
}
.hi-summary-loc{
    font-size:14.5px;
    color: var(--hi-accent-dark);
    text-align:center;
    margin-bottom: 6px;
}

.hi-sun-block{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin: 18px 0 4px;
}
.hi-sun-card{
    flex: 1 1 220px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    padding: 18px 14px;
    border-radius: 10px;
    text-align:center;
}
.hi-sun-card.sunrise{
    background: linear-gradient(180deg, #FFF1D6 0%, #FFE1AE 100%);
    border: 1px solid #F3C877;
}
.hi-sun-card.sunset{
    background: linear-gradient(180deg, #EAE4F7 0%, #D8CDEF 100%);
    border: 1px solid #C6B7E6;
}
.hi-sun-label{
    font-size:15px;
    font-weight:700;
    letter-spacing:.1em;
}
.hi-sun-card.sunrise .hi-sun-label{ color: var(--hi-accent-dark); }
.hi-sun-card.sunset .hi-sun-label{ color: var(--hi-dusk-dark); }
.hi-sun-time{
    font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
    font-weight:700;
    font-size: clamp(34px, 8vw, 48px);
    line-height:1.15;
}
.hi-sun-card.sunrise .hi-sun-time{ color: var(--hi-heading); }
.hi-sun-card.sunset .hi-sun-time{ color: var(--hi-dusk-dark); }
.hi-sun-sub{
    font-size: 14px;
    color: var(--hi-sub);
}

.hi-grid-details{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.hi-grid-card{
    background: #FFF3DE;
    border: 1px solid #F0D2A8;
    padding: 14px 12px;
    border-radius: 6px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    min-height: 88px;
}
.hi-card-label{
    font-size: 14.5px;
    color: var(--hi-sub);
    line-height:1.4;
}
.hi-card-val{
    font-size: 21px;
    font-weight: bold;
    color: var(--hi-accent-dark);
}
.hi-card-val.small{ font-size:16px; }

.hi-twilight-times{
    margin-top: 24px;
    padding: 20px;
    background: #FFF3DE;
    border-radius: 8px;
}
.hi-twilight-times h4{
    margin: 0 0 14px;
    font-size: 18px;
    color: var(--hi-heading);
}
.hi-time-list{
    display:flex;
    flex-direction:column;
    gap: 8px;
}
.hi-time-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#FFFFFF;
    padding: 10px 18px;
    border-radius: 8px;
    border: 1px solid #F0D2A8;
    font-size: 17px;
}
.hi-time-row .hi-time-name{ font-weight:700; color: var(--hi-text); }
.hi-time-row .hi-time-vals{ font-weight:700; }
.hi-time-row.astro .hi-time-name{ color:#3E3163; }
.hi-time-row.nautical .hi-time-name{ color:#4B4A8A; }
.hi-time-row.civil .hi-time-name{ color:#7A5EA8; }
.hi-time-caveat{
    margin: 14px 0 0;
    font-size: 14.5px;
    color: var(--hi-sub);
    line-height: 1.7;
    padding-left: 1em;
    text-indent: -1em;
}

.hi-compare{
    margin: 18px 0 0;
    text-align:left;
    font-size:18px;
    padding: 16px 18px;
    background:#FFF0DA;
    border-radius:8px;
    color: var(--hi-accent-dark);
    line-height:1.85;
}
.hi-compare b{ font-size:1.08em; }

.hi-legend{
    margin: 18px var(--hi-gap) 0;
    padding: 16px 20px;
    background: var(--hi-card-bg);
    border: 1px solid #F0D2A8;
    border-radius: 8px;
}
.hi-legend summary{
    cursor:pointer;
    font-weight:700;
    color: var(--hi-heading);
    font-size:17px;
    list-style: none;
}
.hi-legend summary::-webkit-details-marker{ display:none; }
.hi-legend summary::before{ content:"▸ "; color: var(--hi-accent); }
.hi-legend[open] summary::before{ content:"▾ "; }
.hi-legend-list{
    margin: 14px 0 0;
    padding: 0;
}
.hi-legend-list dt{
    font-weight:700;
    color: var(--hi-accent-dark);
    margin-top: 10px;
    font-size: 17px;
}
.hi-legend-list dt:first-child{ margin-top:0; }
.hi-legend-list dd{
    margin: 4px 0 0;
    font-size: 16px;
    color: var(--hi-text);
    line-height: 1.8;
}

.hi-quick-block{
    margin: 18px var(--hi-gap) 0;
    padding: 20px 22px;
    background: var(--hi-card-bg);
    border: 1px solid #F0D2A8;
    border-radius: 8px;
}
.hi-quick-block h3{
    font-size:17px;
    color: var(--hi-heading);
    margin: 0 0 4px;
    text-align:left;
}
.hi-quick-note{
    font-size: 13.5px;
    color: var(--hi-sub);
    margin: 0 0 14px;
}
.hi-quick-list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
    gap:10px;
}
.hi-quick-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 16px;
    border-radius:6px;
    background:#FFF3DE;
    font-size:15.5px;
    border:none;
    cursor:pointer;
    font-family:inherit;
    color:inherit;
    width:100%;
    text-align:left;
    transition: background-color .15s ease, transform .08s ease;
}
.hi-quick-item:hover{ background:#FBE4BC; }
.hi-quick-item:active{ transform: scale(0.98); }
.hi-quick-item.is-selected{
    background: var(--hi-accent);
    color:#FFFFFF;
    font-weight:700;
}
.hi-quick-item .hi-quick-title{ color:inherit; }
.hi-quick-item .hi-quick-times{ font-weight:700; font-size:14px; white-space:nowrap; }

.hi-note{
    text-align:left;
    margin: 22px var(--hi-gap) 0;
    padding: 14px 16px;
    background: #FFF0DA;
    border-left: 4px solid var(--hi-gold);
    border-radius: 4px;
}
.hi-note p{
    text-align:left;
    margin: 0;
    font-size: 14px;
    line-height: 150%;
    color: #7A3B00;
    padding-left: 1em;
    text-indent: -1em;
}
.hi-note p + p{ margin-top: 10px; }

@media (max-width: 420px){
    .hi-form{ padding: 16px; }
    .hi-nav-btn{ padding: 12px 10px; font-size: 14px; }
    .hi-date-nav .hi-input{ font-size: 16px; padding: 12px 6px; }
    .hi-time-row{ font-size: 15px; padding: 10px 12px; }
}

@media (max-width: 480px){
    .leaflet-control-minimap{ display:none; }
}
