/*
 * Abigail Studio Core — structural front-end styles only.
 * Layout and accessibility basics live here. Colors, type and spacing scale
 * belong to the theme, which can restyle any .asc- class or deregister the
 * 'asc-frontend' handle and supply its own.
 */

.asc-block .screen-reader-text,
.asc-inquiry .screen-reader-text {
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; width: 1px; white-space: nowrap;
}

/* Facts */
.asc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem 2rem; margin: 0 0 2rem; }
.asc-fact { margin: 0; }
.asc-fact dt { font-size: 0.8125em; letter-spacing: 0.04em; text-transform: uppercase; }
.asc-fact dd { margin: 0.25rem 0 0; }

/* Images: slides are always shown whole, never cropped */
.asc-cover { margin: 0 0 2rem; }
.asc-cover__image,
.asc-gallery__image { display: block; width: 100%; height: auto; }
.asc-gallery { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; }
.asc-gallery__item figure { margin: 0; }
.asc-gallery figcaption,
.asc-cover figcaption { margin-top: 0.5rem; font-size: 0.875em; }
.asc-gallery__caption { display: block; font-weight: 600; }
.asc-gallery__description { display: block; }

/* Sections */
.asc-section { margin: 3rem 0; }
.asc-subsection { margin: 1.5rem 0; max-width: 46rem; }

/* Cards */
.asc-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.asc-card { position: relative; }
.asc-card__media { aspect-ratio: 16 / 9; overflow: hidden; }
.asc-card__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.asc-card__title { margin: 1rem 0 0.25rem; }
.asc-card__title a::after { content: ""; position: absolute; inset: 0; }
.asc-card__title a:focus-visible { outline: none; }
.asc-card:has(.asc-card__title a:focus-visible) { outline: 2px solid currentColor; outline-offset: 4px; }
.asc-card__meta,
.asc-card__excerpt { margin: 0.25rem 0 0; }

/* Testimonials */
.asc-testimonials { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; }
.asc-testimonial { margin: 0; }
.asc-testimonial blockquote { margin: 0; }
.asc-testimonial figcaption { margin-top: 0.75rem; }
.asc-testimonial__name { font-weight: 600; }

/* Inquiry form */
.asc-form { max-width: 40rem; }
.asc-form__field { margin: 0 0 1.25rem; }
.asc-form__field label { display: block; margin-bottom: 0.375rem; font-weight: 600; }
.asc-form__req { font-weight: 400; font-size: 0.875em; }
.asc-form input:not([type="hidden"]),
.asc-form select,
.asc-form textarea { box-sizing: border-box; width: 100%; max-width: 100%; min-height: 2.75rem; padding: 0.5rem 0.75rem; font: inherit; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 2px; }
.asc-form textarea { min-height: 9rem; resize: vertical; }
.asc-form input:focus-visible,
.asc-form select:focus-visible,
.asc-form textarea:focus-visible,
.asc-form button:focus-visible,
.asc-inquiry a:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; }
.asc-form__field.has-error input,
.asc-form__field.has-error select,
.asc-form__field.has-error textarea { border-width: 2px; }
.asc-form__error { margin: 0.375rem 0 0; font-weight: 600; }
.asc-form__error::before { content: "\26A0\FE0E  "; }
.asc-form__turnstile { margin: 0 0 1.25rem; min-height: 65px; }
.asc-form__privacy,
.asc-form__hint { font-size: 0.875em; }
.asc-button { cursor: pointer; min-height: 2.75rem; }
.asc-notice { margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 2px solid currentColor; }
.asc-notice p { margin: 0 0 0.5rem; }
.asc-notice p:last-child { margin-bottom: 0; }
.asc-notice ul { margin: 0; padding-left: 1.25rem; }

/* Honeypot: hidden from everyone, including assistive technology */
.asc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Feature rows */
.asc-features { list-style: none; margin: 0; padding: 0; display: grid; gap: 4rem; }
.asc-feature { display: grid; gap: 2rem; align-items: center; }
.asc-feature__media img { display: block; width: 100%; height: auto; }
.asc-pills { list-style: none; margin: 1rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.asc-pills li { padding: 0.25rem 0.75rem; border: 1px solid currentColor; border-radius: 999px; font-size: 0.8125em; }
@media (min-width: 900px) {
	.asc-feature { grid-template-columns: minmax(0, 4fr) minmax(0, 5fr); gap: 4rem; }
	.asc-feature:nth-child(even) .asc-feature__text { order: 2; }
}

/* Slide stack (decorative) */
.asc-stack { position: relative; aspect-ratio: 16 / 11; }
.asc-stack__slide { position: absolute; left: 12%; top: 18%; width: 76%; height: auto; box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.3); }
.asc-stack--3 .asc-stack__slide:nth-child(1) { transform: translate(-10%, -22%) rotate(-12deg); }
.asc-stack--3 .asc-stack__slide:nth-child(2) { transform: translate(14%, -8%) rotate(12deg); }
.asc-stack--2 .asc-stack__slide:nth-child(1) { transform: translate(8%, -14%) rotate(9deg); }
