/* ═══════════════════════════════════════════════════════════
   YWI SUPPORT A SISTER — brand tokens matching the real, live
   You're Worth It design system exactly (same variables, same
   values as ywi-dashboard's dashboard.css / ywi-public.css), so
   this never drifts from the rest of the site's look and feel.
═══════════════════════════════════════════════════════════ */
.sas-wrap, .sas-widget {
	--rose: #C77B8A;
	--rose-light: #E7B6BC;
	--rose-deep: #A85D6E;
	--gold: #D9A85C;
	--sage-deep: #5E7A55;
	--sage: #8FA97E;
	--sage-soft: #B7CBA8;
	--sage-pale: #E9F0E1;
	--plum: #2E2433;
	--plum-soft: #6B5D6E;
	--cream: #FBF7EF;
	--white: #FFFFFF;
	--line: rgba(46,36,51,.10);
	--grad: linear-gradient(120deg, var(--rose) 0%, var(--gold) 130%);
	--grad-sage: linear-gradient(120deg, var(--sage-deep) 0%, var(--sage) 100%);
	--grad-dusk: linear-gradient(135deg, var(--rose) 0%, var(--sage) 100%);
	--shadow: 0 6px 24px rgba(46,36,51,.14);
	--shadow-lg: 0 16px 48px rgba(46,36,51,.22);
	--r-sm: 10px; --r-md: 16px; --r-lg: 22px; --r-pill: 999px;
	--fh: 'Fraunces', Georgia, serif;
	--fb: 'Manrope', -apple-system, sans-serif;
	--fs: 'Caveat', cursive;

	font-family: var(--fb);
	color: var(--plum);
	box-sizing: border-box;
	position: relative;
	z-index: 2;
}
.sas-wrap *, .sas-widget *, .sas-wrap *::before, .sas-widget *::before { box-sizing: border-box; }
.sas-wrap button, .sas-widget button { font-family: var(--fb); border: none; cursor: pointer; background: none; }
.sas-wrap input, .sas-wrap select, .sas-wrap textarea { font-family: var(--fb); }
.sas-wrap h1, .sas-wrap h2, .sas-wrap h3, .sas-wrap .sas-heading { font-family: var(--fh); color: var(--plum); }
@media (prefers-reduced-motion: reduce) { .sas-wrap *, .sas-widget * { animation-duration: .001ms !important; transition-duration: .001ms !important; } }

/* ═══════════════════════════════════════════════════════════
   AMBIENT — the exact same meadow-wind + flying-flower + drifting-
   petals + on-load petal-burst system used on /my-dashboard/, so
   Support a Sister's pages feel like part of the same site rather
   than a separate tool bolted on. Fixed to the viewport (not any
   wrapper), sits behind the page content regardless of where the
   shortcode lands. "sas-" prefixed and namespaced so it can never
   collide with ywi-dashboard's own identical system if a page ever
   somehow loads both.
═══════════════════════════════════════════════════════════ */
.sas-petal-overlay { position: fixed; inset: 0; z-index: 50; pointer-events: none; overflow: hidden; }
.sas-burst-petal { position: absolute; top: -40px; width: 14px; height: 18px; opacity: 0; animation: sasBurstFall 1.6s ease-in forwards; }
@keyframes sasBurstFall { 0% { opacity: 0; transform: translateY(0) rotate(0deg); } 12% { opacity: .95; } 100% { opacity: 0; transform: translateY(100vh) rotate(420deg); } }

.sas-dash-flyer { position: fixed; top: 10%; left: -10%; width: 52px; height: 52px; z-index: 1; pointer-events: none; animation: sasFlyAcross 30s linear infinite; }
.sas-dash-flyer svg { width: 100%; height: 100%; animation: sasFlyerSpin 3.2s ease-in-out infinite; }
@keyframes sasFlyAcross { 0% { left: -10%; top: 14%; } 25% { top: 8%; } 50% { left: 52%; top: 18%; } 75% { top: 10%; } 100% { left: 112%; top: 15%; } }
@keyframes sasFlyerSpin { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(10deg); } }
.sas-trail-petal { position: fixed; top: 0; left: 0; width: 10px; height: 14px; z-index: 1; pointer-events: none; opacity: 0; animation: sasTossPetal 3.4s ease-in infinite; }
@keyframes sasTossPetal { 0% { opacity: 0; transform: translate(0,0) rotate(0deg) scale(.6); } 8% { opacity: .8; } 100% { opacity: 0; transform: translate(-60px,200px) rotate(320deg) scale(.85); } }
@media (prefers-reduced-motion: reduce) { .sas-dash-flyer, .sas-trail-petal, .sas-meadow-wind .gb, .sas-meadow-wind .gflower { animation: none !important; } }

