/* Custom styles for Asqatasun Web Interface */

/* Line clamp utility for text truncation */
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Custom animations */
@keyframes pulse-slow {
    0%,100%{opacity:1}
    50%{opacity:.5}
}

.animate-pulse-slow{animation:pulse-slow 2s cubic-bezier(.4,0,.6,1) infinite}

/* Status indicators */
.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}
.status-indicator.completed{background-color:#10b981}
.status-indicator.running{background-color:#f59e0b;animation:pulse-slow 2s infinite}
.status-indicator.failed{background-color:#ef4444}
.status-indicator.pending{background-color:#6b7280}

/* Form improvements */
.form-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px 0 rgb(0 0 0 / .1);padding:24px;margin-bottom:24px}
.form-section h3{font-size:1.125rem;font-weight:600;color:#374151;margin-bottom:16px}

/* Card hover effects */
.card-hover{transition:all 0.2s ease-in-out}
.card-hover:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px rgb(0 0 0 / .1),0 10px 10px -5px rgb(0 0 0 / .04)}

/* Progress bars */
.progress-bar{width:100%;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}
.progress-bar-fill{height:100%;background-color:#3b82f6;transition:width 0.3s ease}
.progress-bar-fill.success{background-color:#10b981}
.progress-bar-fill.warning{background-color:#f59e0b}
.progress-bar-fill.error{background-color:#ef4444}

/* Loading states */
.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;animation:spin 1s ease-in-out infinite}

@keyframes spin {
    to{transform:rotate(360deg)}
}

/* Responsive improvements */
@media (max-width: 640px) {
    .mobile-stack{flex-direction:column}
    .mobile-stack>*{margin-bottom:12px}
    .mobile-stack>*:last-child{margin-bottom:0}
}

/* Print styles */
@media print {
    .no-print{display:none!important}
    .print-break-before{page-break-before:always}
    .print-break-after{page-break-after:always}
}

/* ============================================================================
   TYPOGRAPHY - Styles pour le contenu public et les pages CMS
   ============================================================================ */

/* Titres */
main h2,
main h3,
main h4,
main h5,
main h6 {font-weight:700;color:#111827;margin-top:1em;margin-bottom:1em}

h2:first-child {margin-top: 0;}
h2.h1 {color: white;border-color: wheat;width: max-content;margin-left: auto;margin-right: auto;}

main h1 {font-size: 2.25rem; /* 36px */line-height: 1.1;margin-top: 0;color: #4f46e5;border-bottom: 3px solid #4f46e5;padding-bottom: 0.5rem;}
main h2 {font-size: 1.875rem; /* 30px */line-height: 1.2;color: #059669;border-bottom: 2px solid #059669;padding-bottom: 0.375rem;}
main h3 {font-size: 1.5rem; /* 24px */line-height: 1.3;color: #0891b2;}
main h4 {font-size: 1.25rem; /* 20px */line-height: 1.4;color: #374151;}
main h5 {font-size: 1.125rem; /* 18px */line-height: 1.5;color: #4b5563;}
main h6 {font-size: 1rem; /* 16px */line-height: 1.5;color: #4b5563;font-weight: 600;}

/* Paragraphes */
main p {margin-top: 0;margin-bottom: 1.25rem;color: #374151;}

/* Liens */
main a {color: #2563eb;text-decoration: none;transition: color 0.2s ease;}
a:not(.rounded-lg):not(.rounded-md):hover {color: #1d4ed8;text-decoration: underline;}
a:focus {outline: 2px solid #3b82f6;outline-offset: 2px;border-radius: 2px;}

/* Listes */
.bloc-contenu ul, .bloc-contenu ol {margin-bottom: 1rem;padding-left: 1.5rem;}
.bloc-contenu ul {list-style-type: disc;}
.bloc-contenu ol {list-style-type: decimal;}

.bloc-contenu li {margin-bottom: 0.5rem;line-height: 1.75;color: #374151;}
.bloc-contenu li:last-child {margin-bottom: 0;}

/* Listes imbriquées */
.bloc-contenu ul ul,.bloc-contenu ol ul{list-style-type:circle;margin-top:.5rem;margin-bottom:.5rem}
.bloc-contenu ul ol,.bloc-contenu ol ol{list-style-type:lower-alpha;margin-top:.5rem;margin-bottom:.5rem}

/* Listes de définition */
dl{margin-bottom:1rem}
dt{font-weight:600;color:#111827;margin-bottom:.25rem}
dd{margin-left:1.5rem;margin-bottom:.75rem;color:#374151}

/* Citations */
blockquote{border-left:4px solid #4f46e5;padding-left:1rem;margin:1.5rem 0;font-style:italic;color:#4b5563}
blockquote p{margin-bottom:.5rem}
blockquote cite{display:block;margin-top:.5rem;font-size:.875rem;color:#4b5563;font-style:normal}

/* Code */
code{background-color:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;font-family:'Courier New',Courier,monospace;font-size:.875em;color:#dc2626}
pre{background-color:#1f2937;color:#f9fafb;padding:1rem;border-radius:.5rem;overflow-x:auto;margin-bottom:1rem}
pre code{background-color:#fff0;padding:0;color:inherit;font-size:.875rem}

/* Tableaux */
table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}
thead{background-color:#f3f4f6}
th{padding:.75rem;text-align:left;font-weight:600;color:#111827;border-bottom:2px solid #d1d5db}
td{padding:.75rem;border-bottom:1px solid #e5e7eb;color:#374151}
tbody tr:hover{background-color:#f9fafb}

/* Séparateurs */
hr{border:0;border-top:2px solid #e5e7eb;margin:2rem 0}

/* Images */
img{max-width:100%;height:auto;border-radius:.5rem}
figure{margin:1.5rem 0}
figcaption{margin-top:.5rem;font-size:.875rem;color:#4b5563;text-align:center;font-style:italic}

/* Texte en gras et italique */
strong,b{font-weight:700;color:#111827}
em,i{font-style:italic}

/* Texte souligné et barré */
u {text-decoration: underline;}

s,del{text-decoration:line-through;color:#6b7280}

/* Petit texte */
small{font-size:.875rem;color:#4b5563}

/* Marques et surlignage */
mark{background-color:#fef3c7;padding:.125rem .25rem;border-radius:.125rem}

/* Abréviations */
abbr[title]{text-decoration:underline dotted;cursor:help}

/* Adresses */
address{font-style:normal;line-height:1.75;margin-bottom:1rem;color:#374151}

/* Détails et résumé */
details{margin-bottom:1rem;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem}
summary{font-weight:600;cursor:pointer;color:#111827;user-select:none}
summary:hover{color:#4f46e5}
details[open] summary{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}

/* Formulaires dans le contenu */
.content-area label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem}

.content-area input[type="text"],
.content-area input[type="email"],
.content-area input[type="url"],
.content-area input[type="tel"],
.content-area textarea,
.content-area select {width: 100%;padding: 0.5rem 0.75rem;border: 1px solid #d1d5db;border-radius: 0.375rem;font-size: 1rem;line-height: 1.5;}

.content-area input:focus,
.content-area textarea:focus,
.content-area select:focus {outline: 2px solid #4f46e5;outline-offset: 2px;border-color: #4f46e5;}

/* Responsive */
@media (max-width: 768px) {
    h1 {font-size: 1.875rem; /* 30px */}
    h2 {font-size: 1.5rem; /* 24px */}
    h3 {font-size: 1.25rem; /* 20px */}
    h4 {font-size: 1.125rem; /* 18px */}
    h5, h6 {font-size: 1rem; /* 16px */}
}


/* DECLARATION D'ACCESSIBILITE */
.accessibility-declaration div {margin-bottom: 20px;}

.widget-contact-form form.accessibility-contact-form {text-align: center;}
.widget-contact-form form.accessibility-contact-form  .form-group {display: grid;grid-template-columns: .5fr 2fr;text-align: left;}
.widget-contact-form form.accessibility-contact-form  .form-group input, .widget-contact-form .form-group textarea {border: 1px solid;}