/* Aas Paas Directory — mobile-first, works with most themes and RTL */
:root {
	--ap-main: #0f766e;
	--ap-accent: #f97316;
	--ap-bg: #ffffff;
	--ap-soft: #f1f5f4;
	--ap-text: #1f2937;
	--ap-muted: #6b7280;
	--ap-line: #e5e7eb;
	--ap-radius: 12px;
}

.ap-form, .ap-directory, .ap-dash, .ap-single { color: var(--ap-text); max-width: 760px; margin-inline: auto; }
.ap-form label { display: block; font-weight: 600; font-size: .95rem; }
.ap-form input[type=text], .ap-form input[type=email], .ap-form input[type=password],
.ap-form input[type=tel], .ap-form input[type=time], .ap-form input[type=search],
.ap-form select, .ap-form textarea, .ap-filter select, .ap-filter input[type=search] {
	display: block; width: 100%; box-sizing: border-box; margin-top: .3rem; padding: .7rem .8rem;
	border: 1px solid var(--ap-line); border-radius: 10px; font-size: 1rem; background: var(--ap-bg);
}
.ap-form .ap-inline, .ap-filter .ap-inline { display: inline-flex; align-items: center; gap: .4rem; font-weight: 500; margin-inline-end: 1rem; }
.ap-form .ap-inline input, .ap-filter .ap-inline input { width: auto; margin: 0; }
.ap-type { border: 1px solid var(--ap-line); border-radius: 10px; padding: .6rem .9rem; margin-bottom: 1rem; }
.ap-type label { display: inline-flex; gap: .4rem; margin-inline-end: 1.2rem; font-weight: 500; }
.ap-row { display: flex; gap: .8rem; }
.ap-row label { flex: 1; }
.ap-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.ap-resend { margin-top: 2rem; padding-top: 1rem; border-top: 1px dashed var(--ap-line); }

