/* Sree Agam Ashram — core plugin front-end styles.
   Uses theme CSS variables where present, with local fallbacks so the
   shortcodes still look right if used under another theme. */

.saa-booking,
.saa-form,
.saa-cards,
.saa-gallery,
.saa-testimonials,
.saa-accordion {
	--saa-accent: var(--saa-magenta, #b80669);
	--saa-accent-ink: #fff;
	--saa-line: var(--saa-line, #cfe3e3);
	--saa-ink: var(--saa-ink, #2c2530);
	--saa-muted: var(--saa-muted, #6a6270);
	--saa-surface: var(--saa-surface, #f4fafa);
}

.saa-muted { color: var(--saa-muted); }

/* ---------- Buttons ---------- */
.saa-btn {
	display: inline-flex; align-items: center; gap: .4em;
	padding: .7em 1.4em; border-radius: 6px; cursor: pointer;
	font: inherit; font-weight: 700; letter-spacing: .03em;
	text-transform: uppercase; font-size: .82rem;
	border: 1.5px solid var(--saa-accent); background: transparent; color: var(--saa-accent);
	transition: background .15s, color .15s;
}
.saa-btn--solid { background: var(--saa-accent); color: var(--saa-accent-ink); }
.saa-btn--solid:hover { filter: brightness( .93 ); }
.saa-btn--ghost:hover { background: var(--saa-accent); color: var(--saa-accent-ink); }
.saa-btn[disabled] { opacity: .55; cursor: default; }

/* ---------- Forms ---------- */
.saa-form label,
.saa-book-form label {
	display: block; margin-bottom: .9rem;
	font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--saa-muted);
}
.saa-form input,
.saa-form textarea,
.saa-book-form input,
.saa-book-form textarea {
	display: block; width: 100%; margin-top: .35rem;
	padding: .7rem .8rem; border: 1px solid var(--saa-line); border-radius: 6px;
	font: inherit; color: var(--saa-ink); background: #fff;
}
.saa-form textarea, .saa-book-form textarea { resize: vertical; }
.saa-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 560px) { .saa-field-row { grid-template-columns: 1fr; } }
.saa-hp { position: absolute !important; left: -9999px !important; top: 0 !important; height: 0 !important; width: 1px !important; opacity: 0 !important; overflow: hidden; }
.saa-form-msg { margin-top: .8rem; font-size: .9rem; min-height: 1.2em; }
.saa-form-msg.is-ok { color: #2f6d1c; }
.saa-form-msg.is-err { color: #a94442; }

.saa-newsletter-form__row { display: flex; gap: .5rem; }
.saa-newsletter-form__row input[type="email"] { flex: 1; margin: 0; }
@media (max-width: 480px) { .saa-newsletter-form__row { flex-direction: column; } }

/* ---------- Booking widget ---------- */
.saa-booking__grid { display: grid; grid-template-columns: 320px 1fr; gap: 2.5rem; align-items: start; }
@media (max-width: 860px) { .saa-booking__grid { grid-template-columns: 1fr; } }

.saa-cal { background: #fff; border: 1px solid var(--saa-line); border-radius: 10px; padding: 1rem; }
.saa-cal__head { display: flex; align-items: center; justify-content: space-between; font-weight: 700; margin-bottom: .8rem; }
.saa-cal__nav { border: 0; background: transparent; font-size: 1rem; cursor: pointer; padding: .3rem .6rem; color: var(--saa-ink); border-radius: 6px; }
.saa-cal__nav:hover { background: var(--saa-surface); }
.saa-cal__dow, .saa-cal__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.saa-cal__dow span { text-align: center; font-size: .68rem; color: var(--saa-muted); padding: .3rem 0; }
.saa-cal__days span, .saa-cal__day {
	aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center;
	font-size: .82rem; border-radius: 6px; border: 0; background: var(--saa-surface); color: var(--saa-muted);
}
.saa-cal__day { cursor: pointer; }
.saa-cal__day.is-open { background: #e7f2e2; color: #2f6d1c; font-weight: 600; }
.saa-cal__day.is-open:hover { background: #d5e9cd; }
.saa-cal__day.is-closed { opacity: .35; cursor: default; }
.saa-cal__day.is-selected { background: var(--saa-accent); color: #fff; font-weight: 700; }
.saa-cal__loading { grid-column: 1 / -1; text-align: center; color: var(--saa-muted); padding: 2rem 0; }
.saa-cal__legend { font-size: .72rem; color: var(--saa-muted); margin-top: .7rem; display: flex; align-items: center; gap: .3rem; }
.saa-cal__legend .is-open, .saa-cal__legend .is-closed { width: .8rem; height: .8rem; border-radius: 3px; display: inline-block; }
.saa-cal__legend .is-open { background: #e7f2e2; } .saa-cal__legend .is-closed { background: var(--saa-surface); border: 1px solid var(--saa-line); }

.saa-slots { display: flex; flex-wrap: wrap; gap: .5rem; margin: .8rem 0 1.4rem; }
.saa-slot {
	border: 1px solid var(--saa-line); background: #fff; color: var(--saa-ink);
	border-radius: 6px; padding: .5rem .9rem; font: inherit; font-size: .85rem; cursor: pointer;
}
.saa-slot:hover { border-color: var(--saa-accent); }
.saa-slot.is-selected { background: var(--saa-accent); color: #fff; border-color: var(--saa-accent); }
.saa-slot.is-full { opacity: .4; text-decoration: line-through; cursor: default; }
.saa-book-form { border-top: 1px solid var(--saa-line); padding-top: 1.2rem; margin-top: .4rem; }
.saa-book-form__chosen { font-weight: 700; color: var(--saa-accent); }
.saa-book-form__actions { display: flex; gap: .8rem; margin-top: .4rem; }

/* ---------- Cards ---------- */
.saa-cards { display: grid; gap: 1.4rem; }
.saa-cards--4 { grid-template-columns: repeat(4, 1fr); }
.saa-cards--3 { grid-template-columns: repeat(3, 1fr); }
.saa-cards--events { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .saa-cards--4, .saa-cards--events { grid-template-columns: repeat(2, 1fr); } .saa-cards--3 { grid-template-columns: repeat(2,1fr);} }
@media (max-width: 620px) { .saa-cards { grid-template-columns: 1fr !important; } }

.saa-card {
	display: block; background: var(--saa-surface); border: 1px solid var(--saa-line);
	border-radius: 10px; padding: 1.1rem; text-decoration: none; color: inherit;
	transition: transform .15s, box-shadow .15s;
}
a.saa-card:hover { transform: translateY(-3px); box-shadow: 0 8px 26px rgba(0,0,0,.08); }
.saa-card h3 { margin: .5rem 0 .3rem; font-size: 1.02rem; }
.saa-card p { margin: 0; font-size: .88rem; color: var(--saa-muted); line-height: 1.55; }
.saa-card__icon { font-size: 1.6rem; color: var(--saa-accent); }
.saa-card__img img, .saa-card__img { display: block; width: 100%; height: 160px; object-fit: cover; border-radius: 8px; }
.saa-card__img--ph { background: repeating-linear-gradient(45deg,#eee,#eee 10px,#e4e4e4 10px,#e4e4e4 20px); }
.saa-card__date, .saa-card__tags, .saa-card__by { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--saa-muted); margin-top: .5rem; }
.saa-card__more { display: inline-block; margin-top: .7rem; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--saa-accent); }

/* ---------- Testimonials ---------- */
.saa-testimonials { max-width: 640px; margin: 0 auto; text-align: center; }
.saa-testimonials__track { position: relative; min-height: 8rem; }
.saa-testimonial { display: none; margin: 0; }
.saa-testimonial.is-active { display: block; }
.saa-testimonial blockquote { margin: 0 0 .8rem; font-size: 1.1rem; line-height: 1.6; }
.saa-testimonial figcaption { font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--saa-muted); }
.saa-testimonials__dots { display: flex; gap: .4rem; justify-content: center; margin-top: 1rem; }
.saa-testimonials__dots button { width: .55rem; height: .55rem; border-radius: 50%; border: 0; background: var(--saa-line); cursor: pointer; padding: 0; }
.saa-testimonials__dots button.is-active { background: var(--saa-accent); }

/* ---------- Gallery ---------- */
.saa-gallery__filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.2rem; }
.saa-gallery__filters button {
	border: 1px solid var(--saa-line); background: #fff; border-radius: 20px;
	padding: .4rem 1rem; font: inherit; font-size: .8rem; color: var(--saa-muted); cursor: pointer;
}
.saa-gallery__filters button.is-on { background: var(--saa-accent); color: #fff; border-color: var(--saa-accent); }
.saa-gallery__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
@media (max-width: 900px) { .saa-gallery__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .saa-gallery__grid { grid-template-columns: repeat(2, 1fr); } }
.saa-gallery__item { display: block; }
.saa-gallery__item img { display: block; width: 100%; height: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; }

.saa-lightbox {
	position: fixed; inset: 0; background: rgba(0,0,0,.88); z-index: 9999;
	display: none; align-items: center; justify-content: center; gap: 1rem; padding: 2rem;
}
.saa-lightbox.is-open { display: flex; }
.saa-lightbox figure { margin: 0; max-width: 90vw; max-height: 86vh; text-align: center; }
.saa-lightbox img { max-width: 100%; max-height: 78vh; border-radius: 6px; }
.saa-lightbox figcaption { color: #eee; margin-top: .6rem; font-size: .9rem; }
.saa-lightbox__close, .saa-lightbox__nav {
	background: rgba(255,255,255,.14); border: 0; color: #fff; font-size: 1.4rem;
	width: 2.6rem; height: 2.6rem; border-radius: 50%; cursor: pointer; flex: 0 0 auto;
}
.saa-lightbox__close { position: absolute; top: 1.2rem; right: 1.2rem; }

/* ---------- Accordion ---------- */
.saa-accordion { border: 1px solid var(--saa-line); border-radius: 10px; overflow: hidden; }
.saa-accordion__item + .saa-accordion__item { border-top: 1px solid var(--saa-line); }
.saa-accordion__q {
	width: 100%; text-align: left; background: #fff; border: 0; cursor: pointer;
	padding: 1rem 1.2rem; font: inherit; font-weight: 700; color: var(--saa-ink);
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.saa-accordion__q span { color: var(--saa-accent); font-weight: 400; font-size: 1.3rem; line-height: 1; }
.saa-accordion__item.is-open .saa-accordion__q span { transform: rotate(45deg); }
.saa-accordion__a { display: none; padding: 0 1.2rem 1.1rem; color: var(--saa-muted); line-height: 1.65; }
.saa-accordion__item.is-open .saa-accordion__a { display: block; }

/* ---------- Sermons ---------- */
.saa-sermon__embed { position: relative; padding-top: 56.25%; border-radius: 8px; overflow: hidden; margin-bottom: .8rem; }
.saa-sermon__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
