/* Tamanrasset Library Core — component styles. Uses theme.json colours when available, with safe fallbacks.
   Logical properties only, so one stylesheet serves RTL (Arabic) and LTR (French/English). */
:root{
  --tcl-navy:var(--wp--preset--color--navy,#0b1f3a);
  --tcl-navy2:var(--wp--preset--color--navy-2,#14305c);
  --tcl-ivory:var(--wp--preset--color--ivory,#fbf8f1);
  --tcl-sand:var(--wp--preset--color--sand,#c9a45c);
  --tcl-sand-dark:var(--wp--preset--color--sand-dark,#7d5f1c);
  --tcl-sand-light:var(--wp--preset--color--sand-light,#f1e7d0);
  --tcl-ink:var(--wp--preset--color--ink,#1b2430);
  --tcl-slate:var(--wp--preset--color--slate,#566170);
  --tcl-line:var(--wp--preset--color--line,#e3ddcf);
  --tcl-white:#fff;
  --tcl-radius:14px;
}
.tcl-empty,.tcl-muted{color:var(--tcl-slate)}
.tcl-empty{padding:1.25rem 1.5rem;border:1px dashed var(--tcl-line);border-radius:var(--tcl-radius);background:var(--tcl-white)}
.tcl-meta{margin:0 0 .35rem;font-size:.8125rem;font-weight:500;color:var(--tcl-slate);letter-spacing:.01em}
.tcl-link{color:var(--tcl-navy2);font-weight:600;text-underline-offset:.2em}
.tcl-notice{margin:0 0 1.25rem;padding:.9rem 1.1rem;border-inline-start:4px solid var(--tcl-sand);background:var(--tcl-sand-light);color:var(--tcl-ink);border-radius:6px}

/* Buttons */
.tcl-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.25rem;border:2px solid var(--tcl-navy);border-radius:999px;background:var(--tcl-navy);color:#fff;font:inherit;font-weight:600;font-size:.9375rem;text-decoration:none;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.tcl-btn:hover{background:var(--tcl-navy2);border-color:var(--tcl-navy2);color:#fff}
.tcl-btn--ghost{background:transparent;color:var(--tcl-navy)}
.tcl-btn--ghost:hover{background:var(--tcl-navy);color:#fff}
.tcl-btn:focus-visible,.tcl-link:focus-visible,.tcl-card__link:focus-visible,.tcl-faq__item summary:focus-visible,.tcl-field input:focus-visible,.tcl-field select:focus-visible,.tcl-field textarea:focus-visible{outline:3px solid var(--tcl-sand-dark);outline-offset:3px}
[dir="rtl"] .tcl-icon--arrow{transform:scaleX(-1)}

/* Cards */
.tcl-cards{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.tcl-cards--compact{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.tcl-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:var(--tcl-radius);transition:border-color .2s,transform .2s,box-shadow .2s}
.tcl-card:hover,.tcl-card:focus-within{border-color:var(--tcl-sand);box-shadow:0 8px 24px -14px rgba(11,31,58,.35)}
.tcl-card__icon{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:12px;background:var(--tcl-sand-light);color:var(--tcl-navy)}
.tcl-card__title{margin:.4rem 0 0;font-size:1.125rem;line-height:1.4;font-weight:600;color:var(--tcl-navy)}
.tcl-card__link{color:inherit;text-decoration:none}
.tcl-card__link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.tcl-card__text{margin:0;color:var(--tcl-slate);font-size:.9375rem;line-height:1.7}
.tcl-card__top{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.tcl-card--resource .tcl-btn{align-self:flex-start;margin-block-start:auto;position:relative}
.tcl-card--news{padding:0;overflow:hidden}
.tcl-card__media{aspect-ratio:16/9;background:var(--tcl-sand-light);overflow:hidden;display:grid;place-items:center;color:var(--tcl-navy2)}
.tcl-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.tcl-card__body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.4rem}
.tcl-card__body .tcl-card__title{margin-block-start:0}

/* Badges (never colour-only: they always carry text) */
.tcl-badge{display:inline-block;margin:0;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.5;border:1px solid currentColor}
.tcl-badge--open{color:#14573a;background:#e6f4ec}
.tcl-badge--registration{color:#244a8a;background:#e8eefb}
.tcl-badge--campus{color:#6b4a0c;background:#fbf1d9}
.tcl-badge--subscription{color:#7a2d1f;background:#fbebe7}
.tcl-badge--pending{color:#6b4a0c;background:#fbf1d9;align-self:flex-start}

/* Facts list */
.tcl-facts{margin:0;display:grid;gap:.4rem;font-size:.875rem}
.tcl-facts>div{display:flex;gap:.5rem;flex-wrap:wrap}
.tcl-facts dt{font-weight:600;color:var(--tcl-navy)}
.tcl-facts dt::after{content:":"}
.tcl-facts dd{margin:0;color:var(--tcl-slate)}
.tcl-facts--wide{margin-block-end:1.5rem;padding:1.25rem 1.5rem;border:1px solid var(--tcl-line);border-radius:var(--tcl-radius);background:var(--tcl-white);font-size:1rem}
.tcl-subtitle{font-size:1.25rem;color:var(--tcl-navy);margin-block:1.75rem .75rem}
.tcl-list{padding-inline-start:1.4rem;line-height:1.9}

/* Directory filter */
.tcl-filter{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:end;margin-block-end:1.25rem;padding:1.25rem;background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:var(--tcl-radius)}
.tcl-field{display:flex;flex-direction:column;gap:.35rem}
.tcl-field label{font-weight:600;font-size:.875rem;color:var(--tcl-navy)}
.tcl-field input[type=text],.tcl-field input[type=search],.tcl-field input[type=email],.tcl-field select,.tcl-field textarea{width:100%;padding:.65rem .8rem;font:inherit;color:var(--tcl-ink);background:#fff;border:1.5px solid #76808f;border-radius:10px}
.tcl-field--actions{flex-direction:row;align-items:center;gap:1rem}
.tcl-count{color:var(--tcl-slate);font-size:.9375rem}
.tcl-pagination{margin-block-start:2rem}
.tcl-pagination .page-numbers{display:inline-block;min-width:2.5rem;padding:.45rem .75rem;margin:0 .15rem;text-align:center;border:1px solid var(--tcl-line);border-radius:8px;color:var(--tcl-navy);text-decoration:none;background:#fff}
.tcl-pagination .current{background:var(--tcl-navy);color:#fff;border-color:var(--tcl-navy)}

/* Events */
.tcl-events-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.tcl-event{display:flex;gap:1.1rem;align-items:flex-start;padding:1.15rem 1.25rem;background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:var(--tcl-radius)}
.tcl-event__date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:3.75rem;height:4.1rem;border-radius:12px;background:var(--tcl-navy);color:#fff;line-height:1.1}
.tcl-event__date--none{background:var(--tcl-sand-light);color:var(--tcl-navy)}
.tcl-event__day{font-size:1.5rem;font-weight:700}
.tcl-event__month{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--tcl-sand-light)}
.tcl-event__title{margin:0;font-size:1.0625rem;font-weight:600}
.tcl-event__title a{color:var(--tcl-navy);text-decoration:none}
.tcl-event__title a:hover{text-decoration:underline}
.tcl-event__info{margin:.25rem 0 0;color:var(--tcl-slate);font-size:.9375rem}
.tcl-switch{margin-block:0 1rem}

/* FAQ */
.tcl-faq__item{background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:12px;margin-block-end:.75rem}
.tcl-faq__item summary{cursor:pointer;padding:1rem 1.25rem;font-weight:600;color:var(--tcl-navy);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.tcl-faq__item summary::-webkit-details-marker{display:none}
.tcl-faq__item summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--tcl-sand-dark)}
.tcl-faq__item[open] summary::after{content:"−"}
.tcl-faq__answer{padding:0 1.25rem 1.1rem;color:var(--tcl-ink);line-height:1.8}

/* Info block */
.tcl-info{display:grid;gap:1.25rem}
.tcl-info__row{display:flex;gap:1rem}
.tcl-info__icon{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--tcl-sand-light);color:var(--tcl-navy)}
.tcl-info__label{margin:0 0 .2rem;font-size:1rem;font-weight:600;color:inherit}
.tcl-info__row p{margin:0 0 .25rem}
.tcl-map{margin-block-start:1.25rem;border-radius:var(--tcl-radius);overflow:hidden;border:1px solid var(--tcl-line)}
.tcl-map iframe{display:block;width:100%;height:320px;border:0}

/* Catalogue search */
.tcl-catalogue{padding:1.5rem;background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:var(--tcl-radius);box-shadow:0 18px 40px -26px rgba(11,31,58,.5)}
.tcl-catalogue__title{margin:0 0 .9rem;font-size:1.125rem;color:var(--tcl-navy)}
.tcl-catalogue__form{display:flex;gap:.6rem;flex-wrap:wrap}
.tcl-catalogue__form input{flex:1 1 14rem;min-width:0;padding:.75rem 1rem;font:inherit;border:1.5px solid #76808f;border-radius:999px;background:#fff;color:var(--tcl-ink)}
.tcl-catalogue .tcl-muted{margin:.75rem 0 0;font-size:.8125rem}

/* Forms */
.tcl-form{display:grid;gap:1.1rem;max-width:42rem}
.tcl-req{color:#a12a1b}
.tcl-hp{position:absolute;inset-inline-start:-9999px;width:1px;height:1px;overflow:hidden}
.tcl-field--check label{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;color:var(--tcl-ink)}
.tcl-field--check input{margin-block-start:.35rem;width:1.1rem;height:1.1rem}
.has-error input,.has-error select,.has-error textarea{border-color:#a12a1b!important;border-width:2px!important}
.tcl-alert{padding:1rem 1.25rem;border-radius:10px;margin-block-end:1.25rem;border:1px solid}
.tcl-alert--ok{background:#e6f4ec;color:#0f4a30;border-color:#14573a}
.tcl-alert--err{background:#fbebe7;color:#6d2417;border-color:#a12a1b}
.tcl-alert ul{margin:.5rem 0 0;padding-inline-start:1.25rem}
.tcl-alert a{color:inherit}

/* Content shortcut tiles & utility classes used by starter content (core blocks) */
.tcl-tile{position:relative;display:flex;flex-direction:column;gap:.35rem;height:100%;padding:1.35rem 1.4rem;background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:var(--tcl-radius);transition:border-color .2s,box-shadow .2s}
.tcl-tile:hover,.tcl-tile:focus-within{border-color:var(--tcl-sand);box-shadow:0 10px 26px -16px rgba(11,31,58,.4)}
.tcl-tile::before{content:"";display:block;width:2.5rem;height:2.5rem;margin-block-end:.5rem;background-color:var(--tcl-navy);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100%;mask-size:100%}
.tcl-tile>*{margin:0}
.tcl-tile h3{font-size:1.0625rem;font-weight:600}
.tcl-tile h3 a{color:var(--tcl-navy);text-decoration:none}
.tcl-tile h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.tcl-tile h3 a:focus-visible{outline:3px solid var(--tcl-sand-dark);outline-offset:4px}
.tcl-tile p{color:var(--tcl-slate);font-size:.9rem;line-height:1.65}
/* Icon tiles: coloured square with the pictogram cut out of it */
.tcl-tile[class*="tcl-ico-"]::before{background-color:var(--tcl-navy)}
.tcl-steps{counter-reset:tclstep;list-style:none;padding:0;margin:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.tcl-steps>li{counter-increment:tclstep;position:relative;padding:1.4rem;background:var(--tcl-white);border:1px solid var(--tcl-line);border-radius:var(--tcl-radius)}
.tcl-steps>li::before{content:counter(tclstep);display:grid;place-items:center;width:2.25rem;height:2.25rem;margin-block-end:.75rem;border-radius:50%;background:var(--tcl-navy);color:#fff;font-weight:700}
.tcl-steps strong{display:block;color:var(--tcl-navy);margin-block-end:.25rem}
.tcl-sources{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.tcl-sources a{display:inline-block;padding:.45rem .95rem;border:1px solid var(--tcl-line);border-radius:999px;background:var(--tcl-white);color:var(--tcl-navy);text-decoration:none;font-weight:500;font-size:.9rem}
.tcl-sources a:hover{border-color:var(--tcl-sand);background:var(--tcl-sand-light)}
.tcl-placeholder-note{padding:.8rem 1rem;border:1px dashed var(--tcl-sand-dark);border-radius:8px;background:var(--tcl-sand-light);color:var(--tcl-ink);font-size:.9rem}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.tclt-main .tcl-catalogue__title,.tcl-catalogue__title{margin-block-start:0}

.tcl-field input,.tcl-field select,.tcl-field textarea,.tcl-catalogue__form input,.tclt-searchform input{box-sizing:border-box;max-width:100%}
