@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root {
    --ck-primary: #10b981;
    --ck-primary-hover: #059669;
    --ck-danger: #ef4444;
    --ck-danger-hover: #dc2626;
    --ck-brand: #ff7e5f;
    --ck-text: #111827;
    --ck-text-light: #4b5563;
    --ck-bg: #ffffff;
    --ck-bg-alt: #f9fafb;
    --ck-border: #e5e7eb;
    --ck-shadow-hard: 0 25px 50px -12px rgba(0, 0, 0, 0.3);
    --ck-radius: 16px;
    --font-main: 'Montserrat', sans-serif;
}

.text-justify { text-align: justify; hyphens: auto; }
.icon-space { display: inline-block; width: 24px; text-align: center; margin-right: 6px; }

.macaron-trigger {
    position: fixed; bottom: 1rem; left: 1rem; z-index: 99;
    width: 80px; height: 80px; border-radius: 50%;
    background-color: #ff6600; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
    cursor: pointer; display: flex; justify-content: center; align-items: center;
    opacity: 0; visibility: hidden; transform: translateY(20px);
    transition: all 0.3s ease;
}
.macaron-trigger.show { opacity: 1; visibility: visible; transform: translateY(0); }
.macaron-trigger svg { width: 55%; height: 55%; object-fit: contain; transition: width 0.3s ease, height 0.3s ease; }

.cookie-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(17, 24, 39, 0.75); backdrop-filter: blur(5px);
    z-index: 999999; display: flex; justify-content: center; align-items: center;
    opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;
    padding: 15px; box-sizing: border-box;
}
.cookie-overlay.show { opacity: 1; visibility: visible; }
.cookie-overlay.hidden { display: none !important; }

.cookie-modal-container {
    background: var(--ck-bg); width: 100%; max-width: 800px;
    border-radius: var(--ck-radius); box-shadow: var(--ck-shadow-hard);
    font-family: var(--font-main); display: flex; flex-direction: column;
    max-height: 90vh; transform: scale(0.95) translateY(15px);
    transition: transform 0.3s ease; overflow: hidden; position: relative;
}
.cookie-modal-container.mini-modal { max-width: 500px; }
.cookie-overlay.show .cookie-modal-container { transform: scale(1) translateY(0); }

.cookie-header { background: var(--ck-bg-alt); border-bottom: 1px solid var(--ck-border); padding: 25px 30px 0 30px; display: flex; flex-direction: column; gap: 15px; flex-shrink: 0;}
.cookie-header-top { display: flex; justify-content: space-between; align-items: center; }
.cookie-brand-title { font-family: var(--font-main); font-size: 1.6rem; font-weight: 800; color: var(--ck-text); margin: 0; line-height: 1.2;}
.cookie-logo { width: 50px; height: 50px; object-fit: contain; }

.cookie-tabs { display: flex; gap: 30px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid transparent; }
.cookie-tabs::-webkit-scrollbar { display: none; }
.cookie-tab {
    background: none; border: none; font-family: var(--font-main); font-size: 1.05rem; font-weight: 700; color: #9ca3af;
    padding: 0 0 10px 0; cursor: pointer; position: relative; transition: color 0.3s; white-space: nowrap; outline: none;
}
.cookie-tab.active { color: var(--ck-brand); }
.cookie-tab::after {
    content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px;
    background: var(--ck-brand); border-radius: 3px 3px 0 0;
    transform: scaleX(0); transition: transform 0.3s ease; transform-origin: left;
}
.cookie-tab.active::after { transform: scaleX(1); }

.mini-header { 
    display: flex; align-items: center; padding: 20px 25px; border-bottom: 1px solid var(--ck-border); 
    background: var(--ck-bg-alt); flex-shrink: 0; position: relative;
}
.mini-header .cookie-brand-title { padding-right: 45px; font-size: 1.5rem; font-weight: 800; margin: 0;}