.sas-meadow-wind { position: fixed; inset: auto 0 0 0; height: 70vh; pointer-events: none; z-index: 0; overflow: hidden;
	-webkit-mask-image: linear-gradient(to top,#000 0%,#000 6%,rgba(0,0,0,.5) 26%,rgba(0,0,0,.16) 46%,transparent 60%);
	mask-image: linear-gradient(to top,#000 0%,#000 6%,rgba(0,0,0,.5) 26%,rgba(0,0,0,.16) 46%,transparent 60%); }
.sas-meadow-wind svg { position: absolute; bottom: -2%; left: 50%; transform: translateX(-50%); width: min(1700px, 220vw); height: auto; }
.sas-meadow-wind .gb { transform-box: fill-box; animation-name: sasGsway; animation-timing-function: ease-in-out; animation-iteration-count: infinite; }
@keyframes sasGsway { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(6deg); } }
.sas-meadow-wind .gb.sway1 { animation-name: sasGsway1; } @keyframes sasGsway1 { 0%,100%{transform:rotate(-6.5deg);} 50%{transform:rotate(4.5deg);} }
.sas-meadow-wind .gb.sway2 { animation-name: sasGsway2; } @keyframes sasGsway2 { 0%,100%{transform:rotate(-4deg);} 50%{transform:rotate(7deg);} }
.sas-meadow-wind .gb.sway3 { animation-name: sasGsway3; } @keyframes sasGsway3 { 0%,100%{transform:rotate(-7deg);} 50%{transform:rotate(3.5deg);} }
.sas-meadow-wind .gb.sway4 { animation-name: sasGsway4; } @keyframes sasGsway4 { 0%,100%{transform:rotate(-3.5deg);} 50%{transform:rotate(6.5deg);} }
.sas-meadow-wind .gb.sway5 { animation-name: sasGsway5; } @keyframes sasGsway5 { 0%,100%{transform:rotate(-5.5deg);} 50%{transform:rotate(5deg);} }
.sas-meadow-wind .gflower { transform-box: fill-box; animation-timing-function: ease-in-out; animation-iteration-count: infinite; }
.sas-meadow-wind .fsway0 { animation-name: sasFsway0; } @keyframes sasFsway0 { 0%,100%{transform:rotate(-2deg);} 50%{transform:rotate(2.4deg);} }
.sas-meadow-wind .fsway1 { animation-name: sasFsway1; } @keyframes sasFsway1 { 0%,100%{transform:rotate(-3deg);} 50%{transform:rotate(1.6deg);} }
.sas-meadow-wind .fsway2 { animation-name: sasFsway2; } @keyframes sasFsway2 { 0%,100%{transform:rotate(-1.6deg);} 50%{transform:rotate(3deg);} }
.sas-meadow-wind .fsway3 { animation-name: sasFsway3; } @keyframes sasFsway3 { 0%,100%{transform:rotate(-2.6deg);} 50%{transform:rotate(2deg);} }
@media (max-width: 640px) {
	.sas-meadow-wind { height: 50vh;
		-webkit-mask-image: linear-gradient(to top,#000 0%,#000 8%,rgba(0,0,0,.45) 34%,transparent 64%);
		mask-image: linear-gradient(to top,#000 0%,#000 8%,rgba(0,0,0,.45) 34%,transparent 64%); }
	.sas-dash-flyer { width: 40px; height: 40px; }
}

/* ─── LAYOUT SHELL ───
   overflow:hidden + max-width:100% keep the card (and everything ambient
   drawn behind/around it) clipped to its own box — this is what stops the
   background art from ever bleeding past the card edge, on any viewport. */
.sas-wrap {
	position: relative;
	max-width: 1100px;
	width: 100%;
	margin: 0 auto;
	background: var(--cream);
	border-radius: var(--r-lg);
	overflow: hidden;
	box-shadow: var(--shadow);
	border: 1px solid var(--line);
}
html body { overflow-x: hidden; }

/* ─── HUD ─── */
.sas-hud {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 18px;
	background: linear-gradient(180deg, var(--plum), #3a2e40);
	color: var(--cream);
}
.sas-hud-avatar {
	width: 42px; height: 42px; border-radius: 50%;
	background: var(--grad);
	display: flex; align-items: center; justify-content: center;
	font-size: 20px; flex-shrink: 0;
	box-shadow: 0 0 0 2px rgba(255,255,255,.15);
	animation: sasBloom 3.2s ease-in-out infinite;
}
@keyframes sasBloom { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
.sas-hud-info { flex: 1; min-width: 0; }
.sas-hud-name { font-family: var(--fh); font-size: 15px; font-weight: 600; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sas-hud-rank { font-size: 11px; color: rgba(251,247,239,.65); letter-spacing: .3px; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sas-hud-xp { width: 130px; flex-shrink: 0; }
.sas-hud-xp-num { font-family: var(--fh); font-size: 14px; font-weight: 600; color: var(--gold); text-align: right; margin-bottom: 4px; }

.sas-bar-track { height: 6px; background: rgba(255,255,255,.14); border-radius: var(--r-pill); overflow: hidden; }
.sas-widget .sas-bar-track { background: var(--sage-pale); }
.sas-bar-fill { height: 100%; border-radius: var(--r-pill); background: var(--grad); transition: width .7s cubic-bezier(.22,1,.36,1); }

/* ─── BUTTONS ─── */
.sas-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	border-radius: var(--r-pill);
	padding: 11px 22px; min-height: 40px;
	font-weight: 700; font-size: 13px;
	text-decoration: none;
	transition: transform .15s ease, box-shadow .15s ease;
	white-space: nowrap;
}
.sas-btn-primary { background: var(--grad); color: var(--white); box-shadow: 0 4px 16px rgba(199,123,138,.4); }
.sas-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(199,123,138,.5); }
.sas-btn-primary:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.sas-btn-outline { background: var(--white); border: 1.5px solid var(--rose); color: var(--rose); }
.sas-btn-outline:hover { background: var(--rose); color: var(--white); }
.sas-btn-ghost { background: rgba(255,255,255,.08); color: var(--cream); border: 1px solid rgba(255,255,255,.2); }
.sas-btn-sm { padding: 8px 16px; font-size: 12px; }
.sas-btn-full { width: 100%; }

/* ─── TOOLBAR ─── */
.sas-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px 16px; background: var(--white); border-bottom: 1px solid var(--sage-pale); }
.sas-search, .sas-select {
	box-sizing: border-box; height: 40px; line-height: normal;
	-webkit-appearance: none; appearance: none;
}
.sas-search { flex: 1 1 180px; padding: 9px 14px; border-radius: var(--r-pill); border: 1px solid var(--sage-pale); background: var(--cream); font-size: 13px; }
.sas-search:focus { outline: none; border-color: var(--rose); }
.sas-select { padding: 9px 30px 9px 12px; border-radius: var(--r-pill); border: 1px solid var(--sage-pale); background: var(--cream); font-size: 13px; color: var(--plum);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236B5D6E'><path d='M5.5 7.5l4.5 4.5 4.5-4.5z'/></svg>");
	background-repeat: no-repeat; background-position: right 10px center; background-size: 14px;
}
.sas-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.sas-chip {
	flex: 0 0 auto; width: auto; max-width: none;
	padding: 8px 14px; min-height: 36px; border-radius: var(--r-pill); background: var(--cream); border: 1px solid var(--sage-pale);
	color: var(--plum-soft); font-size: 12px; font-weight: 600; cursor: pointer; transition: all .15s; white-space: nowrap;
	display: inline-flex; align-items: center;
}
.sas-chip.active, .sas-chip:hover { background: var(--grad-sage); border-color: var(--sage-deep); color: var(--white); box-shadow: 0 3px 10px rgba(94,122,85,.28); }

/* ─── MAP ─── */
#sasMap { width: 100%; height: 460px; position: relative; background: var(--sage-pale); }
.sas-locate-btn {
	position: absolute; z-index: 500; right: 14px; bottom: 88px;
	width: 42px; height: 42px; border-radius: 50%;
	background: var(--white); box-shadow: var(--shadow);
	font-size: 18px; display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--sage-pale);
}

/* ─── SIGNUP FORM PIN-DROP MAP ─── */
.sas-pin-map { width: 100%; height: 240px; border-radius: var(--r-md); overflow: hidden; background: var(--sage-pale); border: 1px solid var(--sage-pale); }
#sasPinStatus.sas-pin-found, .sas-hint.sas-pin-found { color: var(--sage-deep); font-weight: 600; }
#sasPinStatus.sas-pin-missed, .sas-hint.sas-pin-missed { color: var(--rose); }

/* Leaflet marker override */
.sas-pin { width: 34px; height: 34px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); display: flex; align-items: center; justify-content: center; border: 2px solid var(--white); box-shadow: 0 3px 10px rgba(46,36,51,.35); position: relative; }
.sas-pin span { transform: rotate(45deg); font-size: 15px; }
.sas-pin.flash::after { content:''; position: absolute; inset: -5px; border-radius: 50% 50% 50% 0; border: 2px solid var(--gold); animation: sasPinPulse 1.6s ease-in-out infinite; }
@keyframes sasPinPulse { 0%,100% { opacity: .2; transform: scale(1); } 50% { opacity: .8; transform: scale(1.15); } }
.sas-pin-me { width: 22px; height: 22px; border-radius: 50%; background: var(--grad); border: 3px solid var(--white); box-shadow: 0 0 0 4px rgba(199,123,138,.25); }

.leaflet-popup-content-wrapper { border-radius: var(--r-md); font-family: var(--fb); }
.leaflet-popup-content { margin: 12px 14px; }
.sas-popup-name { font-family: var(--fh); font-size: 15px; color: var(--plum); margin-bottom: 2px; }
.sas-popup-cat { font-size: 10px; letter-spacing: .5px; color: var(--rose); text-transform: uppercase; margin-bottom: 6px; }
.sas-popup-btn { display: block; margin-top: 8px; text-align: center; background: var(--grad); color: #fff; border-radius: var(--r-pill); padding: 7px; font-size: 12px; font-weight: 700; cursor: pointer; }

/* ─── TABS ───
   Redesigned as breathing-room pill buttons (not flush text-underline tabs)
   so they're comfortable, unambiguous tap targets on mobile and don't read
   as "just more pink" next to the toolbar chips above. */
.sas-tabs {
	display: flex; gap: 8px; flex-wrap: nowrap;
	background: var(--white); border-bottom: 1px solid var(--sage-pale);
	padding: 14px 16px; margin-top: 2px;
	box-shadow: inset 0 1px 0 rgba(46,36,51,.04);
	overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.sas-tabs::-webkit-scrollbar { display: none; }
.sas-tab {
	flex: 1 1 auto; min-width: 84px; min-height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 10px 12px; border-radius: var(--r-pill);
	background: var(--sage-pale); border: 1px solid transparent;
	font-size: 12px; font-weight: 700; color: var(--plum-soft);
	white-space: nowrap; transition: all .15s ease;
}
.sas-tab:hover { background: var(--sage-soft); color: var(--plum); }
.sas-tab.active { background: var(--grad-sage); color: var(--white); box-shadow: 0 4px 14px rgba(94,122,85,.32); }

/* ─── PANELS ─── */
.sas-panel { background: var(--white); min-height: 320px; }
.sas-panel-inner { padding: 20px 18px 28px; }

/* ─── SHEET (quest card) ─── */
.sas-sheet-overlay { position: fixed; inset: 0; background: rgba(46,36,51,.5); z-index: 999; }
.sas-sheet {
	position: fixed; z-index: 1000; left: 50%; bottom: 0; transform: translateX(-50%);
	width: 100%; max-width: 480px; max-height: 82vh; overflow-y: auto;
	background: var(--white); border-radius: 22px 22px 0 0;
	padding: 22px 20px 28px; box-shadow: var(--shadow-lg);
}
@media (min-width: 640px) {
	.sas-sheet { bottom: 50%; transform: translate(-50%, 50%); border-radius: var(--r-lg); max-width: 460px; }
}
.sas-sheet-close { position: absolute; top: 14px; right: 16px; font-size: 26px; color: var(--plum-soft); line-height: 1; }

/* ─── QUEST CARD CONTENT ─── */
.sas-q-business { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding-right: 24px; }
.sas-q-logo { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; background: var(--sage-pale); flex-shrink: 0; }
.sas-q-name { font-family: var(--fh); font-size: 18px; }
.sas-q-cat { font-size: 11px; color: var(--rose); text-transform: uppercase; letter-spacing: .5px; }
.sas-q-desc { font-size: 13px; color: var(--plum-soft); margin-bottom: 16px; line-height: 1.5; }
.sas-q-flash { display: inline-flex; align-items: center; gap: 5px; background: var(--sage-pale); color: var(--sage-deep); font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: var(--r-pill); margin-bottom: 12px; }

.sas-quest-item { border: 1px solid var(--sage-pale); border-radius: var(--r-md); padding: 12px 14px; margin-bottom: 10px; }
.sas-quest-item.done { opacity: .55; }
.sas-quest-top { display: flex; align-items: center; gap: 10px; }
.sas-quest-emoji { font-size: 20px; }
.sas-quest-name { font-weight: 700; font-size: 13px; flex: 1; }
.sas-quest-xp { font-family: var(--fh); font-size: 13px; color: var(--gold); font-weight: 600; }
.sas-quest-desc { font-size: 12px; color: var(--plum-soft); margin: 4px 0 8px; }
.sas-quest-action input[type=text], .sas-quest-action input[type=url] { width: 100%; padding: 8px 12px; border-radius: var(--r-sm); border: 1px solid var(--sage-pale); font-size: 13px; margin-bottom: 8px; }
.sas-quest-action { display: none; }
.sas-quest-item.open .sas-quest-action { display: block; }
.sas-quest-btn { width: 100%; padding: 9px; border-radius: var(--r-pill); background: var(--sage-deep); color: #fff; font-weight: 700; font-size: 12px; }
.sas-quest-btn.primary { background: var(--grad); }
.sas-quest-done-tag { font-size: 11px; color: var(--sage-deep); font-weight: 700; }
.sas-quest-pending-tag { font-size: 11px; color: var(--gold); font-weight: 700; }

.sas-gift-note { background: linear-gradient(120deg, rgba(199,123,138,.1), rgba(217,168,92,.1)); border: 1px dashed var(--gold); border-radius: var(--r-md); padding: 12px 14px; font-size: 12px; color: var(--plum-soft); margin-top: 14px; }

/* ─── STAR RATING (Leave a Review, right on the card) ─── */
.sas-star-rate { display: flex; gap: 4px; margin-bottom: 10px; }
.sas-star-rate .star { font-size: 26px; color: var(--sage-pale); cursor: pointer; line-height: 1; transition: color .12s ease, transform .12s ease; }
.sas-star-rate .star:hover { transform: scale(1.12); }
.sas-star-rate .star.on { color: var(--gold); }
.sas-review-text { width: 100%; padding: 10px 12px; border-radius: var(--r-sm); border: 1px solid var(--sage-pale); font-size: 13px; font-family: var(--fb); resize: vertical; margin-bottom: 8px; }

/* ─── SHARE BUTTONS (Advertise Her — real share, not self-report) ─── */
.sas-share-row { display: flex; gap: 8px; flex-wrap: wrap; }
.sas-share-btn { flex: 1; min-width: 90px; padding: 10px 8px; border-radius: var(--r-pill); background: var(--white); border: 1px solid var(--sage-pale); color: var(--plum); font-weight: 700; font-size: 12px; }
.sas-share-btn:hover { border-color: var(--rose); }

/* ─── REVIEWS LIST ─── */
.sas-reviews-section { border-top: 1px solid var(--sage-pale); padding-top: 4px; }
.sas-review-item { padding: 10px 0; border-bottom: 1px solid var(--sage-pale); }
.sas-review-item:last-child { border-bottom: none; }
.sas-review-top { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.sas-review-stars { color: var(--gold); font-size: 13px; letter-spacing: 1px; }
.sas-review-name { font-size: 11px; font-weight: 700; color: var(--plum-soft); }
.sas-review-body { font-size: 12px; color: var(--plum); line-height: 1.5; }

/* ─── BADGES ─── */
.sas-section-title { font-family: var(--fh); font-size: 16px; margin-bottom: 14px; }
.sas-badges-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px,1fr)); gap: 10px; }
.sas-badge-card { text-align: center; padding: 14px 8px; border-radius: var(--r-md); border: 1px solid var(--sage-pale); }
.sas-badge-card.earned { background: linear-gradient(160deg, rgba(199,123,138,.08), rgba(217,168,92,.08)); border-color: var(--gold); }
.sas-badge-card.locked { opacity: .4; filter: grayscale(.6); }
.sas-badge-emoji { font-size: 26px; display: block; margin-bottom: 6px; }
.sas-badge-name { font-size: 11px; font-weight: 700; }
.sas-badge-desc { font-size: 10px; color: var(--plum-soft); margin-top: 3px; }

/* ─── LEADERBOARD ─── */
.sas-lb-row { display: flex; align-items: center; gap: 12px; padding: 10px 4px; border-bottom: 1px solid var(--sage-pale); }
.sas-lb-row.me { background: var(--sage-pale); border-radius: var(--r-sm); padding: 10px; }
.sas-lb-rank { font-family: var(--fh); font-size: 16px; width: 26px; text-align: center; }
.sas-lb-name { flex: 1; font-weight: 700; font-size: 13px; }
.sas-lb-stat { text-align: right; font-size: 11px; color: var(--plum-soft); }
.sas-lb-stat b { color: var(--rose); font-family: var(--fh); font-size: 13px; }

/* ─── REWARDS ─── */
.sas-xp-available { text-align: center; padding: 18px; background: var(--sage-pale); border-radius: var(--r-md); margin-bottom: 18px; }
.sas-xp-available .num { font-family: var(--fh); font-size: 28px; color: var(--sage-deep); }
.sas-reward-card { display: flex; align-items: center; gap: 12px; border: 1px solid var(--sage-pale); border-radius: var(--r-md); padding: 12px 14px; margin-bottom: 10px; }
.sas-reward-info { flex: 1; }
.sas-reward-name { font-weight: 700; font-size: 13px; }
.sas-reward-desc { font-size: 11px; color: var(--plum-soft); }
.sas-reward-cost { font-family: var(--fh); font-size: 13px; color: var(--gold); white-space: nowrap; }

.sas-code-card { display: flex; align-items: center; gap: 10px; border: 1px dashed var(--rose); border-radius: var(--r-md); padding: 10px 12px; margin-bottom: 8px; }
.sas-code-val { font-family: var(--fh); font-weight: 700; letter-spacing: 1px; }
.sas-code-val.used { text-decoration: line-through; color: var(--plum-soft); }
.sas-code-copy { margin-left: auto; font-size: 11px; padding: 6px 12px; }

.sas-redeem-tool { background: var(--cream); border-radius: var(--r-md); padding: 14px; margin-top: 20px; }
.sas-redeem-tool input { width: 100%; padding: 9px 12px; border-radius: var(--r-sm); border: 1px solid var(--sage-pale); margin-bottom: 8px; }

/* ─── MY QUESTS ─── */
.sas-log-row { display: flex; align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--sage-pale); font-size: 12px; }
.sas-log-status { padding: 3px 9px; border-radius: var(--r-pill); font-size: 10px; font-weight: 700; }
.sas-log-status.approved { background: var(--sage-pale); color: var(--sage-deep); }
.sas-log-status.pending { background: rgba(217,168,92,.18); color: #9c7409; }
.sas-log-status.rejected { background: rgba(199,123,138,.15); color: var(--rose); }

/* ─── TOAST / CONFETTI ─── */
.sas-toast {
	position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(20px);
	background: var(--plum); color: var(--cream); padding: 12px 22px; border-radius: var(--r-pill);
	font-size: 13px; font-weight: 600; box-shadow: var(--shadow-lg); z-index: 2000;
	opacity: 0; pointer-events: none; transition: all .3s cubic-bezier(.34,1.56,.64,1);
}
.sas-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.sas-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 2100; overflow: hidden; }
.sas-cp { position: absolute; top: -20px; animation: sasFall linear forwards; }
@keyframes sasFall { to { transform: translateY(110vh) rotate(360deg); opacity: .3; } }

/* ─── EMPTY STATES ─── */
.sas-empty { text-align: center; padding: 30px 16px; color: var(--plum-soft); font-size: 13px; }
.sas-empty a { color: var(--rose); font-weight: 700; }

/* ═══════════════════════════════════════════════════════════
   SIGNUP / BUSINESS DASHBOARD
═══════════════════════════════════════════════════════════ */
.sas-signup-wrap { padding: 26px 22px 32px; }
.sas-signup-tabs { display: flex; gap: 8px; margin-bottom: 22px; background: var(--sage-pale); border-radius: var(--r-pill); padding: 4px; }
.sas-signup-tabs .sas-tab { border-radius: var(--r-pill); border-bottom: none; padding: 10px; min-width: 0; flex: 1 1 0; }
.sas-signup-tabs .sas-tab.active { background: var(--white); box-shadow: var(--shadow); }
@media (max-width: 420px) {
	.sas-signup-tabs .sas-tab { font-size: 11px; padding: 9px 4px; }
}
.sas-sub { color: var(--plum-soft); font-size: 13px; line-height: 1.6; margin-bottom: 20px; max-width: 60ch; }
.sas-form label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 12px; color: var(--plum); }
.sas-form input, .sas-form select, .sas-form textarea { width: 100%; margin-top: 5px; padding: 10px 13px; border-radius: var(--r-sm); border: 1px solid var(--sage-pale); font-size: 13px; background: var(--cream); }
.sas-form-row { display: flex; gap: 10px; }
.sas-form-row label { flex: 1; }
.sas-hint { display: block; font-weight: 400; color: var(--plum-soft); font-size: 11px; margin-top: 4px; }
.sas-form-section { background: var(--sage-pale); border-radius: var(--r-md); padding: 14px 16px 2px; margin: 16px 0; }
.sas-form-section-title { font-family: var(--fh); font-size: 13px; margin-bottom: 10px; }
.sas-form-message { text-align: center; font-size: 13px; margin-top: 10px; }
.sas-back-link { margin-top: 24px; font-size: 13px; }
.sas-back-link a { color: var(--rose); text-decoration: none; font-weight: 700; }
#sasManageLoginNote { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }

.sas-my-business-card { border: 1px solid var(--sage-pale); border-radius: var(--r-md); padding: 16px; margin-bottom: 16px; }
.sas-my-business-top { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.sas-my-business-logo { width: 44px; height: 44px; border-radius: var(--r-sm); object-fit: cover; flex-shrink: 0; background: var(--sage-pale); }
.sas-my-business-name { font-family: var(--fh); font-size: 16px; margin-bottom: 2px; }
.sas-my-business-status { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--sage-deep); }
.sas-my-business-status.pending { color: var(--gold); }
.sas-my-business-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.sas-edit-form-slot { margin: 14px 0; }
.sas-edit-form-slot .sas-form { border-top: 1px dashed var(--sage-pale); padding-top: 14px; }
.sas-edit-msg { font-size: 12px; margin-top: 8px; }
.sas-flash-row { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.sas-flash-row input { flex: 1; min-width: 90px; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--sage-pale); font-size: 12px; }
.sas-flash-active-note { background: var(--sage-pale); color: var(--sage-deep); font-size: 12px; padding: 8px 12px; border-radius: var(--r-sm); margin-top: 8px; }

/* ═══════════════════════════════════════════════════════════
   COMPACT EMBEDDABLE WIDGET
═══════════════════════════════════════════════════════════ */
.sas-widget {
	max-width: 340px; background: var(--white); border-radius: var(--r-lg);
	border: 1px solid rgba(199,123,138,.2); box-shadow: var(--shadow); overflow: hidden;
	font-family: var(--fb);
}
.sas-w-header { display: flex; align-items: center; gap: 10px; padding: 16px 16px 12px; }
.sas-w-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--grad); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.sas-w-header-text { flex: 1; min-width: 0; }
.sas-w-title { font-family: var(--fh); font-size: 14px; color: var(--plum); }
.sas-w-sub { font-size: 11px; color: var(--plum-soft); margin-top: 1px; }
.sas-w-rank { font-size: 10px; font-weight: 700; background: var(--sage-pale); color: var(--sage-deep); padding: 4px 9px; border-radius: var(--r-pill); white-space: nowrap; }
.sas-w-xp { padding: 0 16px 12px; }
.sas-w-xp-top { display: flex; justify-content: space-between; margin-bottom: 6px; }
.sas-w-xp-num { font-family: var(--fh); font-size: 15px; font-weight: 700; color: var(--rose); }
.sas-w-next { font-size: 10px; color: var(--plum-soft); }
.sas-w-stats { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; padding: 0 16px 14px; }
.sas-w-stat { background: var(--cream); border-radius: var(--r-sm); padding: 8px; text-align: center; }
.sas-w-stat b { display: block; font-family: var(--fh); font-size: 15px; color: var(--plum); }
.sas-w-stat span { font-size: 9px; color: var(--plum-soft); text-transform: uppercase; letter-spacing: .3px; }
.sas-widget .sas-btn { margin: 0 16px 16px; width: calc(100% - 32px); }

/* ─── MOBILE ─── */
@media (max-width: 640px) {
	.sas-hud-xp { width: auto; }
	#sasMap { height: 340px; }
	.sas-toolbar { flex-direction: column; align-items: stretch; }
	.sas-toolbar .sas-search,
	.sas-toolbar .sas-select,
	.sas-toolbar .sas-chips,
	.sas-toolbar > .sas-btn { width: 100%; }
	.sas-form-row { flex-direction: column; gap: 0; }
	.sas-tabs { padding: 12px 12px; gap: 6px; }
	.sas-tab { min-width: 64px; min-height: 42px; font-size: 11px; padding: 9px 8px; }
	.sas-locate-btn { bottom: 78px; }
}
@media (max-width: 420px) {
	.sas-hud { padding: 12px 14px; gap: 10px; }
	.sas-hud-avatar { width: 36px; height: 36px; font-size: 17px; }
	#sasMap { height: 260px; }
	.sas-locate-btn { bottom: 72px; width: 40px; height: 40px; font-size: 16px; }
	.sas-tabs { padding: 10px 10px; gap: 5px; }
	.sas-tab { min-width: 54px; min-height: 40px; padding: 8px 5px; font-size: 10.5px; }
}

/* ═══════════════════════════════════════════════════════════
   v1.11.0 — LISTING DETAILS, BUSINESS PAGES, DIRECTORY
═══════════════════════════════════════════════════════════ */

/* The [hidden] attribute must always win. Several buttons and links here
   are shown/hidden by script via .hidden, but a class that sets
   display:inline-flex outranks the browser's own [hidden] rule. */
.sas-wrap [hidden], .sas-widget [hidden] { display: none !important; }

.sas-muted { color: var(--plum-soft); }
.sas-stars { color: var(--gold); letter-spacing: 1px; }
.sas-stars-off { opacity: .25; }
.sas-l-norating { font-size: 12px; color: var(--plum-soft); }
.sas-l-count { font-size: 12px; color: var(--plum-soft); font-weight: 600; }
.sas-q-rating { font-size: 12px; margin-top: 3px; }

/* ─── Details block inside the map's business card ─── */
.sas-info-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.sas-info-btn {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 9px 14px; min-height: 38px; border-radius: var(--r-pill);
	background: var(--white); border: 1.5px solid var(--rose); color: var(--rose);
	font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap;
}
.sas-info-btn:hover { background: var(--rose); color: var(--white); }
.sas-info-btn.primary { background: var(--grad); border-color: transparent; color: var(--white); box-shadow: 0 4px 14px rgba(199,123,138,.35); }
.sas-info-rows { border: 1px solid var(--sage-pale); border-radius: var(--r-md); padding: 4px 12px; margin-bottom: 14px; background: var(--cream); }
.sas-info-row { display: flex; gap: 10px; padding: 8px 0; font-size: 12.5px; line-height: 1.45; border-bottom: 1px solid var(--sage-pale); word-break: break-word; }
.sas-info-row:last-child { border-bottom: none; }
.sas-info-row > span:first-child { flex-shrink: 0; width: 18px; text-align: center; }
.sas-info-row a { color: var(--rose-deep); font-weight: 600; text-decoration: none; }
.sas-info-row a:hover { text-decoration: underline; }
.sas-info-row.muted { color: var(--plum-soft); }
.sas-photo-strip { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 14px; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
.sas-photo-strip a { flex: 0 0 auto; }
.sas-photo-strip img { width: 84px; height: 84px; object-fit: cover; border-radius: var(--r-sm); display: block; background: var(--sage-pale); }
.sas-sheet-links { display: grid; gap: 8px; margin-bottom: 6px; }
.sas-sheet-links .sas-btn { white-space: normal; text-align: center; }

.sas-teaser { border: 1px dashed var(--gold); border-radius: var(--r-md); padding: 14px; margin-top: 16px; background: linear-gradient(120deg, rgba(199,123,138,.06), rgba(217,168,92,.08)); }
.sas-teaser-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 13px; }
.sas-teaser-row .n { flex: 1; font-weight: 600; }
.sas-teaser-row .xp { font-family: var(--fh); color: var(--gold); font-weight: 600; }

.sas-list-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }

/* ─── Directory cards (List tab on the map + the [sas_directory] page) ─── */
.sas-dir-wrap { padding: 26px 22px 30px; }
.sas-dir-head { margin-bottom: 8px; }
.sas-dir-wrap .sas-toolbar { border: 1px solid var(--sage-pale); border-radius: var(--r-md); margin-bottom: 12px; }
.sas-dir-chips { margin-bottom: 18px; }
.sas-dir-pages { justify-content: center; margin: 20px 0 6px; }
.sas-dir-cta { text-align: center; margin: 18px 0 0; }
.sas-dir-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.sas-dir-card { display: flex; gap: 12px; border: 1px solid var(--sage-pale); border-radius: var(--r-md); padding: 12px; background: var(--white); transition: box-shadow .15s ease, transform .15s ease; }
.sas-dir-card:hover { box-shadow: var(--shadow); transform: translateY(-1px); }
.sas-dir-thumb { flex: 0 0 76px; width: 76px; height: 76px; border-radius: var(--r-md); background: var(--sage-pale); display: flex; align-items: center; justify-content: center; overflow: hidden; text-decoration: none; }
.sas-dir-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sas-dir-emoji { font-size: 30px; }
.sas-dir-body { flex: 1; min-width: 0; }
.sas-dir-cat { font-size: 10px; letter-spacing: .5px; text-transform: uppercase; color: var(--rose); font-weight: 700; }
.sas-dir-body h3 { font-family: var(--fh); font-size: 16px; margin: 2px 0 4px; line-height: 1.25; }
.sas-dir-body h3 a { color: var(--plum); text-decoration: none; }
.sas-dir-body h3 a:hover { color: var(--rose-deep); }
.sas-dir-loc { font-size: 12px; color: var(--plum-soft); }
.sas-dir-dist { color: var(--sage-deep); font-weight: 700; margin-left: 4px; }
.sas-dir-rating { font-size: 12px; margin: 4px 0; }
.sas-dir-body p { font-size: 12px; color: var(--plum-soft); line-height: 1.5; margin: 4px 0 8px; }
.sas-dir-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.sas-dir-actions .sas-btn { padding: 7px 12px; min-height: 34px; font-size: 11.5px; }

/* ─── Business's own page ─── */
body.sas-listing-page { margin: 0; background: #FBF7EF; }
.sas-l-outer { position: relative; z-index: 2; padding: 20px 14px 48px; }
.sas-listing { max-width: 1040px; padding-bottom: 8px; }
.sas-l-nav { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 14px 22px; background: linear-gradient(180deg, var(--plum), #3a2e40); }
.sas-l-back, .sas-l-navlink { color: var(--cream); text-decoration: none; font-size: 13px; font-weight: 700; }
.sas-l-back:hover, .sas-l-navlink:hover { color: var(--gold); }
.sas-l-spacer { flex: 1; }
.sas-l-owner { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 12px 22px; background: var(--sage-pale); color: var(--sage-deep); font-size: 13px; font-weight: 700; }

.sas-l-head { display: flex; align-items: center; gap: 18px; padding: 26px 22px 8px; }
.sas-l-logo { flex: 0 0 96px; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--sage-pale); border: 3px solid var(--white); box-shadow: var(--shadow); display: flex; align-items: center; justify-content: center; font-size: 40px; }
.sas-l-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sas-l-title { min-width: 0; }
.sas-l-cat { font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: var(--rose); font-weight: 700; }
.sas-listing .sas-l-title h1 { font-family: var(--fh); font-size: clamp(22px, 4.2vw, 32px); line-height: 1.15; margin: 4px 0 8px; color: var(--plum); font-weight: 600; }
.sas-l-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: 13px; color: var(--plum-soft); }
.sas-l-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 22px 4px; }
.sas-l-actions .sas-btn { min-height: 42px; }

.sas-l-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 18px; padding: 16px 22px 8px; align-items: start; }
.sas-l-main, .sas-l-side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.sas-l-card { background: var(--white); border: 1px solid var(--sage-pale); border-radius: var(--r-md); padding: 18px 18px 16px; box-shadow: 0 2px 10px rgba(46,36,51,.05); }
.sas-listing .sas-l-card h2 { font-family: var(--fh); font-size: 17px; margin: 0 0 12px; color: var(--plum); font-weight: 600; }
.sas-l-about { font-size: 14px; line-height: 1.7; color: var(--plum); margin: 0; word-break: break-word; }
.sas-l-about.sas-muted { color: var(--plum-soft); }

