/*
 * Andalusit — mechanics only. The look (colours, type, spacing, radius, shadows) is the site CSS
 * in the theme (main.css / responsive.css). Rules here only make components WORK.
 */

/* grid: columns from --as-cols, gaps from --as-gap-* (Elementor Style tab or site CSS set them) */
.as-grid{display:grid;grid-template-columns:repeat(var(--as-cols,3),minmax(0,1fr));gap:var(--as-gap-y,24px) var(--as-gap-x,24px)}
.as-grid__item--wide{grid-column:span 2}
@media (max-width:1000px){.as-grid{grid-template-columns:repeat(var(--as-cols-tablet,2),minmax(0,1fr))}}
@media (max-width:767px){.as-grid{grid-template-columns:repeat(var(--as-cols-mobile,1),minmax(0,1fr))}.as-grid__item--wide{grid-column:auto}}

/* cards: image box keeps its ratio; the whole card is a flex column */
.as-card{display:flex;flex-direction:column;min-width:0;position:relative}
.as-card__media{display:block;position:relative;overflow:hidden}
.as-card__media img,.as-card__img{display:block;width:100%;height:100%;object-fit:cover}
.as-card__body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.as-card__actions{margin-top:auto}
.as-card__date,.as-card__count,.as-card__badge,.as-card__label{position:absolute}
.as-card__date{inset-block-start:0;inset-inline-start:0}
.as-card__count,.as-card__badge{inset-block-start:0;inset-inline-end:0}
.as-card__media .as-badge{position:absolute;inset-block-end:0;inset-inline-start:0}
.as-card__media .as-card__label{inset-block-end:0;inset-inline-start:0}
.as-card--project .as-card__body{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end}

/* chips (filters) — state by aria only */
.as-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
@media (max-width:767px){.as-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.as-chips::-webkit-scrollbar{display:none}.as-chip{flex:0 0 auto}}
.as-chip{cursor:pointer;font:inherit}
.as-chip--static{cursor:default}
.as-chip--radio input{position:absolute;opacity:0;width:0;height:0}

/* dates table rows */
.as-dates__list{list-style:none;margin:0;padding:0}
.as-dates__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center}
@media (max-width:767px){.as-dates__row{grid-template-columns:1fr;gap:6px}}
.as-dates__place{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;min-width:0}

/* buttons: a button is a flex row (label + external arrow) */
.as-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;cursor:pointer;text-decoration:none;font:inherit;border:0;background:none}
.as-btn--disabled{cursor:not-allowed;pointer-events:none}
.as-btn__ext{display:inline-block}
.as-link{cursor:pointer;background:none;border:0;padding:0;font:inherit;text-decoration:underline}

/* accordion: native details */
.as-accordion__summary{cursor:pointer;list-style:none}
.as-accordion__summary::-webkit-details-marker{display:none}

/* hero: image behind the text */
.as-hero{position:relative;display:grid;grid-template-areas:"stack"}
.as-hero__media,.as-hero__body{grid-area:stack}
.as-hero__media{position:relative;min-width:0;overflow:hidden}
.as-hero__media img{display:block;width:100%;height:100%;object-fit:cover}
.as-hero__body{position:relative;z-index:1;align-self:end}

/* profile */
.as-profile{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:32px;align-items:start}
@media (max-width:767px){.as-profile{grid-template-columns:1fr}}

/* strips (horizontal, scroll-snap) */
.as-strip{display:flex;gap:var(--as-gap-x,16px);overflow-x:auto;scroll-snap-type:x mandatory;list-style:none;margin:0;padding:0;-webkit-overflow-scrolling:touch}
.as-strip>*{flex:0 0 auto;scroll-snap-align:start}
.as-strip img{display:block}

/* masonry via columns */
.as-masonry{columns:3;column-gap:var(--as-gap-x,16px);list-style:none;margin:0;padding:0}
.as-masonry__item{break-inside:avoid;margin-bottom:var(--as-gap-y,16px)}
.as-masonry img{display:block;width:100%;height:auto}
@media (max-width:1000px){.as-masonry{columns:2}}
@media (max-width:500px){.as-masonry{columns:1}}

/* video facade */
.as-video{position:relative;aspect-ratio:16/9;max-width:100%;overflow:hidden}
.as-video__play{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center}
.as-video__play img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.as-video__icon{position:relative;display:block}
.as-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* modals (native dialog) */
.as-modal{border:0;padding:0;max-width:min(92vw,640px);width:100%;background:transparent}
.as-modal::backdrop{background:rgba(0,0,0,.6)}
.as-modal__box{position:relative;max-height:85vh;overflow:auto;background:#fff;color:#000}
.as-modal__close{position:absolute;inset-block-start:0;inset-inline-end:0;cursor:pointer;border:0;background:none;font:inherit;font-size:1.5em;line-height:1;padding:.5em}
.as-modal__scroll{max-height:40vh;overflow:auto}
.as-modal__amounts{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0}
.as-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.as-lightbox{max-width:96vw;max-height:96vh}
.as-lightbox__box{position:relative;display:grid;place-items:center}
.as-lightbox__img{max-width:96vw;max-height:88vh;width:auto;height:auto;display:block}
.as-lightbox__nav,.as-lightbox__close{position:absolute;cursor:pointer;border:0;background:none;font:inherit;font-size:2em;line-height:1;padding:.25em}
.as-lightbox__close{inset-block-start:0;inset-inline-end:0}
.as-lightbox__nav--prev{inset-inline-start:0;inset-block-start:50%}
.as-lightbox__nav--next{inset-inline-end:0;inset-block-start:50%}

/* misc */
.as-share{display:flex;flex-wrap:wrap;gap:12px}
.as-info div,.as-credits div{display:flex;gap:.5em;flex-wrap:wrap}
.as-info dt,.as-credits dt{margin:0}
.as-info dd,.as-credits dd{margin:0}
.as-people-list{list-style:none;margin:0;padding:0}
.as-committee{cursor:pointer;border:0;background:none;font:inherit;padding:0}
.as-committee__logo{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
