/* ============================================================
   Kamenná prodejna - frontend styly (extrahováno z kamenna-prodejna.php)
   Načítá se pouze pokud je na stránce shortcode [kamenna_prodejna] nebo [kamenna_prodejna_mapa]
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap");

.kp-store-page {
    --kp-blue: #00AEEF;
    --kp-blue-dark: #0090C7;
    --kp-yellow: #FFC20E;
    --kp-yellow-light: #FFF8E1;
    --kp-dark: #1A1A2E;
    --kp-gray: #6B7280;
    --kp-gray-light: #F3F4F6;
    --kp-white: #FFFFFF;
    --kp-success: #10B981;
    --kp-error: #EF4444;

    font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--kp-dark);
}
.kp-store-page *, .kp-store-page *::before, .kp-store-page *::after {
    box-sizing: border-box;
}

/* Oznámení */
.kp-notice {
    background: var(--kp-yellow-light);
    border: 2px solid var(--kp-yellow);
    padding: 14px 20px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 15px;
}
.kp-notice-icon { font-size: 20px; }

/* Dva sloupce */
.kp-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-bottom: 0;
}
.kp-col-left {
    padding: 40px;
    background: #f5f5f5;
}
.kp-col-right {
    padding: 40px;
    background: var(--kp-white);
}

/* Nadpisy */
.kp-heading {
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 32px;
    color: var(--kp-dark);
    line-height: 1.2;
}

/* Info grid (email + telefon vedle sebe) */
.kp-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 28px;
}
.kp-info-grid-bottom {
    margin-bottom: 0;
    padding-top: 0;
}

.kp-info-item {}

.kp-info-label {
    display: block;
    font-size: 14px;
    color: #9CA3AF;
    margin-bottom: 6px;
    font-weight: 400;
}
.kp-info-value {
    display: block;
    font-size: 17px;
    color: var(--kp-dark);
    line-height: 1.5;
    font-weight: 600;
}
.kp-link {
    color: var(--kp-blue) !important;
    text-decoration: none !important;
    font-weight: 600;
}
.kp-link:hover {
    text-decoration: underline !important;
}
.kp-org-name {
    font-size: 20px;
    font-weight: 700;
}

/* Kontaktní adresa blok */
.kp-info-block {
    margin-bottom: 28px;
}
.kp-info-detail {
    display: block;
    font-size: 14px;
    color: var(--kp-gray);
    margin-top: 4px;
    line-height: 1.5;
}

/* Formulář */
.kp-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    margin-bottom: 28px;
}
.kp-field {
    margin-bottom: 0;
}
.kp-field + .kp-field:not(.kp-form-row .kp-field) {
    margin-top: 28px;
}
.kp-field label {
    display: block;
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--kp-dark);
}
.kp-req { color: var(--kp-error); }

.kp-field input,
.kp-field textarea {
    width: 100%;
    padding: 8px 0 12px;
    border: none;
    border-bottom: 1px solid #D1D5DB;
    font-size: 15px;
    font-family: inherit;
    background: transparent;
    color: var(--kp-dark);
    transition: border-color 0.2s;
    outline: none;
}
.kp-field input:focus,
.kp-field textarea:focus {
    border-bottom-color: var(--kp-blue);
}
.kp-field input::placeholder,
.kp-field textarea::placeholder {
    color: #9CA3AF;
}
.kp-field textarea {
    resize: vertical;
    min-height: 60px;
}

.kp-form-footer {
    margin-top: 36px;
}

.kp-submit-btn {
    background: #FFFF00;
    color: var(--kp-dark);
    border: none;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
}
.kp-submit-btn:hover {
    background: #E6E600;
    transform: translateY(-1px);
}
.kp-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.kp-form-result {
    margin-top: 16px;
    padding: 14px 20px;
    font-weight: 600;
    font-size: 14px;
}
.kp-result-success {
    background: #ECFDF5;
    color: #065F46;
    border: 1px solid #A7F3D0;
}
.kp-result-error {
    background: #FEF2F2;
    color: #991B1B;
    border: 1px solid #FECACA;
}

/* Mapa */
.kp-map-wrapper {
    width: 100%;
    overflow: hidden;
}
.kp-map {
    width: 100%;
    height: 450px;
}
.kp-map .leaflet-tile-pane {
    filter: saturate(0.3) sepia(0.15) hue-rotate(180deg) brightness(1.02);
}

/* Custom marker */
.kp-marker-icon { background: none !important; border: none !important; }
.kp-marker-pin {
    width: 36px;
    height: 36px;
    background: var(--kp-blue);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    position: relative;
    box-shadow: 0 3px 10px rgba(0, 174, 239, 0.4);
}
.kp-marker-pin::after {
    content: "";
    width: 16px;
    height: 16px;
    background: var(--kp-white);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Responsive */
@media (max-width: 768px) {
    .kp-columns {
        grid-template-columns: 1fr;
    }
    .kp-col-left,
    .kp-col-right {
        padding: 28px 20px;
    }
    .kp-info-grid, .kp-form-row {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .kp-map { height: 300px; }
    .kp-heading { font-size: 22px; }
}