.sas-l-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.sas-l-photo { display: block; aspect-ratio: 1 / 1; border-radius: var(--r-sm); overflow: hidden; background: var(--sage-pale); }
.sas-l-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.sas-l-photo:hover img { transform: scale(1.05); }

.sas-l-row { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--sage-pale); }
.sas-l-row:first-of-type { padding-top: 0; }
.sas-l-ico { flex: 0 0 22px; text-align: center; font-size: 16px; line-height: 1.4; }
.sas-l-lbl { font-size: 10px; letter-spacing: .5px; text-transform: uppercase; color: var(--plum-soft); font-weight: 700; }
.sas-l-val { font-size: 13.5px; line-height: 1.5; word-break: break-word; }
.sas-l-val a, .sas-l-links a { color: var(--rose-deep); font-weight: 600; text-decoration: none; }
.sas-l-val a:hover, .sas-l-links a:hover { text-decoration: underline; }
.sas-l-links { font-size: 12px; margin-top: 3px; }
.sas-l-map { width: 100%; height: 210px; border-radius: var(--r-md); overflow: hidden; background: var(--sage-pale); margin-top: 14px; position: relative; z-index: 0; }
.sas-l-copy { display: flex; gap: 8px; margin-top: 12px; }
.sas-l-copy input { flex: 1; min-width: 0; padding: 9px 12px; border-radius: var(--r-sm); border: 1px solid var(--sage-pale); background: var(--cream); font-size: 12px; color: var(--plum-soft); }
.sas-l-foot { text-align: center; font-size: 12px; color: var(--plum-soft); padding: 14px 22px 20px; margin: 0; }
.sas-l-foot a { color: var(--rose-deep); font-weight: 700; text-decoration: none; }