.close-btn { 
    position: absolute; right: 0px; top: 0px; bottom: 0px; width: 50px; 
    background: none; border: none; font-size: 2.2rem; color: #9ca3af; 
    display: flex; align-items: center; justify-content: center; 
    border-top-right-radius: var(--ck-radius); outline: none; margin: 0; padding: 0;
}
.close-btn:hover { color: #fff; background: var(--ck-danger); }

.cookie-body, .mini-body { padding: 30px; overflow-y: auto; color: var(--ck-text-light); font-size: 1rem; line-height: 1.6; flex-grow: 1; }
.cookie-body::-webkit-scrollbar, .mini-body::-webkit-scrollbar { width: 6px; }
.cookie-body::-webkit-scrollbar-thumb, .mini-body::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }

.cookie-tab-content { display: none; animation: fadeInTab 0.3s ease; }
.cookie-tab-content.active { display: block; }
@keyframes fadeInTab { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

.cookie-tab-content h3 { font-family: var(--font-main); font-size: 1.4rem; font-weight: 800; color: var(--ck-text); margin: 0 0 15px 0; }
.cookie-desc { margin-bottom: 24px; color: var(--ck-text-light); font-weight: 500;}

.cookie-toggles-container { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--ck-border); padding-top: 20px; }
.cookie-toggle-row { 
    display: flex; justify-content: space-between; align-items: center; 
    padding: 15px; background: var(--ck-bg-alt); border: 1px solid var(--ck-border);
    border-radius: 12px; cursor: pointer; transition: all 0.2s;
}
.toggle-info { display: flex; flex-direction: column; gap: 4px; padding-right: 15px; }
.toggle-label { font-weight: 800; color: var(--ck-text); font-size: 1rem; display: flex; align-items: center;}
.toggle-sub { font-size: 0.85rem; color: #6b7280; font-weight: 500;}

.toggle-switch { position: relative; display: inline-block; width: 48px; height: 28px; flex-shrink: 0; }
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-switch .slider { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #d1d5db; transition: .3s ease; border-radius: 34px; }
.toggle-switch .slider:before { position: absolute; content: ""; height: 20px; width: 20px; left: 4px; bottom: 4px; background-color: white; transition: .3s ease; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.toggle-switch input:checked + .slider { background-color: var(--ck-primary); }
.toggle-switch input:disabled + .slider { background-color: var(--ck-primary); opacity: 0.5; cursor: not-allowed;}
.toggle-switch input:checked + .slider:before { transform: translateX(20px); }

.cookie-accordion { background: var(--ck-bg-alt); border: 1px solid var(--ck-border); border-radius: 12px; margin-bottom: 12px; overflow: hidden; }
.accordion-trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 15px 20px; background: none; border: none; font-family: var(--font-main); cursor: pointer; outline: none;}
.acc-title { font-weight: 800; font-size: 1.05rem; color: var(--ck-text); display: flex; align-items: center;}
.accordion-arrow { font-size: 1rem; color: var(--ck-brand); margin-left: 10px; transition: transform 0.3s ease;}

.hidden-panel { display: none; }
.open-panel { display: block; animation: fadePanel 0.3s ease; }
@keyframes fadePanel { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.accordion-inner { padding: 0 20px 20px 20px; }
.accordion-inner p { margin: 0; color: var(--ck-text-light); font-size: 0.95rem; line-height: 1.6; font-weight: 500;}

.mt-2 { margin-top: 15px; }
.mt-3 { margin-top: 10px; }

.mini-subtitle { font-size: 1.2rem; color: var(--ck-text); font-weight: 800; margin: 0; text-align: center; }
.mini-categories-list { display: flex; flex-direction: column; gap: 12px; background: var(--ck-bg-alt); padding: 15px; border-radius: 12px; border: 1px solid var(--ck-border);}
.cat-item { display: flex; align-items: center; font-weight: 700; font-size: 1.05rem; color: var(--ck-text); }
.cat-icon-container { width: 35px; display: flex; align-items: center; justify-content: flex-start; font-size: 1.3rem;}
.consent-meta { display: flex; flex-direction: column; gap: 4px; font-size: 0.95rem; color: #4b5563; font-weight: 500;}
.consent-meta strong { color: #1f2937; font-weight: 800;}
.consent-id { font-family: monospace; background: var(--ck-bg-alt); padding: 10px; border-radius: 8px; border: 1px dashed #d1d5db; word-break: break-all; font-weight: 600; font-size: 0.85rem;}

.mini-acc-trigger { background: #fffaf9; border-bottom: 1px solid transparent; }
.mini-acc-trigger .details-text { font-weight: 800; color: var(--ck-brand); font-size: 1rem; }
.mini-details-inner { padding: 15px; display: flex; flex-direction: column; gap: 8px; }

.cookie-footer, .mini-footer { 
    display: flex; padding: 20px 30px; background: var(--ck-bg); 
    border-top: 1px solid var(--ck-border); flex-shrink: 0;
}

.c-btn, .c-btn-mini { 
    font-family: var(--font-main); font-weight: 800; border-radius: 8px; cursor: pointer; 
    transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; outline: none; text-align: center;
}
.c-btn { padding: 14px 28px; font-size: 1rem; white-space: nowrap; }
.c-btn-mini { flex: 1; padding: 14px 20px; font-size: 1rem; line-height: 1.3; }

.c-btn-refuse { background: #fee2e2; border: 2px solid #f87171; color: #b91c1c; }
.c-btn-outline { background: #fff; border: 2px solid var(--ck-border); color: var(--ck-text); }
.c-btn-solid { background: var(--ck-primary); border: 2px solid var(--ck-primary); color: white; }
.c-btn-danger { background: #fff; border: 2px solid var(--ck-danger); color: var(--ck-danger); }
.c-btn-success { background: var(--ck-primary); border: 2px solid var(--ck-primary); color: white; }

@media (min-width: 650px) {
    .cookie-footer { justify-content: space-between; align-items: center; flex-wrap: nowrap; gap: 20px; }
    .cookie-footer-right { display: flex; gap: 10px; }
    
    .mini-footer { flex-direction: row; gap: 10px; justify-content: space-between; } 
}

@media (max-width: 650px) {
    .cookie-modal-container { width: 100%; border-radius: 12px; }
    .cookie-header { padding: 20px 20px 0 20px; gap: 12px; }
    .cookie-brand-title { font-size: 1.3rem; }
    .cookie-logo { width: 40px; height: 40px; }
    .cookie-tabs { gap: 15px; }
    .cookie-tab { font-size: 0.95rem; padding: 0 0 8px 0;}
    
    .cookie-body { padding: 20px; }
    .cookie-tab-content h3 { font-size: 1.2rem; }
    .toggle-label { font-size: 0.95rem; }
    .toggle-sub { font-size: 0.8rem; }
    
    .cookie-footer { flex-direction: column; padding: 15px 20px; gap: 16px; }
    .cookie-footer-right { flex-direction: column; width: 100%; gap: 4px; order: 1; }
    
    .c-btn { width: 100%; padding: 12px; font-size: 0.95rem; }
    .c-btn-refuse { order: 2; margin: 0; }

    .mini-header { padding: 15px 20px; }
    .mini-header .cookie-brand-title { font-size: 1.2rem; padding-right: 40px;}
    .close-btn { width: 45px; font-size: 2.2rem; border-top-right-radius: 12px;}
    
    .mini-body { padding: 20px; }
    .mini-footer { flex-direction: column; padding: 15px 20px; gap: 4px;}
    .c-btn-mini { width: 100%; padding: 12px; font-size: 0.95rem; }
    
    .macaron-trigger { width: 60px !important; height: 60px !important; bottom: 1rem !important; left: 1rem !important; }
    .macaron-trigger svg { width: 55% !important; height: 55% !important; }
}