.ap-btn {
	display: inline-block; padding: .65rem 1.1rem; border: 1px solid var(--ap-main); border-radius: 999px;
	background: transparent; color: var(--ap-main); font-weight: 600; text-decoration: none; cursor: pointer; font-size: .95rem; line-height: 1.2;
}
.ap-btn.ap-primary, .ap-btn.ap-call { background: var(--ap-main); color: #fff; }
.ap-btn.ap-wa { background: #25d366; border-color: #25d366; color: #fff; }
.ap-btn:hover { opacity: .9; }

.ap-notice { padding: .8rem 1rem; border-radius: 10px; margin-bottom: 1rem; font-weight: 500; }
.ap-ok { background: #ecfdf5; color: #065f46; }
.ap-err { background: #fef2f2; color: #991b1b; }
.ap-note { color: var(--ap-muted); font-size: .9rem; }

.ap-filter { display: grid; gap: .6rem; margin-bottom: 1rem; padding: 1rem; background: var(--ap-soft); border-radius: var(--ap-radius); }
.ap-chips { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .4rem; margin-bottom: 1rem; }
.ap-chip { white-space: nowrap; padding: .4rem .9rem; border: 1px solid var(--ap-line); border-radius: 999px; text-decoration: none; color: var(--ap-text); font-size: .9rem; }
.ap-chip.is-active { background: var(--ap-main); color: #fff; border-color: var(--ap-main); }

.ap-grid { display: grid; gap: 1rem; }
.ap-card { display: flex; gap: .9rem; padding: .9rem; border: 1px solid var(--ap-line); border-radius: var(--ap-radius); background: var(--ap-bg); }
.ap-thumb { flex: 0 0 96px; }
.ap-thumb img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; display: block; }
.ap-card-body { flex: 1; min-width: 0; }
.ap-card h3 { margin: 0 0 .2rem; font-size: 1.1rem; }
.ap-card h3 a { text-decoration: none; color: inherit; }
.ap-meta { margin: 0 0 .2rem; color: var(--ap-muted); font-size: .88rem; }

.ap-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: .4rem 0; }
.ap-badge { display: inline-block; padding: .15rem .55rem; border-radius: 999px; background: var(--ap-soft); color: var(--ap-text); font-size: .78rem; font-weight: 600; }
.ap-verified { background: #dbeafe; color: #1e40af; }
.ap-featured { background: #ffedd5; color: #c2410c; }
.ap-open { background: #dcfce7; color: #166534; }
.ap-closed { background: #fee2e2; color: #991b1b; }

.ap-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .4rem; }
.ap-pager { text-align: center; margin-top: 1.2rem; }
.ap-details { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.ap-details th, .ap-details td { padding: .5rem .6rem; border-bottom: 1px solid var(--ap-line); text-align: start; }
.ap-details th { width: 32%; color: var(--ap-muted); font-weight: 600; }
.ap-mylist { list-style: none; padding: 0; }
.ap-mylist li { padding: .7rem 0; border-bottom: 1px solid var(--ap-line); }

@media (min-width: 700px) {
	.ap-filter { grid-template-columns: 1fr 1fr; }
	.ap-filter input[type=search] { grid-column: 1 / -1; }
	.ap-grid { grid-template-columns: 1fr 1fr; }
}

/* v0.2 additions */
.ap-btn.ap-sm { padding: .4rem .8rem; font-size: .85rem; }
.ap-maplink { color: var(--ap-main); text-decoration: none; }
.ap-maplink:hover { text-decoration: underline; }
.ap-extras, .ap-map { border: 1px solid var(--ap-line); border-radius: 10px; padding: .6rem .9rem; margin: 0 0 1rem; }
.ap-extras legend, .ap-map legend { font-weight: 600; padding: 0 .3rem; }
.ap-extra { display: grid; gap: .4rem; margin-bottom: .6rem; }
.ap-extra input, .ap-extra select { margin-top: 0 !important; }
.ap-services { white-space: normal; line-height: 1.7; }
@media (min-width: 700px) {
	.ap-extra { grid-template-columns: 1fr 1fr 1fr; }
}

/* v0.3 additions */
.ap-more { border: 1px solid var(--ap-line); border-radius: 10px; padding: .5rem .9rem; margin: 0 0 1rem; }
.ap-more summary { cursor: pointer; font-weight: 600; color: var(--ap-main); padding: .3rem 0; }
.ap-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin: .4rem 0; }
.ap-tag { padding: .15rem .6rem; border: 1px solid var(--ap-line); border-radius: 999px; font-size: .8rem; background: var(--ap-bg); }

/* v0.4 additions: deals and holiday mode */
.ap-deal { margin: .5rem 0; padding: .55rem .8rem; border-radius: 10px; background: #fff7ed; border: 1px dashed var(--ap-accent); font-size: .95rem; }
.ap-deal-tag { display: inline-block; padding: .1rem .5rem; border-radius: 999px; background: var(--ap-accent); color: #fff; font-size: .75rem; font-weight: 700; }
.ap-deal-price { color: #c2410c; font-weight: 700; }
.ap-deal del { color: var(--ap-muted); font-size: .85rem; }
.ap-deal p { margin: .5rem 0 0; }
.ap-holiday-note { margin: 0; padding: .5rem .8rem; border-radius: 10px; background: #fef2f2; color: #991b1b; font-size: .9rem; }
.ap-box { border: 1px solid var(--ap-line); border-radius: var(--ap-radius); padding: .8rem 1rem; margin-bottom: 1.2rem; }
.ap-box h4 { margin-top: 0; }

/* v0.5: card layout, verified corner, favorites, stars, tags, Get Deal */
.ap-card { position: relative; flex-direction: row; align-items: flex-start; }
.ap-side { flex: 0 0 112px; width: 112px; }
.ap-picwrap { position: relative; }
.ap-thumb { display: block; flex: none; width: 112px; height: 112px; border-radius: 12px; overflow: hidden; }
.ap-thumb img { width: 112px; height: 112px; object-fit: cover; border-radius: 12px; display: block; }
.ap-noimg { display: flex; align-items: center; justify-content: center; background: var(--ap-soft); text-decoration: none; }
.ap-noimg span { font-size: 2.6rem; line-height: 1; }
.ap-under { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .45rem; align-items: center; }
.ap-time { flex-basis: 100%; font-size: .76rem; color: var(--ap-muted); line-height: 1.25; }
.ap-card-body h3 { padding-inline-end: 0; }
.ap-card.has-v .ap-card-body h3 { padding-inline-end: 4.6rem; }
.ap-vcorner { position: absolute; top: .55rem; inset-inline-end: .6rem; padding: .15rem .55rem; border-radius: 999px; background: #dbeafe; color: #1e40af; font-size: .72rem; font-weight: 700; z-index: 2; }
.ap-single { position: relative; }
.ap-single .ap-vcorner { top: 0; inset-inline-end: 0; }
.ap-fav { position: absolute; top: .3rem; inset-inline-start: .3rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: rgba(255,255,255,.92); color: #6b7280; text-align: center; line-height: 1.9rem; font-size: 1.1rem; text-decoration: none; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.ap-fav.is-on { color: #e11d48; }
.ap-single .ap-fav { position: static; display: inline-block; vertical-align: middle; margin-inline-start: .4rem; }
.ap-stars { color: #f59e0b; font-size: .92rem; margin: 0 0 .2rem; }
.ap-stars.is-empty { color: #cbd5e1; }
.ap-star-num { color: var(--ap-muted); font-size: .8rem; }
.ap-tagmore { display: inline-block; }
.ap-tagmore summary { cursor: pointer; list-style: none; padding: .15rem .6rem; border: 1px dashed var(--ap-main); border-radius: 999px; font-size: .8rem; color: var(--ap-main); display: inline-block; }
.ap-tagmore summary::-webkit-details-marker { display: none; }
.ap-tagmore[open] { display: flex; flex-wrap: wrap; gap: .35rem; }
.ap-btn.ap-getdeal { background: var(--ap-accent); border-color: var(--ap-accent); color: #fff; }
.ap-checks { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.ap-svcpick { border: 1px solid var(--ap-line); border-radius: 10px; padding: .6rem .9rem; margin: 0 0 1rem; }
.ap-svcpick legend { font-weight: 600; padding: 0 .3rem; }
.ap-filter .ap-checks { grid-column: 1 / -1; }

/* v0.6: deal slider, rating line, location prompt */
.ap-deals { margin: .5rem 0; }
.ap-slides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; border-radius: 10px; }
.ap-slides::-webkit-scrollbar { display: none; }
.ap-slide { flex: 0 0 100%; min-width: 100%; scroll-snap-align: start; box-sizing: border-box; }
.ap-deals .ap-deal { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: .6rem; height: 100%; box-sizing: border-box; }
.ap-deal-text { flex: 1; min-width: 0; }
.ap-deal .ap-getdeal { flex: 0 0 auto; white-space: nowrap; }
.ap-slider-nav { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: .3rem; }
.ap-arrow { border: 1px solid var(--ap-line); background: var(--ap-bg); color: var(--ap-text); width: 1.7rem; height: 1.7rem; border-radius: 50%; line-height: 1; font-size: 1.1rem; cursor: pointer; padding: 0; }
.ap-dots { display: inline-flex; gap: .3rem; }
.ap-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: #d1d5db; }
.ap-dot.is-on { background: var(--ap-accent); }

.ap-ratingline { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .5rem; margin: 0 0 .25rem; font-size: .88rem; }
.ap-ratingline .ap-cat { color: var(--ap-main); font-weight: 600; }
.ap-ratingline .ap-rate { color: #d97706; font-weight: 700; }
.ap-ratingline .ap-rate.is-empty { color: var(--ap-muted); font-weight: 500; }
.ap-ratingline .ap-reviews { color: var(--ap-muted); }
.ap-ratingline > span + span::before { content: "·"; margin-inline-end: .5rem; color: var(--ap-muted); font-weight: 400; }

.ap-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(15,23,42,.6); }
.ap-modal[hidden] { display: none; }
.ap-modal-box { background: var(--ap-bg); color: var(--ap-text); border-radius: 16px; padding: 1.2rem; width: 100%; max-width: 460px; max-height: 85vh; overflow-y: auto; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.ap-modal-box h3 { margin-top: 0; }
.ap-areagroup { margin-bottom: .8rem; }
.ap-chips-wrap { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.ap-inlineform { display: inline; margin-inline-start: .5rem; }
.ap-more summary { cursor: pointer; }

/* v0.7: icons, bottom deal banner, rating first */
.ap-card { flex-wrap: wrap; }
.ap-card-body { flex: 1 1 0; min-width: 0; }
.ap-card-deal { flex: 0 0 100%; min-width: 100%; box-sizing: border-box; margin-top: .2rem; }
.ap-ico { width: 1em; height: 1em; vertical-align: -.14em; margin-inline-end: .4em; flex: none; }
.ap-btn { display: inline-flex; align-items: center; justify-content: center; }
a.ap-deal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .3rem .8rem; text-decoration: none; color: inherit; cursor: pointer; }
a.ap-deal:hover { background: #ffedd5; }
.ap-deal-cta { display: inline-flex; align-items: center; white-space: nowrap; font-size: .82rem; font-weight: 700; color: #15803d; }
.ap-deal-cta .ap-ico { margin-inline-end: .35em; }
.ap-ratingline .ap-cat { color: var(--ap-main); font-weight: 600; }

/* v0.8: icon-only Call / WhatsApp, tidier deal banner, reviews, jobs, news and alerts */
.ap-actions { gap: .6rem; align-items: center; }
.ap-btn.ap-ibtn { width: 2.9rem; height: 2.9rem; padding: 0; border-radius: 50%; flex: none; }
.ap-btn.ap-ibtn .ap-ico { width: 1.35rem; height: 1.35rem; margin: 0; }

.ap-deal-text { display: flex; flex-direction: column; gap: .15rem; }
.ap-deal-top { display: block; line-height: 1.35; }
.ap-deal-bottom { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; }
.ap-deal-price, .ap-deal del { white-space: nowrap; }
.ap-deal-bottom small { color: var(--ap-muted); }

.ap-topnav { margin: 0 0 .8rem; text-align: end; }

.ap-revbox { margin-top: 1.6rem; }
.ap-revsum .ap-rate { color: #d97706; font-weight: 700; font-size: 1.25rem; }
.ap-revsum .ap-reviews { color: var(--ap-muted); margin-inline-start: .4rem; }
.ap-revlist { list-style: none; padding: 0; margin: 0 0 1rem; }
.ap-revlist li { padding: .7rem 0; border-bottom: 1px solid var(--ap-line); }
.ap-revlist p { margin: .3rem 0 0; }
.ap-revform { border: 1px solid var(--ap-line); border-radius: var(--ap-radius); padding: .8rem 1rem; }
.ap-revform h4 { margin-top: 0; }
.ap-form .ap-starinput { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; margin-bottom: .6rem; }
.ap-starinput input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ap-form .ap-starinput label { display: inline-block; margin: 0; padding: 0 .12rem; font-size: 2.1rem; line-height: 1; color: #d1d5db; cursor: pointer; }
.ap-starinput input:checked ~ label,
.ap-form .ap-starinput label:hover,
.ap-form .ap-starinput label:hover ~ label { color: #f59e0b; }
.ap-starinput input:focus-visible + label { outline: 2px solid var(--ap-main); border-radius: 4px; }

.ap-job-card { border: 1px solid var(--ap-line); border-radius: var(--ap-radius); padding: .9rem; background: var(--ap-bg); }
.ap-job-card h3 { margin: 0 0 .2rem; font-size: 1.1rem; }
.ap-job-card h3 a { text-decoration: none; color: inherit; }
.ap-jobfacts { list-style: none; margin: .4rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .9rem; }
.ap-job-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 0; }
.ap-jobpage .ap-details { margin-top: 0; }

.ap-news { display: grid; gap: .5rem; margin-bottom: 1rem; }
.ap-news-item { position: relative; display: flex; gap: .6rem; padding: .7rem 2.2rem .7rem .8rem; border: 1px solid #bae6fd; background: #f0f9ff; border-radius: 10px; }
.ap-news-item.is-alert { border-color: #fecaca; background: #fef2f2; }
.ap-news-ico { font-size: 1.3rem; line-height: 1.2; }
.ap-news-body { flex: 1; min-width: 0; }
.ap-news-body p { margin: .2rem 0; font-size: .92rem; }
.ap-news-body summary { cursor: pointer; color: var(--ap-main); font-weight: 600; font-size: .88rem; }
.ap-news-full { margin: .3rem 0; font-size: .92rem; }
.ap-news-x { position: absolute; top: .25rem; inset-inline-end: .35rem; border: 0; background: transparent; font-size: 1.5rem; line-height: 1; color: var(--ap-muted); cursor: pointer; padding: .2rem .45rem; }