.sas-review-date { margin-left: auto; font-size: 11px; color: var(--plum-soft); }
.sas-review-body { font-size: 13px; line-height: 1.6; }
.sas-review-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: var(--sage-pale); border-radius: var(--r-md); padding: 12px 14px; font-size: 13px; margin-bottom: 12px; }
.sas-review-cta-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.sas-review-done { background: var(--sage-pale); color: var(--sage-deep); border-radius: var(--r-md); padding: 12px 14px; font-size: 13px; font-weight: 700; margin-bottom: 12px; }
.sas-review-form { border: 1px solid var(--sage-pale); background: var(--cream); border-radius: var(--r-md); padding: 14px; margin-bottom: 14px; }
.sas-review-form .sas-btn { min-width: 160px; }

/* Photo lightbox (outside the page card, so it uses plain colours) */
.sas-lightbox { position: fixed; inset: 0; z-index: 100000; background: rgba(20,14,24,.92); display: flex; align-items: center; justify-content: center; padding: 20px; }
.sas-lightbox[hidden] { display: none !important; }
.sas-lightbox img { max-width: 100%; max-height: 88vh; border-radius: 10px; box-shadow: 0 10px 50px rgba(0,0,0,.5); }
.sas-lightbox button { position: absolute; background: rgba(255,255,255,.14); color: #fff; border: none; cursor: pointer; border-radius: 50%; width: 44px; height: 44px; font-size: 26px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.sas-lightbox button:hover { background: rgba(255,255,255,.28); }
.sas-lightbox button[hidden] { display: none !important; }
.sas-lightbox-close { top: 16px; right: 16px; }
.sas-lightbox-nav.prev { left: 14px; top: 50%; transform: translateY(-50%); }
.sas-lightbox-nav.next { right: 14px; top: 50%; transform: translateY(-50%); }

/* ─── "My Business Dashboard": photo picker in the edit form ─── */
.sas-edit-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 10px; margin-bottom: 12px; }
.sas-edit-photo { display: block; margin: 0 !important; font-weight: 600 !important; font-size: 11px !important; }
.sas-edit-photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--r-sm); display: block; margin-bottom: 4px; }
.sas-edit-photo input { width: auto !important; margin: 0 4px 0 0 !important; display: inline-block; }

