/* ==========================================================================
   Sunrays Elementor Addons
   Uses the theme's brand variables when present, with safe fallbacks.
   Per-widget overrides come from Style tab controls as --sr-w-* variables.
   ========================================================================== */

.sr-w {
	--_primary: var(--sr-primary, #a0278f);
	--_primary-dark: var(--sr-primary-dark, #6e1a63);
	--_accent: var(--sr-w-accent, var(--sr-accent, #f39200));
	--_dark: var(--sr-dark, #1f1a2e);
	--_title: var(--sr-w-title, var(--_dark));
	--_text: var(--sr-w-text, var(--sr-text, #4a4658));
	--_muted: var(--sr-muted, #6f6a7d);
	--_soft: var(--sr-soft, #fbf4fa);
	--_line: var(--sr-line, #ece3ee);
	--_radius: var(--sr-radius, 16px);
	--_shadow: var(--sr-shadow, 0 10px 30px rgba(31, 26, 46, .08));
	--_shadow-lg: var(--sr-shadow-lg, 0 20px 50px rgba(31, 26, 46, .14));
	position: relative;
	color: var(--_text);
	font-family: var(--sr-font, "Plus Jakarta Sans", system-ui, sans-serif);
	line-height: 1.7;
	width: 100%;
}
.sr-w *, .sr-w *::before, .sr-w *::after { box-sizing: border-box; }
.sr-w img { max-width: 100%; height: auto; display: block; }
.sr-w h1, .sr-w h2, .sr-w h3, .sr-w h4 { color: var(--_title); font-family: inherit; line-height: 1.25; margin: 0 0 .5em; font-weight: 700; }
.sr-w p { margin: 0 0 1em; }

.sr-w__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: calc(var(--sr-container, 1200px) + 40px);
	margin: 0 auto;
	padding: 0 20px;
}

/* Backgrounds */
.sr-bg-white { background: #fff; }
.sr-bg-soft { background: var(--_soft); }
.sr-bg-gradient { background: linear-gradient(120deg, var(--_primary-dark), var(--_primary)); --_title: var(--sr-w-title, #fff); --_text: var(--sr-w-text, rgba(255, 255, 255, .88)); }
.sr-bg-dark { background: #1a1426; --_title: var(--sr-w-title, #fff); --_text: var(--sr-w-text, rgba(255, 255, 255, .78)); }

/* Spacing */
.sr-pad-none { padding: 0; }
.sr-pad-sm { padding: 40px 0; }
.sr-pad-md { padding: 72px 0; }
.sr-pad-lg { padding: 104px 0; }
@media (max-width: 767px) {
	.sr-pad-md { padding: 52px 0; }
	.sr-pad-lg { padding: 72px 0; }
}

/* Heading */
.sr-w-heading { max-width: 760px; margin: 0 0 44px; }
.sr-w-heading--center { margin-left: auto; margin-right: auto; text-align: center; }
.sr-w-heading__subtitle {
	display: inline-flex; align-items: center; gap: 10px;
	margin: 0 0 12px !important;
	font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--_accent);
}
.sr-w-heading__subtitle::before { content: ""; width: 26px; height: 2px; border-radius: 2px; background: currentColor; }
.sr-w-heading__title { font-size: clamp(1.7rem, 3.2vw, 2.5rem); }
.sr-w-heading__text { font-size: 1.05rem; color: var(--_text); margin: 0; }

/* Buttons */
.sr-w-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 26px; border-radius: 999px; border: 2px solid transparent;
	font-weight: 700; font-size: 15px; line-height: 1.2; text-decoration: none !important;
	cursor: pointer; transition: transform .2s ease, background .2s ease, color .2s ease;
	font-family: inherit;
}
.sr-w-btn:hover { transform: translateY(-2px); }
.sr-w-btn--primary { background: var(--_primary); color: #fff !important; box-shadow: 0 8px 20px rgba(160, 39, 143, .25); }
.sr-w-btn--primary:hover { background: var(--_primary-dark); }
.sr-w-btn--accent { background: var(--_accent); color: #fff !important; }
.sr-w-btn--accent:hover { filter: brightness(.93); }
.sr-w-btn--light { background: #fff; color: var(--_primary-dark) !important; }
.sr-w-btn--light:hover { background: var(--_soft); }
.sr-w-btn--ghost { border-color: rgba(255, 255, 255, .7); color: #fff !important; background: transparent; }
.sr-w-btn--ghost:hover { background: rgba(255, 255, 255, .12); }
.sr-w-btn[disabled] { opacity: .6; cursor: progress; transform: none; }

.sr-w-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.sr-w-actions--center { justify-content: center; }
.sr-w-link { font-weight: 700; color: var(--_primary); text-decoration: none; display: inline-flex; gap: 6px; }
.sr-w-link::after { content: "→"; transition: transform .2s ease; }
.sr-w-link:hover::after { transform: translateX(4px); }

/* Grid */
.sr-grid { display: grid; gap: 26px; grid-template-columns: 1fr; }
@media (min-width: 640px) {
	.sr-grid.sr-cols-2, .sr-grid.sr-cols-3, .sr-grid.sr-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.sr-grid.sr-cols-3 { grid-template-columns: repeat(3, 1fr); }
	.sr-grid.sr-cols-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Rich text */
.sr-rich > :last-child { margin-bottom: 0; }
.sr-rich ul { list-style: none; padding: 0; margin: 0 0 1em; display: grid; gap: 10px; }
.sr-rich ul li { position: relative; padding-left: 30px; }
.sr-rich ul li::before {
	content: ""; position: absolute; left: 0; top: .45em;
	width: 18px; height: 18px; border-radius: 50%;
	background: var(--_soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23a0278f' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center / 12px no-repeat;
	box-shadow: inset 0 0 0 1px var(--_line);
}
.sr-rich ol { padding-left: 1.3em; }
.sr-rich a { color: var(--_primary); }

/* Ticks list */
.sr-ticks { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 12px; }
@media (min-width: 640px) { .sr-ticks { grid-template-columns: 1fr 1fr; } }
.sr-ticks li { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; color: var(--_title); }
.sr-ticks li::before {
	content: "✓"; flex: 0 0 24px; height: 24px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--_primary); color: #fff; font-size: 13px; font-weight: 800; margin-top: 1px;
}

/* ---------- Page banner ---------- */
.sr-w--sunrays-page-banner {
	background: linear-gradient(120deg, var(--_primary-dark), var(--_primary));
	color: #fff; padding: 72px 0 64px; overflow: hidden;
}
.sr-w--sunrays-page-banner.has-image::before {
	content: ""; position: absolute; inset: 0;
	background: var(--sr-banner-img) center / cover no-repeat; opacity: .18; mix-blend-mode: luminosity;
}
.sr-w--sunrays-page-banner::after {
	content: ""; position: absolute; right: -120px; top: -120px; width: 380px; height: 380px; border-radius: 50%;
	background: radial-gradient(circle, rgba(243, 146, 0, .35), transparent 70%);
}
.sr-banner__crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; margin-bottom: 14px; color: rgba(255, 255, 255, .8); }
.sr-banner__crumbs a { color: #fff; text-decoration: none; }
.sr-banner__crumbs a:hover { text-decoration: underline; }
.sr-w .sr-banner__title { color: #fff; font-size: clamp(2rem, 4.5vw, 3.2rem); margin: 0; }
.sr-banner__text { max-width: 680px; margin: 14px 0 0 !important; color: rgba(255, 255, 255, .88); font-size: 1.08rem; }

/* ---------- CTA ---------- */
.sr-cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	padding: 40px; border-radius: 24px;
	background: linear-gradient(120deg, var(--_primary-dark), var(--_primary));
	box-shadow: var(--_shadow-lg); color: #fff; position: relative; overflow: hidden;
}
.sr-cta::after {
	content: ""; position: absolute; right: -60px; bottom: -80px; width: 260px; height: 260px; border-radius: 50%;
	background: radial-gradient(circle, rgba(243, 146, 0, .4), transparent 70%); pointer-events: none;
}
.sr-cta__body { display: flex; gap: 20px; align-items: center; flex: 1 1 420px; position: relative; z-index: 1; }
.sr-cta__icon {
	flex: 0 0 64px; height: 64px; border-radius: 18px; background: rgba(255, 255, 255, .14);
	display: inline-flex; align-items: center; justify-content: center; font-size: 28px; color: #fff;
}
.sr-cta__icon svg { width: 30px; height: 30px; fill: currentColor; }
.sr-w .sr-cta__title { color: #fff; font-size: clamp(1.3rem, 2.4vw, 1.8rem); margin: 0 0 6px; }
.sr-cta__text { margin: 0 !important; color: rgba(255, 255, 255, .85); }
.sr-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; position: relative; z-index: 1; }
@media (max-width: 640px) {
	.sr-cta { padding: 28px 22px; }
	.sr-cta__body { flex-direction: column; align-items: flex-start; }
}

/* ---------- Checklist ---------- */
.sr-checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; counter-reset: sr; }
@media (min-width: 640px) {
	.sr-checklist.sr-cols-2 { grid-template-columns: 1fr 1fr; }
	.sr-checklist.sr-cols-3 { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) { .sr-checklist.sr-cols-3 { grid-template-columns: repeat(3, 1fr); } }
.sr-checklist li {
	position: relative; padding: 16px 18px 16px 58px; border-radius: 14px;
	background: #fff; border: 1px solid var(--_line); font-weight: 600; color: var(--_title);
}
.sr-checklist li::before {
	position: absolute; left: 16px; top: 15px; width: 28px; height: 28px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--_soft); color: var(--_primary); font-weight: 800; font-size: 14px;
}
.sr-checklist--check li::before { content: "✓"; }
.sr-checklist--number li { counter-increment: sr; }
.sr-checklist--number li::before { content: counter(sr); }

/* ---------- Hero slider ---------- */
.sr-hero { position: relative; overflow: hidden; background: var(--_primary-dark); color: #fff; }
.sr-hero__track { position: relative; display: grid; }
.sr-hero__slide {
	grid-area: 1 / 1; position: relative; display: flex; align-items: center;
	min-height: 560px; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s;
}
.sr-hero--md .sr-hero__slide { min-height: 460px; }
.sr-hero--xl .sr-hero__slide { min-height: min(86vh, 760px); }
.sr-hero__slide.is-active { opacity: 1; visibility: visible; }
.sr-hero__bg {
	position: absolute; inset: 0; background: center / cover no-repeat;
	transform: scale(1.06); transition: transform 7s ease;
}
.sr-hero__slide.is-active .sr-hero__bg { transform: scale(1); }
.sr-hero__bg::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(95deg, rgba(58, 12, 52, .92) 0%, rgba(110, 26, 99, .78) 45%, rgba(110, 26, 99, .15) 100%);
}
.sr-hero__content { padding-top: 90px; padding-bottom: 120px; }
.sr-hero__content > * { max-width: 640px; }
.sr-hero__subtitle {
	display: inline-block; margin: 0 0 18px !important; padding: 7px 16px; border-radius: 999px;
	background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .25);
	font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.sr-w .sr-hero__title { color: #fff; font-size: clamp(2.2rem, 5vw, 3.8rem); line-height: 1.1; margin: 0 0 18px; }
.sr-hero__text { font-size: clamp(1rem, 1.6vw, 1.2rem); color: rgba(255, 255, 255, .88); margin: 0 0 30px !important; }
.sr-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.sr-hero__slide.is-active .sr-hero__content > * { animation: sr-rise .8s both; }
.sr-hero__slide.is-active .sr-hero__content > :nth-child(2) { animation-delay: .1s; }
.sr-hero__slide.is-active .sr-hero__content > :nth-child(3) { animation-delay: .2s; }
.sr-hero__slide.is-active .sr-hero__content > :nth-child(4) { animation-delay: .3s; }
@keyframes sr-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

.sr-hero__arrow {
	position: absolute; top: 50%; z-index: 3; transform: translateY(-50%);
	width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35);
	background: rgba(255, 255, 255, .08); color: #fff; font-size: 30px; line-height: 1; cursor: pointer;
	display: none; align-items: center; justify-content: center; padding: 0 0 4px;
	transition: background .2s ease;
}
.sr-hero__arrow:hover { background: var(--_accent); border-color: var(--_accent); }
.sr-hero__arrow--prev { left: 24px; }
.sr-hero__arrow--next { right: 24px; }
@media (min-width: 1280px) { .sr-hero__arrow { display: inline-flex; } }
.sr-hero__dots { position: absolute; left: 0; right: 0; bottom: 84px; z-index: 3; display: flex; justify-content: center; gap: 10px; }
.sr-hero__dot { width: 10px; height: 10px; padding: 0; border-radius: 99px; border: 0; background: rgba(255, 255, 255, .45); cursor: pointer; transition: width .3s ease, background .3s ease; }
.sr-hero__dot.is-active { width: 32px; background: var(--_accent); }
@media (max-width: 767px) {
	.sr-hero__slide { min-height: 520px; }
	.sr-hero__content { padding-top: 64px; padding-bottom: 110px; }
	.sr-hero__bg::after { background: linear-gradient(180deg, rgba(58, 12, 52, .82), rgba(110, 26, 99, .88)); }
}

/* ---------- Info strip ---------- */
.sr-w--sunrays-info-strip { z-index: 4; }
.sr-info--overlap { margin-top: -64px; }
.sr-info { display: grid; grid-template-columns: 1fr; gap: 0; background: #fff; border-radius: 20px; box-shadow: var(--_shadow-lg); overflow: hidden; }
@media (min-width: 768px) { .sr-info { grid-template-columns: repeat(3, 1fr); } }
.sr-info__item {
	display: flex; gap: 16px; align-items: center; padding: 26px 28px; text-decoration: none;
	color: var(--_text); border-bottom: 1px solid var(--_line); transition: background .2s ease;
}
@media (min-width: 768px) {
	.sr-info__item { border-bottom: 0; border-right: 1px solid var(--_line); }
	.sr-info__item:last-child { border-right: 0; }
}
a.sr-info__item:hover { background: var(--_soft); }
.sr-info--hl .sr-info__item:first-child { background: var(--_primary); color: rgba(255, 255, 255, .88); }
.sr-info--hl .sr-info__item:first-child .sr-info__title { color: #fff; }
.sr-info--hl .sr-info__item:first-child .sr-info__icon { background: rgba(255, 255, 255, .15); color: #fff; }
.sr-info--hl a.sr-info__item:first-child:hover { background: var(--_primary-dark); }
.sr-info__icon {
	flex: 0 0 54px; height: 54px; border-radius: 16px; background: var(--_soft); color: var(--_primary);
	display: inline-flex; align-items: center; justify-content: center; font-size: 22px;
}
.sr-info__icon svg { width: 24px; height: 24px; fill: currentColor; }
.sr-info__body { display: flex; flex-direction: column; line-height: 1.45; }
.sr-info__title { font-size: 1.05rem; color: var(--_title); margin-bottom: 2px; }
.sr-info__text { font-size: 14.5px; }

/* ---------- Intro (image + text) ---------- */
.sr-intro { display: grid; gap: 48px; align-items: center; }
@media (min-width: 992px) {
	.sr-intro { grid-template-columns: 1fr 1.1fr; gap: 72px; }
	.sr-intro--img-right .sr-intro__media { order: 2; }
	.sr-intro--no-img { grid-template-columns: 1fr; }
}
.sr-intro__media { position: relative; padding: 0 24px 24px 0; }
.sr-intro__media::before {
	content: ""; position: absolute; right: 0; bottom: 0; width: 70%; height: 70%;
	border-radius: 24px; background: linear-gradient(135deg, var(--_accent), var(--_primary)); opacity: .9;
}
.sr-intro__img { position: relative; width: 100%; border-radius: 24px; box-shadow: var(--_shadow-lg); aspect-ratio: 4 / 3; object-fit: cover; }
.sr-intro__badge {
	position: absolute; left: -10px; bottom: 44px; z-index: 2;
	background: #fff; border-radius: 18px; padding: 16px 22px; box-shadow: var(--_shadow-lg);
	display: flex; flex-direction: column; line-height: 1.2;
}
.sr-intro__badge strong { font-size: 2rem; color: var(--_primary); }
.sr-intro__badge span { font-size: 13px; font-weight: 600; color: var(--_muted); }
@media (max-width: 640px) { .sr-intro__badge { left: 10px; } }

/* ---------- Feature cards ---------- */
.sr-feature {
	position: relative; padding: 34px 28px; border-radius: 20px; background: #fff;
	transition: transform .25s ease, box-shadow .25s ease; height: 100%; overflow: hidden;
}
.sr-feature--elevated { box-shadow: var(--_shadow); }
.sr-feature--outline { border: 1px solid var(--_line); }
.sr-feature::after {
	content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: 100%;
	background: linear-gradient(90deg, var(--_primary), var(--_accent));
	transform: scaleX(0); transform-origin: left; transition: transform .3s ease;
}
.sr-feature:hover { transform: translateY(-6px); box-shadow: var(--_shadow-lg); }
.sr-feature:hover::after { transform: scaleX(1); }
.sr-feature__icon {
	width: 62px; height: 62px; border-radius: 18px; margin-bottom: 22px;
	display: inline-flex; align-items: center; justify-content: center; font-size: 26px;
	background: linear-gradient(135deg, var(--_primary), var(--_primary-dark)); color: #fff;
	box-shadow: 0 10px 20px rgba(160, 39, 143, .25);
}
.sr-feature__icon svg { width: 28px; height: 28px; fill: currentColor; }
.sr-w .sr-feature__title { font-size: 1.15rem; color: var(--sr-dark, #1f1a2e); }
.sr-feature__text { margin: 0 !important; font-size: 15px; color: var(--sr-text, #4a4658); }

/* ---------- Service image cards ---------- */
.sr-scard { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: var(--_shadow); transition: transform .25s ease, box-shadow .25s ease; }
.sr-scard:hover { transform: translateY(-6px); box-shadow: var(--_shadow-lg); }
.sr-scard__media { overflow: hidden; aspect-ratio: 16 / 10; background: var(--_soft); }
.sr-scard__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.sr-scard:hover .sr-scard__img { transform: scale(1.06); }
.sr-scard__ph { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--_soft), #f1e2ef); }
.sr-scard__body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1 1 auto; }
.sr-w .sr-scard__title { font-size: 1.2rem; }
.sr-scard__title a { color: inherit; text-decoration: none; }
.sr-scard__title a:hover { color: var(--_primary); }
.sr-scard__text { font-size: 15px; flex: 1 1 auto; }

/* ---------- Icon services ---------- */
.sr-isvc {
	display: flex; gap: 18px; align-items: flex-start; padding: 24px; border-radius: 18px;
	background: #fff; border: 1px solid var(--_line); text-decoration: none; color: var(--_text);
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; height: 100%;
}
a.sr-isvc:hover { border-color: transparent; box-shadow: var(--_shadow-lg); transform: translateY(-4px); }
.sr-isvc__icon {
	flex: 0 0 52px; height: 52px; border-radius: 14px; background: var(--_soft); color: var(--_primary);
	display: inline-flex; align-items: center; justify-content: center; font-size: 22px; transition: background .2s ease, color .2s ease;
}
.sr-isvc__icon svg { width: 24px; height: 24px; fill: currentColor; }
a.sr-isvc:hover .sr-isvc__icon { background: var(--_primary); color: #fff; }
.sr-isvc__body { display: flex; flex-direction: column; }
.sr-isvc__title { font-size: 1.05rem; color: var(--sr-dark, #1f1a2e); margin-bottom: 4px; line-height: 1.35; }
.sr-isvc__text { font-size: 14.5px; line-height: 1.6; }

/* ---------- Testimonials ---------- */
.sr-testi { position: relative; }
.sr-testi__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: 24px;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	padding: 6px 4px 24px; scrollbar-width: none;
}
.sr-testi__track::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .sr-testi__track { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (min-width: 1100px) { .sr-testi__track { grid-auto-columns: calc((100% - 48px) / 3); } }
.sr-testi__card {
	scroll-snap-align: start; margin: 0; padding: 32px 30px; border-radius: 22px; background: #fff;
	box-shadow: var(--_shadow); display: flex; flex-direction: column; position: relative;
}
.sr-testi__card::before {
	content: "”"; position: absolute; right: 26px; top: 6px; font-size: 90px; line-height: 1;
	font-family: Georgia, serif; color: var(--_soft);
}
.sr-testi__stars { color: var(--_accent); letter-spacing: 3px; margin-bottom: 12px; }
.sr-testi__text { margin: 0 0 22px; padding: 0; border: 0; flex: 1 1 auto; font-size: 15.5px; color: var(--sr-text, #4a4658); }
.sr-testi__text p { margin: 0; }
.sr-testi__author { display: flex; align-items: center; gap: 14px; }
.sr-testi__avatar {
	flex: 0 0 48px; height: 48px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--_primary), var(--_accent)); color: #fff; font-weight: 800; font-size: 18px;
}
.sr-testi__author strong { display: block; color: var(--sr-dark, #1f1a2e); }
.sr-testi__author small { color: var(--_muted); }
.sr-testi__nav { display: flex; justify-content: center; gap: 12px; margin-top: 8px; }
.sr-round-btn {
	width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--_line); background: #fff;
	color: var(--_primary); font-size: 26px; line-height: 1; cursor: pointer; padding: 0 0 3px;
	transition: background .2s ease, color .2s ease;
}
.sr-round-btn:hover { background: var(--_primary); color: #fff; border-color: var(--_primary); }

/* ---------- Stats ---------- */
.sr-stats-wrap { overflow: hidden; }
.sr-stats__bg { position: absolute; inset: 0; background: center / cover no-repeat; opacity: .15; mix-blend-mode: luminosity; }
.sr-stats { display: grid; gap: 22px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 992px) { .sr-stats { grid-template-columns: repeat(4, 1fr); } }
.sr-stats__item {
	text-align: center; padding: 30px 16px; border-radius: 20px;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16);
	display: flex; flex-direction: column; align-items: center;
}
.sr-bg-white .sr-stats__item, .sr-bg-soft .sr-stats__item, .sr-bg-none .sr-stats__item { background: #fff; border-color: var(--_line); box-shadow: var(--_shadow); }
.sr-stats__icon { font-size: 30px; color: var(--_accent); margin-bottom: 10px; display: inline-flex; }
.sr-stats__icon svg { width: 34px; height: 34px; fill: currentColor; }
.sr-stats__number { font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.1; color: var(--_title); font-weight: 800; }
.sr-stats__label { margin-top: 6px; font-weight: 600; font-size: 15px; }

/* ---------- Doctor ---------- */
.sr-doctor { display: grid; gap: 44px; align-items: center; }
@media (min-width: 992px) { .sr-doctor { grid-template-columns: .8fr 1.2fr; gap: 64px; } }
.sr-doctor__media { position: relative; border-radius: 28px; overflow: hidden; background: linear-gradient(135deg, var(--_soft), #f1e0ef); aspect-ratio: 4 / 5; display: flex; align-items: center; justify-content: center; }
.sr-doctor__img { width: 100%; height: 100%; object-fit: cover; }
.sr-doctor__monogram {
	width: 180px; height: 180px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--_primary), var(--_accent)); color: #fff;
	font-size: 64px; font-weight: 800; box-shadow: var(--_shadow-lg);
}
.sr-w .sr-doctor__name { margin-bottom: 4px; }
.sr-doctor__role { color: var(--_primary); font-weight: 700; margin-bottom: 18px !important; }

/* ---------- Service detail ---------- */
.sr-sdetail { display: grid; gap: 40px; }
@media (min-width: 1024px) { .sr-sdetail.has-sidebar { grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; } }
.sr-sdetail__media { border-radius: 22px; overflow: hidden; margin-bottom: 30px; box-shadow: var(--_shadow); }
.sr-sdetail__img { width: 100%; max-height: 460px; object-fit: cover; object-position: center 30%; }
.sr-sdetail__intro { font-size: 1.05rem; }
.sr-sdetail__block { margin-top: 34px; }
.sr-sdetail__block--highlight { padding: 28px; border-radius: 20px; background: var(--_soft); border: 1px solid var(--_line); }
.sr-w .sr-sdetail__heading { font-size: 1.35rem; position: relative; padding-left: 16px; }
.sr-sdetail__heading::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 4px; border-radius: 4px; background: linear-gradient(var(--_primary), var(--_accent)); }
.sr-sdetail__aside { display: grid; gap: 24px; }
@media (min-width: 1024px) { .sr-sdetail__aside { position: sticky; top: 110px; } }
.sr-aside-card { background: #fff; border: 1px solid var(--_line); border-radius: 20px; padding: 24px; box-shadow: var(--_shadow); }
.sr-w .sr-aside-card__title { font-size: 1.1rem; margin-bottom: 14px; }
.sr-aside-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sr-aside-links a, .sr-aside-links span {
	display: flex; justify-content: space-between; align-items: center; gap: 10px;
	padding: 10px 14px; border-radius: 10px; text-decoration: none; color: var(--sr-text, #4a4658); font-weight: 500; font-size: 15px;
	transition: background .2s ease, color .2s ease;
}
.sr-aside-links a::after { content: "›"; font-size: 20px; line-height: 1; color: var(--_muted); }
.sr-aside-links a:hover { background: var(--_soft); color: var(--_primary); }
.sr-aside-links .is-active a { background: var(--_primary); color: #fff; }
.sr-aside-links .is-active a::after { color: #fff; }
.sr-aside-help {
	border-radius: 20px; padding: 28px 24px; color: rgba(255, 255, 255, .88);
	background: linear-gradient(140deg, var(--_primary-dark), var(--_primary));
}
.sr-w .sr-aside-help__title { color: #fff; font-size: 1.2rem; }
.sr-aside-help p { font-size: 15px; }
.sr-aside-help__phone { display: block; color: #fff; font-size: 1.35rem; font-weight: 800; text-decoration: none; margin-bottom: 18px; }
.sr-aside-help .sr-w-btn { width: 100%; }

/* ---------- Gallery ---------- */
.sr-gallery { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .sr-gallery.sr-cols-3, .sr-gallery.sr-cols-4 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .sr-gallery.sr-cols-4 { grid-template-columns: repeat(4, 1fr); } }
.sr-gallery__item { display: block; border-radius: 16px; overflow: hidden; aspect-ratio: 5 / 4; position: relative; background: var(--_soft); }
.sr-gallery__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
a.sr-gallery__item::after {
	content: "+"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	font-size: 42px; color: #fff; background: rgba(110, 26, 99, .55); opacity: 0; transition: opacity .3s ease;
}
a.sr-gallery__item:hover::after { opacity: 1; }
a.sr-gallery__item:hover .sr-gallery__img { transform: scale(1.06); }
.sr-editor-hint { text-align: center; padding: 30px; border: 2px dashed var(--_line); border-radius: 16px; }

/* ---------- FAQ ---------- */
.sr-faq { max-width: 880px; margin: 0 auto; display: grid; gap: 14px; }
.sr-faq__item { background: #fff; border: 1px solid var(--_line); border-radius: 16px; transition: box-shadow .2s ease, border-color .2s ease; }
.sr-faq__item[open] { box-shadow: var(--_shadow); border-color: transparent; }
.sr-faq__q {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 20px 24px; font-weight: 700; font-size: 1.05rem; color: var(--sr-dark, #1f1a2e);
}
.sr-faq__q::-webkit-details-marker { display: none; }
.sr-faq__toggle { flex: 0 0 32px; height: 32px; border-radius: 50%; background: var(--_soft); position: relative; transition: background .2s ease; }
.sr-faq__toggle::before, .sr-faq__toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--_primary); transform: translate(-50%, -50%); transition: transform .2s ease, background .2s ease; }
.sr-faq__toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.sr-faq__item[open] .sr-faq__toggle { background: var(--_primary); }
.sr-faq__item[open] .sr-faq__toggle::before, .sr-faq__item[open] .sr-faq__toggle::after { background: #fff; }
.sr-faq__item[open] .sr-faq__toggle::after { transform: translate(-50%, -50%) rotate(0deg); }
.sr-faq__a { padding: 0 24px 22px; }

/* ---------- Contact cards ---------- */
.sr-ccard { text-align: center; padding: 34px 24px; border-radius: 20px; background: #fff; box-shadow: var(--_shadow); height: 100%; }
.sr-ccard__icon {
	width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 18px;
	display: flex; align-items: center; justify-content: center; font-size: 24px;
	background: linear-gradient(135deg, var(--_primary), var(--_primary-dark)); color: #fff;
}
.sr-ccard__icon svg { width: 26px; height: 26px; fill: currentColor; }
.sr-w .sr-ccard__title { font-size: 1.15rem; }
.sr-ccard__text { margin: 0 !important; font-size: 15px; }
.sr-ccard__text a { color: var(--sr-text, #4a4658); text-decoration: none; }
.sr-ccard__text a:hover { color: var(--_primary); }

/* ---------- Map ---------- */
.sr-map { border-radius: 22px; overflow: hidden; box-shadow: var(--_shadow); background: var(--_soft); }
.sr-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.sr-map--wide .sr-w__inner { max-width: none; padding: 0; }
.sr-map--wide .sr-map { border-radius: 0; box-shadow: none; }

/* ---------- Appointment form ---------- */
.sr-appt { display: grid; gap: 40px; scroll-margin-top: 120px; }
@media (min-width: 992px) { .sr-appt { grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; } }
.sr-appt__quick { display: grid; gap: 14px; margin-top: 26px; }
.sr-appt__quick-item {
	display: flex; flex-direction: column; padding: 18px 22px; border-radius: 16px; text-decoration: none;
	background: #fff; border: 1px solid var(--_line); color: var(--sr-dark, #1f1a2e); transition: box-shadow .2s ease;
}
.sr-appt__quick-item:hover { box-shadow: var(--_shadow); }
.sr-appt__quick-label { font-size: 13px; color: var(--_muted); }
.sr-appt__quick-item strong { font-size: 1.2rem; }
.sr-appt__quick-item--wa strong { color: #128c4a; }
.sr-appt__form {
	display: grid; gap: 18px; grid-template-columns: 1fr; padding: 34px; border-radius: 24px;
	background: #fff; box-shadow: var(--_shadow-lg);
}
@media (min-width: 640px) { .sr-appt__form { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .sr-appt__form { padding: 24px 20px; } }
.sr-field { display: flex; flex-direction: column; gap: 6px; }
.sr-field--full { grid-column: 1 / -1; }
.sr-field label { font-size: 14px; font-weight: 600; color: var(--sr-dark, #1f1a2e); }
.sr-field input, .sr-field select, .sr-field textarea {
	width: 100%; padding: 13px 15px; font: inherit; font-size: 15px; color: var(--sr-dark, #1f1a2e);
	border: 1px solid var(--_line); border-radius: 12px; background: #fcfafc;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.sr-field input:focus, .sr-field select:focus, .sr-field textarea:focus { outline: none; border-color: var(--_primary); box-shadow: 0 0 0 3px rgba(160, 39, 143, .15); background: #fff; }
.sr-field .is-invalid { border-color: #d63638; }
.sr-appt__submit .sr-w-btn { width: 100%; padding: 15px 26px; font-size: 16px; }
.sr-appt__status { grid-column: 1 / -1; margin: 0 !important; font-weight: 600; min-height: 1.5em; }
.sr-appt__status.is-success { color: #128c4a; padding: 14px 16px; border-radius: 12px; background: #e9f8ef; }
.sr-appt__status.is-error { color: #b32d2e; }
.sr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- v1.1: hero options ---------- */
.sr-hero--center .sr-hero__content { text-align: center; }
.sr-hero--center .sr-hero__content > * { margin-left: auto; margin-right: auto; }
.sr-hero--center .sr-hero__actions { justify-content: center; }
.sr-hero--no-arrows .sr-hero__arrow, .sr-hero--no-dots .sr-hero__dots { display: none !important; }

/* ---------- v1.1: testimonial photos ---------- */
.sr-testi__avatar { overflow: hidden; }
.sr-testi__photo { width: 100%; height: 100%; object-fit: cover; }

/* ---------- v1.1: doctor card ---------- */
@media (min-width: 992px) {
	.sr-doctor--img-right { grid-template-columns: 1.2fr .8fr; }
	.sr-doctor--img-right .sr-doctor__media { order: 2; }
}
.sr-doctor--no-photo .sr-doctor__media {
	aspect-ratio: auto; min-height: 0; padding: 48px 28px; flex-direction: column; gap: 6px; text-align: center;
	background: linear-gradient(150deg, var(--_primary-dark), var(--_primary)); color: #fff; position: relative; overflow: hidden;
}
.sr-doctor--no-photo .sr-doctor__media::after {
	content: ""; position: absolute; right: -70px; top: -70px; width: 240px; height: 240px; border-radius: 50%;
	background: radial-gradient(circle, rgba(243, 146, 0, .45), transparent 70%); pointer-events: none;
}
.sr-doctor--no-photo .sr-doctor__monogram {
	width: 132px; height: 132px; font-size: 48px; margin-bottom: 14px;
	background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .35); position: relative; z-index: 1;
}
.sr-doctor__card-name { font-size: 1.35rem; font-weight: 800; position: relative; z-index: 1; }
.sr-doctor__card-role { color: rgba(255, 255, 255, .85); font-size: 15px; position: relative; z-index: 1; }
.sr-doctor__card-badge {
	margin-top: 14px; padding: 7px 16px; border-radius: 999px; background: var(--_accent); color: #fff;
	font-weight: 700; font-size: 14px; position: relative; z-index: 1;
}

/* ---------- v1.1: compact specialities list on tablet/mobile ---------- */
@media (max-width: 1023px) {
	.sr-aside-links { grid-template-columns: 1fr 1fr; gap: 6px; }
	.sr-aside-links a, .sr-aside-links span { padding: 9px 10px; font-size: 14px; background: var(--_soft); }
	.sr-aside-links a::after { display: none; }
}
@media (max-width: 420px) { .sr-aside-links { grid-template-columns: 1fr; } }

/* ---------- v1.1: process steps ---------- */
.sr-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 34px; position: relative; grid-template-columns: 1fr; }
@media (min-width: 768px) { .sr-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
	.sr-steps--3 { grid-template-columns: repeat(3, 1fr); }
	.sr-steps--4 { grid-template-columns: repeat(4, 1fr); }
	.sr-steps--5 { grid-template-columns: repeat(5, 1fr); }
	.sr-steps--6 { grid-template-columns: repeat(6, 1fr); }
	.sr-steps::before {
		content: ""; position: absolute; top: 44px; left: 12%; right: 12%; height: 2px; z-index: 0;
		background: repeating-linear-gradient(90deg, var(--_line) 0 10px, transparent 10px 18px);
	}
}
.sr-step { position: relative; z-index: 1; text-align: center; }
.sr-step__icon {
	position: relative; width: 88px; height: 88px; margin: 0 auto 20px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; font-size: 30px;
	background: #fff; color: var(--_primary); box-shadow: var(--_shadow); border: 2px solid var(--_soft);
	transition: transform .25s ease, background .25s ease, color .25s ease;
}
.sr-step__icon svg { width: 32px; height: 32px; fill: currentColor; }
.sr-step:hover .sr-step__icon { transform: translateY(-4px); background: var(--_primary); color: #fff; }
.sr-step__num {
	position: absolute; top: -4px; right: -4px; min-width: 30px; height: 30px; border-radius: 999px; padding: 0 6px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--_accent); color: #fff; font-size: 12px; font-weight: 800;
}
.sr-step__dot { width: 18px; height: 18px; border-radius: 50%; background: currentColor; }
.sr-w .sr-step__title { font-size: 1.12rem; margin-bottom: 8px; }
.sr-step__text { font-size: 15px; margin: 0 auto !important; max-width: 280px; }

/* ---------- v1.1: comparison table ---------- */
.sr-compare-wrap { overflow-x: auto; border-radius: 20px; -webkit-overflow-scrolling: touch; }
.sr-compare { width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: var(--_shadow); }
.sr-compare th, .sr-compare td { padding: 18px 22px; text-align: left; border-bottom: 1px solid var(--_line); font-size: 15px; }
.sr-compare tr:last-child th, .sr-compare tr:last-child td { border-bottom: 0; }
.sr-compare thead th { background: var(--sr-dark, #1f1a2e); color: #fff; font-weight: 700; font-size: 15.5px; }
.sr-compare thead th.is-hl { background: var(--_primary); }
.sr-compare tbody th { font-weight: 700; color: var(--sr-dark, #1f1a2e); width: 30%; }
.sr-compare td.is-hl { background: var(--_soft); color: var(--_primary-dark); font-weight: 700; }
.sr-compare td.is-hl::before { content: "✓ "; color: var(--_primary); }

/* ---------- v1.3: GSAP motion helpers ---------- */
/* Word-by-word reveal: each word slides up from behind a mask. */
.sr-split-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
.sr-split-word__in { display: inline-block; will-change: transform; }
/* Hero: GSAP takes over the slide text choreography. */
.sr-gsap-hero .sr-hero__slide.is-active .sr-hero__content > * { animation: none !important; }
/* Process line drawn via a CSS variable animated by GSAP. */
@media (min-width: 1024px) {
	.sr-steps::before { transform-origin: left center; transform: scaleX(var(--sr-line, 1)); }
}
/* 3D tilt needs depth; GSAP owns the transform while hovering. */
.sr-tilt { transform-style: preserve-3d; will-change: transform; }
/* Scroll progress bar. */
.sr-progress {
	position: fixed; left: 0; top: 0; z-index: 100000; width: 100%; height: 3px; pointer-events: none;
	background: linear-gradient(90deg, var(--sr-primary, #a0278f), var(--sr-accent, #f39200));
	transform-origin: 0 50%; transform: scaleX(0);
}
.admin-bar .sr-progress { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .sr-progress { top: 46px; } }
/* FAQ answer height animation wrapper. */
.sr-faq__a.sr-animating { overflow: hidden; }

/* ==========================================================================
   v1.4 design refresh
   ========================================================================== */

/* Section labels become pill chips. */
.sr-w-heading__subtitle {
	padding: 7px 15px 7px 12px; border-radius: 999px;
	background: rgba(243, 146, 0, .1); line-height: 1.2;
}
.sr-w-heading__subtitle::before { width: 8px; height: 8px; border-radius: 50%; }
.sr-bg-gradient .sr-w-heading__subtitle, .sr-bg-dark .sr-w-heading__subtitle { background: rgba(255, 255, 255, .12); }

/* Depth for tinted sections: soft glows + faint dot grid. */
.sr-bg-soft {
	background:
		radial-gradient(900px 420px at 100% 0%, rgba(160, 39, 143, .08), transparent 60%),
		radial-gradient(760px 380px at 0% 100%, rgba(243, 146, 0, .08), transparent 60%),
		var(--_soft);
}
.sr-bg-soft::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
	background-image: radial-gradient(rgba(160, 39, 143, .13) 1px, transparent 1.4px);
	background-size: 24px 24px;
	-webkit-mask-image: radial-gradient(ellipse 60% 70% at 85% 15%, #000 0%, transparent 70%);
	mask-image: radial-gradient(ellipse 60% 70% at 85% 15%, #000 0%, transparent 70%);
}
.sr-bg-gradient {
	background:
		radial-gradient(700px 360px at 85% 120%, rgba(243, 146, 0, .35), transparent 60%),
		linear-gradient(120deg, var(--_primary-dark), var(--_primary));
}

/* Hero: deeper overlay, trust badges, curved bottom edge. */
.sr-hero__bg::after {
	background: linear-gradient(100deg, rgba(40, 8, 38, .93) 0%, rgba(110, 26, 99, .78) 46%, rgba(110, 26, 99, .12) 100%);
}
.sr-w .sr-hero__title { text-shadow: 0 2px 30px rgba(20, 0, 20, .25); letter-spacing: -.01em; }
.sr-hero::after {
	content: ""; position: absolute; left: -5%; right: -5%; bottom: -1px; height: 70px; z-index: 2; pointer-events: none;
	background: #fff; clip-path: ellipse(55% 100% at 50% 100%);
}
.sr-hero__dots { bottom: 96px; }
.sr-hero__badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; padding: 0; list-style: none; }
.sr-hero__badge {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px;
	background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .24);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	font-size: 14px; color: rgba(255, 255, 255, .9); line-height: 1.2;
}
.sr-hero__badge strong { color: #fff; font-size: 15px; font-weight: 800; }
.sr-hero__badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--_accent); box-shadow: 0 0 0 4px rgba(243, 146, 0, .25); }
.sr-hero--center .sr-hero__badges { justify-content: center; }

/* Page banner: glass breadcrumb pill + wave edge. */
.sr-w--sunrays-page-banner {
	padding-bottom: 104px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0 56h1440V20C1210 50 980 58 720 40S250 2 0 26z'/%3E%3C/svg%3E") bottom center / 100% 56px no-repeat,
		linear-gradient(120deg, var(--_primary-dark), var(--_primary));
}
.sr-w--sunrays-page-banner.has-image::before {
	-webkit-mask-image: linear-gradient(#000 55%, transparent 92%);
	mask-image: linear-gradient(#000 55%, transparent 92%);
}
.sr-banner__crumbs {
	display: inline-flex; padding: 7px 16px; border-radius: 999px;
	background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}

/* CTA: dark ink card so it stands apart from the plum emergency strip. */
.sr-cta {
	background:
		radial-gradient(520px 260px at 100% 120%, rgba(243, 146, 0, .42), transparent 60%),
		radial-gradient(460px 260px at -5% -30%, rgba(160, 39, 143, .7), transparent 60%),
		#1f1a2e;
	border: 1px solid rgba(255, 255, 255, .06);
}
.sr-cta::after {
	background: none; width: 300px; height: 300px; right: -90px; bottom: -150px;
	border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 0 0 40px rgba(255, 255, 255, .03), 0 0 0 80px rgba(255, 255, 255, .02);
}
.sr-cta__icon { background: linear-gradient(135deg, var(--_primary), var(--_accent)); }
.sr-cta .sr-w-btn--light { background: var(--_accent); color: #fff !important; }
.sr-cta .sr-w-btn--light:hover { background: #fff; color: var(--_primary-dark) !important; }

/* Buttons: arrow nudge on primary actions. */
.sr-w-btn--primary span::after, .sr-w-btn--accent span::after { content: "→"; display: inline-block; margin-left: 8px; transition: transform .25s ease; }
.sr-w-btn--primary:hover span::after, .sr-w-btn--accent:hover span::after { transform: translateX(4px); }

/* Cards: gradient ring on hover. */
.sr-feature:hover, .sr-isvc:hover, .sr-ccard:hover {
	box-shadow: 0 0 0 1px rgba(160, 39, 143, .18), 0 22px 50px rgba(31, 26, 46, .14);
}
.sr-ccard { transition: transform .25s ease, box-shadow .25s ease; }
.sr-ccard:hover { transform: translateY(-5px); }

/* Testimonials: accent top edge. */
.sr-testi__card { border-top: 3px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(90deg, var(--_primary), var(--_accent)) border-box; }

/* FAQ with side panel. */
.sr-faq-layout { display: grid; gap: 30px; }
@media (min-width: 1024px) { .sr-faq-layout { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } .sr-faq-layout .sr-faq { margin: 0; max-width: none; } }
.sr-faq-aside {
	border-radius: 22px; padding: 30px 26px; color: rgba(255, 255, 255, .86);
	background: radial-gradient(360px 200px at 100% 0%, rgba(243, 146, 0, .35), transparent 60%), linear-gradient(150deg, var(--_primary-dark), var(--_primary));
	box-shadow: var(--_shadow-lg);
}
@media (min-width: 1024px) { .sr-faq-aside { position: sticky; top: 110px; } }
.sr-faq-aside__icon { width: 52px; height: 52px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .14); font-size: 24px; margin-bottom: 16px; color: #fff; }
.sr-faq-aside__icon svg { width: 24px; height: 24px; fill: currentColor; }
.sr-faq-aside__icon i { color: #fff; }
.sr-w .sr-faq-aside__title { color: #fff; font-size: 1.3rem; }
.sr-faq-aside p { font-size: 15px; }
.sr-faq-aside__phone { display: block; color: #fff; font-size: 1.4rem; font-weight: 800; text-decoration: none; margin: 4px 0 18px; }
.sr-faq-aside .sr-w-btn { width: 100%; }

/* Contact map as a card. */
.sr-map-wrap:not(.sr-map--wide) { padding-bottom: 72px; }

/* ---------- Mobile compaction ---------- */
@media (max-width: 767px) {
	.sr-pad-md { padding: 46px 0; }
	.sr-pad-lg { padding: 58px 0; }
	.sr-w-heading { margin-bottom: 28px; }
	.sr-grid { gap: 14px; }

	.sr-hero__slide { min-height: 0; }
	.sr-hero__content { padding-top: 56px; padding-bottom: 130px; }
	.sr-hero__badges { margin-top: 22px; gap: 8px; }
	.sr-hero__badge { padding: 7px 12px; font-size: 13px; }
	.sr-hero::after { height: 34px; }
	.sr-hero__dots { bottom: 74px; }
	.sr-info--overlap { margin-top: -54px; }
	.sr-info__item { padding: 16px 18px; }
	.sr-info__icon { flex-basis: 46px; height: 46px; }

	.sr-feature { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; padding: 20px; text-align: left; }
	.sr-feature__icon { grid-row: span 2; width: 52px; height: 52px; margin: 0; font-size: 22px; border-radius: 14px; }
	.sr-w .sr-feature__title { font-size: 1.05rem; margin-bottom: 4px; }
	.sr-feature__text { font-size: 14.5px; }

	.sr-isvc { padding: 16px; gap: 14px; }
	.sr-isvc__icon { flex-basis: 44px; height: 44px; font-size: 18px; }

	.sr-scard { flex-direction: row; }
	.sr-scard__media { flex: 0 0 36%; aspect-ratio: auto; min-height: 150px; }
	.sr-scard__body { padding: 14px 16px; }
	.sr-w .sr-scard__title { font-size: 1.02rem; margin-bottom: 4px; }
	.sr-scard__text { font-size: 13.5px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 6px !important; }

	.sr-testi__track { grid-auto-columns: 86%; gap: 14px; }
	.sr-testi__card { padding: 24px 22px; }

	.sr-steps { gap: 22px; }
	.sr-step { display: grid; grid-template-columns: 64px 1fr; column-gap: 16px; text-align: left; }
	.sr-step__icon { grid-row: span 2; width: 64px; height: 64px; margin: 0; font-size: 22px; }
	.sr-step__text { margin: 0 !important; max-width: none; }

	.sr-ccard { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; text-align: left; padding: 20px; }
	.sr-ccard__icon { grid-row: span 2; width: 52px; height: 52px; margin: 0; }

	.sr-stats { gap: 12px; }
	.sr-stats__item { padding: 20px 10px; }

	.sr-w--sunrays-page-banner { padding: 52px 0 76px; background-size: 100% 34px, auto; }
	.sr-cta { padding: 26px 20px; }
	.sr-cta__actions { width: 100%; }
	.sr-cta__actions .sr-w-btn { flex: 1 1 auto; }
	.sr-appt__form { padding: 22px 18px; }
}

/* ==========================================================================
   v1.5 responsive hardening
   ========================================================================== */

/* Long words / emails / URLs never push layouts wider than the screen. */
.sr-w { overflow-wrap: break-word; }
.sr-ccard__text, .sr-ccard__text a, .sr-footer__contact a, .sr-appt__quick-item strong, .sr-aside-help__phone, .sr-faq-aside__phone { overflow-wrap: anywhere; }
.sr-ccard > *, .sr-feature > *, .sr-step > *, .sr-isvc__body, .sr-info__body, .sr-scard__body { min-width: 0; }
.sr-w img, .sr-w iframe, .sr-w video { max-width: 100%; }

/* Honeypot: visually hidden without off-screen positioning. */
.sr-hp { position: absolute !important; left: auto !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* Hero dots: 36px touch targets, small visual pill inside. */
.sr-hero__dots { gap: 2px; }
.sr-hero__dot {
	width: 36px; height: 36px; padding: 0; background: none !important; border-radius: 0;
	display: inline-flex; align-items: center; justify-content: center;
}
.sr-hero__dot::before {
	content: ""; width: 10px; height: 10px; border-radius: 99px;
	background: rgba(255, 255, 255, .45); transition: width .3s ease, background .3s ease;
}
.sr-hero__dot.is-active { width: 44px; }
.sr-hero__dot.is-active::before { width: 32px; background: var(--_accent); }

/* Service cards: the whole card is the tap target. */
.sr-scard { position: relative; }
.sr-scard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.sr-scard__title a:focus-visible { outline: none; }
.sr-scard:focus-within { outline: 3px solid var(--_accent); outline-offset: 3px; }

/* Text links: comfortable touch height. */
.sr-w-link { padding: 9px 0; min-height: 40px; align-items: center; }

/* Comparison table: stacked cards on phones (no sideways scrolling). */
@media (max-width: 639px) {
	.sr-compare-wrap { overflow: visible; }
	.sr-compare { min-width: 0; box-shadow: none; background: transparent; border-radius: 0; overflow: visible; }
	.sr-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
	.sr-compare tbody, .sr-compare tr { display: block; }
	.sr-compare tr { background: #fff; border-radius: 16px; box-shadow: var(--_shadow); margin-bottom: 12px; overflow: hidden; }
	.sr-compare tbody th { display: block; width: auto; padding: 14px 16px; background: var(--sr-dark, #1f1a2e); color: #fff; border: 0; }
	.sr-compare td { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; text-align: right; }
	.sr-compare td::before { content: attr(data-label); font-weight: 600; color: var(--_muted); text-align: left; flex: 0 0 45%; }
	.sr-compare td.is-hl::before { content: attr(data-label); color: var(--_primary); }
	.sr-compare tr:last-child td { border-bottom: 1px solid var(--_line); }
	.sr-compare tr td:last-child { border-bottom: 0; }
}

/* Very small phones (≤ 360px). */
@media (max-width: 360px) {
	.sr-w__inner { padding: 0 14px; }
	.sr-w .sr-hero__title { font-size: 1.9rem; }
	.sr-hero__actions .sr-w-btn { width: 100%; }
	.sr-hero__badge { font-size: 12px; }
	.sr-scard { flex-direction: column; }
	.sr-scard__media { flex-basis: auto; min-height: 0; aspect-ratio: 16 / 9; }
	.sr-stats { grid-template-columns: 1fr 1fr; gap: 8px; }
	.sr-stats__number { font-size: 1.7rem; }
	.sr-stats__label { font-size: 13px; }
	.sr-appt__form { grid-template-columns: 1fr; }
	.sr-cta__actions .sr-w-btn { width: 100%; }
}

/* Tablets (768–1023px): keep 2-up layouts balanced. */
@media (min-width: 768px) and (max-width: 1023px) {
	.sr-intro__media { max-width: 560px; margin: 0 auto; width: 100%; }
	.sr-doctor__media { max-width: 420px; margin: 0 auto; width: 100%; }
	.sr-sdetail__aside { grid-template-columns: 1fr 1fr; align-items: start; }
	.sr-steps { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.sr-w *, .sr-w *::before, .sr-w *::after { animation: none !important; transition: none !important; }
	.sr-testi__track { scroll-behavior: auto; }
}
