body {
    margin:0;
}

.banner{
    position: relative;
}

.banner marquee{
    position: absolute;

    bottom: 0%;
    left: 0%;

    width: 100%;
    height: auto;
    z-index: 4;
}

#banner-bg {
    width: 100%;
    height: 300px;
    display: block;
    object-fit: cover;
    filter: grayscale(100%) brightness(70%);
}

.banner-logo {
    position: absolute;
    
    top: clamp(12px, 3vw, 24px);
    left: clamp(16px, 4vw, 40px);

    width: clamp(120px, 12vw, 240px);
    height: auto;

    z-index: 2;
}

.banner-text {
    position: absolute;

    bottom: 10%;
    left: clamp(16px, 4vw, 40px);

    color: white;
    text-align: left;

    text-shadow: 2px 2px 8px rgba(0,0,0,0.8);
    font-size: clamp(12px, 4vw, 16px);

    width: 90%;
    max-width: 800px;
    
    z-index: 3;
}  

.banner-text h1{
    font-size: clamp(16px, 8vw, 40px);
    margin-top: 0px;
    margin-bottom: 20px;
    word-break: keep-all;
}

.banner-text p{
    font-size: clamp(12px, 4vw, 20px);
    line-height: 1.5;
    margin: 0;
    word-break: keep-all;
}

.content {
    display: flex;
    gap: 30px;

    width: min(1200px, 90%);
    margin: 100px auto;

    align-items: flex-start;
}

.map{
    margin: 0 auto;
    position: relative;
    width: min(80%, 600px);
    flex: none;
}

#map-img{
    width: 100%;
    display: block;
}

.info-panel {
    flex: 1;

    min-width: 250px;
    min-height: 420px;

    padding: 20px;
    border: 1px solid #ddd;

    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    box-sizing: border-box;
}

#add-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    
    z-index: 5;
    
    padding: 8px 14px;
    border: none;
    border-radius: 6px;

    background-color: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);

    cursor: pointer;
    font-weight: bold;
}

@media (max-width: 768px) {
    .content {
        flex-direction: column;
    }

    .map{
	width: min(80%, 600px);
	margin: 0 auto;
	flex: none;
    }

    .info-panel {
        width: 100%;
        box-sizing: border-box;
    }
    #add-form-box {

        width: 94%;

        box-sizing: border-box;

    }

    #banner-bg {

        height: 220px;

    }

    .banner-text {

        bottom: 12%;

        left: 20px;

        width: calc(100% - 40px);

    }

    .banner-text p {

        font-size: clamp(16px, 5vw, 24px);

    }

    .banner marquee {

        font-size: 16px;

    }

    .pin {

        width: 18px;

        height: 18px;

    }
}

.footer{
    width: 100%;
    background-color: #333;
    color: white;
    margin: 30px auto 0;
}

.footer-text{
    max-width: 900px;
    margin: 0 auto;
    padding: 10px 20px;
}

.pin {
    position: absolute;
    width: clamp(16px, 4vw, 24px);
    height: clamp(16px, 4vw, 24px);

    background: white;
    border-radius: 20%;
    transform: translate(-50%, -50%);
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
    cursor: pointer;

    background-image: url("./image/bin_icon.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

#add-form-box {
    display: none;

    width: min(600px, 90%);
    margin: 30px auto;
    padding: 20px;

    border: 1px solid #ddd;
    background-color: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

#add-form-box label {
    display: block;
    margin-top: 12px;
    font-weight: bold;
}

#add-form-box input,
#add-form-box textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 8px;
    margin-top: 6px;
}

#add-form-box button {
    margin-top: 16px;
    padding: 8px 14px;
    cursor: pointer;
}

#info-image {
    width: 100%;
    max-width: 300px;
    max-height: 320px;

    margin-top: 15px;
    border-radius: 8px;
    display: none;
    object-fit: cover;
}