/* ─── Small screens ─── */
@media (max-width: 860px) {
	.sas-l-grid { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
	/* Let the two columns dissolve so every card can be ordered on its own:
	   about → how to reach her → earn XP → photos → reviews → share. */
	.sas-l-main, .sas-l-side { display: contents; }
	#sasLAbout { order: 1; }
	.sas-l-contact { order: 2; }
	#sasLQuestsCard { order: 3; }
	#sasLPhotos { order: 4; }
	#sasLReviews { order: 5; }
	#sasLShare { order: 6; }
}
@media (max-width: 640px) {
	.sas-l-outer { padding: 10px 8px 40px; }
	.sas-l-nav, .sas-l-owner { padding: 12px 14px; }
	.sas-l-head { padding: 20px 14px 4px; gap: 14px; align-items: flex-start; }
	.sas-l-logo { flex-basis: 72px; width: 72px; height: 72px; font-size: 30px; }
	.sas-l-actions { padding: 12px 14px 2px; }
	.sas-l-actions .sas-btn { flex: 1 1 calc(50% - 8px); padding: 10px 12px; }
	.sas-l-grid { padding: 14px 14px 6px; }
	.sas-dir-wrap { padding: 20px 14px 24px; }
	.sas-dir-grid { grid-template-columns: 1fr; }
	.sas-l-copy { flex-direction: column; }
}

/* ─── Buttons keep their designed look on real <button> elements ───
   The plugin's own reset (.sas-wrap button { background: none; border: none })
   is MORE specific than the plain .sas-btn-* classes, and most themes and
   Elementor kits style <button> as well — so on a <button> the gradient and
   the outline were being lost or replaced by whatever the theme uses (the
   "too much pink" look). These restate the intended styles with enough
   weight to always win, so a button looks the same as its link twin. */
.sas-wrap button.sas-btn-primary { background: var(--grad); color: var(--white); border: 0; box-shadow: 0 4px 16px rgba(199,123,138,.4); }
.sas-wrap button.sas-btn-primary:hover:not(:disabled) { background: var(--grad); color: var(--white); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(199,123,138,.5); }
.sas-wrap button.sas-btn-primary:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.sas-wrap button.sas-btn-outline { background: var(--white); color: var(--rose); border: 1.5px solid var(--rose); }
.sas-wrap button.sas-btn-outline:hover { background: var(--rose); color: var(--white); }
.sas-wrap button.sas-share-btn, .sas-wrap a.sas-share-btn { background: var(--white); color: var(--plum); border: 1px solid var(--sage-pale); }
.sas-wrap button.sas-share-btn:hover, .sas-wrap a.sas-share-btn:hover { background: var(--white); color: var(--plum); border-color: var(--rose); }
.sas-wrap a.sas-btn-primary, .sas-wrap a.sas-btn-primary:hover { color: var(--white); }
.sas-wrap a.sas-btn-outline { color: var(--rose); }
.sas-wrap a.sas-btn-outline:hover { color: var(--white); }
.sas-wrap .sas-info-btn { text-decoration: none; }
.sas-wrap a.sas-info-btn { color: var(--rose); }
.sas-wrap a.sas-info-btn:hover { color: var(--white); }
.sas-wrap a.sas-info-btn.primary, .sas-wrap a.sas-info-btn.primary:hover { color: var(--white); }
.sas-lightbox button { background: rgba(255,255,255,.14) !important; color: #fff !important; border: 0 !important; }
.sas-lightbox button:hover { background: rgba(255,255,255,.28) !important; }

/* ═══════════════════════════════════════════════════════════
   v1.12.0 — LISTING BADGES (added to listings by add-on plugins)
═══════════════════════════════════════════════════════════ */
.sas-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 4px; }
.sas-badge-link { text-decoration: none; }
.sas-badge {
	display: inline-flex; align-items: center; gap: 5px; position: relative; overflow: hidden;
	padding: 4px 11px; border-radius: var(--r-pill); font-size: 11px; font-weight: 800; letter-spacing: .3px; white-space: nowrap;
	background: var(--sage-pale); color: var(--sage-deep);
}
.sas-badge-spotted, .sas-badge-spotlight {
	background: linear-gradient(120deg, #3b2c45, #5b3a55); color: #FFE6A8; box-shadow: 0 2px 10px rgba(46,36,51,.25);
}
.sas-badge-spotlight { background: linear-gradient(120deg, #C08A3E, #D9A85C); color: #2E2433; }
.sas-badge-spotted::after, .sas-badge-spotlight::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
	transform: translateX(-120%); animation: sasBadgeShine 3.8s ease-in-out infinite;
}
@keyframes sasBadgeShine { 0%, 55% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
.sas-badge-detail { font-size: 12px; color: var(--plum-soft); margin: 2px 0 6px; line-height: 1.4; }
.sas-pin.badged { box-shadow: 0 0 0 3px rgba(217,168,92,.9), 0 3px 10px rgba(46,36,51,.35); }
.sas-pin.badged::before { content: '✨'; position: absolute; top: -12px; right: -6px; font-size: 13px; transform: rotate(45deg); animation: sasTwinkle 1.8s ease-in-out infinite; }
@keyframes sasTwinkle { 0%, 100% { opacity: .45; transform: rotate(45deg) scale(.85); } 50% { opacity: 1; transform: rotate(45deg) scale(1.2); } }
.sas-badge-chips { margin-top: 2px; }
.sas-chip-badge { background: linear-gradient(120deg, #3b2c45, #5b3a55) !important; color: #FFE6A8 !important; border-color: transparent !important; }
.sas-chip-badge.active { box-shadow: 0 0 0 2px var(--gold), 0 3px 12px rgba(46,36,51,.3); }
.sas-sheet-cta { display: block; text-align: center; margin: 12px 0 2px; font-size: 12.5px; font-weight: 800; color: var(--rose-deep); text-decoration: none; }
.sas-sheet-cta:hover { text-decoration: underline; }
.sas-l-cta { text-align: center; margin: 4px 22px 0; }
@media (prefers-reduced-motion: reduce) {
	.sas-badge-spotted::after, .sas-badge-spotlight::after, .sas-pin.badged::before { animation: none; }
}


/* ── v1.13.0: add-on buttons ("Claim your listing") and the owner's private panel ── */
.sas-actions-x { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 10px 0 4px; }
.sas-actions-x .sas-action { text-decoration: none; }
.sas-action-note { font-size: 12px; opacity: .8; line-height: 1.35; }
.sas-l-owner-panel { margin: 0 0 14px; }

/* v1.15.0: marker read by the self-heal check (SAS_Cache_Guard). Keep this as the LAST rule — it only reads 1 when the whole file loaded. */
html { --sas-css-ok: 1; }
