/* Roserin Homecare — shared UI components
   Palette taken from the Astra global palette so new sections match the
   page-builder sections already on the site.
   0 #1a4e49 deep green · 1 #afd5aa mint · 4 #ebc448 yellow · 5 #d4af37 gold */

:root {
	--rs-green: #1a4e49;
	--rs-green-dark: #133833;
	--rs-green-soft: #e8f1ee;
	--rs-mint: #afd5aa;
	--rs-gold: #d4af37;
	--rs-yellow: #ebc448;
	--rs-ink: #2e2e2e;
	--rs-muted: #5d6b67;
	--rs-line: #dfe7e4;
	--rs-cream: #fbf9f3;
	--rs-radius: 14px;
	--rs-shadow: 0 2px 10px rgba(26, 78, 73, .07);
	--rs-shadow-lg: 0 10px 30px rgba(26, 78, 73, .13);
}

/* ---------- layout ---------- */

.rs {
	max-width: 1140px;
	margin-inline: auto;
	padding-inline: 24px;
	color: var(--rs-ink);
	line-height: 1.75;
}

.rs-section {
	padding-block: 56px;
}

.rs-section--tint {
	background: var(--rs-green-soft);
}

.rs-section--cream {
	background: var(--rs-cream);
}

.rs-section--dark {
	background: var(--rs-green);
	color: #fff;
}

.rs-section--dark h2,
.rs-section--dark h3 {
	color: #fff;
}

.rs-section--dark a {
	color: var(--rs-yellow);
}

/* The theme sets huge default heading sizes; long-form pages need their own
   scale or every H2 reads like a hero title. */
.rs h2,
.rs-prose h2 {
	font-size: clamp(1.45rem, 2.4vw, 1.9rem);
	line-height: 1.35;
	margin: 2.2rem 0 .85rem;
	color: var(--rs-green);
}

.rs h3,
.rs-prose h3 {
	font-size: clamp(1.12rem, 1.7vw, 1.3rem);
	line-height: 1.45;
	margin: 1.6rem 0 .6rem;
	color: var(--rs-green-dark);
}

.rs p,
.rs-prose p,
.rs li,
.rs-prose li {
	font-size: 1.02rem;
	line-height: 1.85;
}

.rs-lede {
	font-size: 1.12rem;
	color: var(--rs-muted);
	max-width: 62ch;
}

.rs-eyebrow {
	display: inline-block;
	font-size: .82rem;
	letter-spacing: .08em;
	font-weight: 600;
	color: var(--rs-green);
	background: var(--rs-green-soft);
	border-radius: 999px;
	padding: 5px 14px;
	margin-bottom: 14px;
}

.rs-section--dark .rs-eyebrow {
	color: var(--rs-green-dark);
	background: var(--rs-mint);
}

/* ---------- cards ---------- */

.rs-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	margin-block: 24px;
	padding: 0;
	list-style: none;
}

.rs-grid--2 {
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.rs-card {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: var(--rs-radius);
	padding: 22px 24px;
	box-shadow: var(--rs-shadow);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

a.rs-card,
a.rs-card:hover {
	text-decoration: none;
	color: inherit;
}

a.rs-card:hover,
a.rs-card:focus-visible {
	transform: translateY(-3px);
	box-shadow: var(--rs-shadow-lg);
	border-color: var(--rs-mint);
}

.rs-card__title {
	font-weight: 700;
	font-size: 1.08rem;
	color: var(--rs-green);
	margin: 0;
}

.rs-card__meta {
	font-size: .9rem;
	color: var(--rs-muted);
	margin: 0;
}

.rs-card__cta {
	margin-top: auto;
	padding-top: 10px;
	font-weight: 600;
	font-size: .92rem;
	color: var(--rs-green);
}

a.rs-card:hover .rs-card__cta {
	color: var(--rs-gold);
}

/* ---------- buttons ---------- */

.rs-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-block: 22px;
}

.rs-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--rs-green);
	color: #fff !important;
	border: 2px solid var(--rs-green);
	border-radius: 999px;
	padding: 12px 26px;
	font-weight: 600;
	text-decoration: none !important;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}

.rs-btn:hover,
.rs-btn:focus-visible {
	background: var(--rs-green-dark);
	border-color: var(--rs-green-dark);
	transform: translateY(-2px);
}

.rs-btn--ghost {
	background: transparent;
	color: var(--rs-green) !important;
}

.rs-btn--ghost:hover {
	background: var(--rs-green);
	color: #fff !important;
}

.rs-btn--gold {
	background: var(--rs-gold);
	border-color: var(--rs-gold);
	color: var(--rs-green-dark) !important;
}

.rs-btn--gold:hover {
	background: var(--rs-yellow);
	border-color: var(--rs-yellow);
	color: var(--rs-green-dark) !important;
}

/* ---------- tables ---------- */

.rs-table-wrap {
	overflow-x: auto;
	margin-block: 22px;
	border: 1px solid var(--rs-line);
	border-radius: var(--rs-radius);
	box-shadow: var(--rs-shadow);
}

.rs-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	min-width: 520px;
}

.rs-table th,
.rs-table td {
	padding: 14px 18px;
	text-align: left;
	border-bottom: 1px solid var(--rs-line);
	font-size: .99rem;
}

.rs-table thead th {
	background: var(--rs-green);
	color: #fff;
	font-weight: 600;
	border-bottom: none;
}

.rs-table tbody tr:last-child td {
	border-bottom: none;
}

.rs-table tbody tr:nth-child(even) {
	background: #fafcfb;
}

.rs-table .rs-price {
	font-weight: 700;
	color: var(--rs-green);
	white-space: nowrap;
}

.rs-table .rs-was {
	color: #90999d;
	text-decoration: line-through;
	white-space: nowrap;
}

.rs-note {
	font-size: .9rem;
	color: var(--rs-muted);
	margin-top: -8px;
}

/* ---------- price cards ---------- */

.rs-price-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(auto-fit, minmax(275px, 1fr));
	margin-block: 28px;
}

.rs-plan {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 18px;
	padding: 26px 26px 28px;
	box-shadow: var(--rs-shadow);
	display: flex;
	flex-direction: column;
	position: relative;
}

.rs-plan--featured {
	border: 2px solid var(--rs-green);
	box-shadow: var(--rs-shadow-lg);
}

.rs-plan__flag {
	position: absolute;
	top: -13px;
	left: 26px;
	background: var(--rs-gold);
	color: var(--rs-green-dark);
	font-size: .8rem;
	font-weight: 700;
	border-radius: 999px;
	padding: 4px 14px;
}

.rs-plan__name {
	font-size: 1.22rem;
	font-weight: 700;
	color: var(--rs-green);
	margin: 0 0 2px;
}

.rs-plan__sub {
	font-size: .92rem;
	color: var(--rs-muted);
	margin: 0 0 16px;
}

.rs-plan__price {
	font-size: 2.1rem;
	font-weight: 800;
	color: var(--rs-green);
	line-height: 1.1;
}

.rs-plan__unit {
	font-size: .95rem;
	font-weight: 500;
	color: var(--rs-muted);
}

.rs-plan__was {
	font-size: .92rem;
	color: #90999d;
	margin: 4px 0 0;
}

.rs-plan__was s {
	margin-right: 6px;
}

.rs-plan__daily {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px dashed var(--rs-line);
	font-size: .96rem;
	color: var(--rs-muted);
}

.rs-plan__daily strong {
	color: var(--rs-green);
}

.rs-plan ul {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.rs-plan ul li {
	position: relative;
	padding-left: 24px;
	margin-bottom: 7px;
	font-size: .97rem;
}

.rs-plan ul li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .62em;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--rs-green);
	border-bottom: 2px solid var(--rs-green);
	transform: rotate(-45deg);
}

/* ---------- checklists ---------- */

.rs-check {
	list-style: none;
	padding: 0;
	margin: 18px 0;
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
}

.rs-check li {
	position: relative;
	padding: 12px 16px 12px 42px;
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 10px;
	font-size: .99rem;
}

.rs-check li::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 1.15em;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--rs-green);
	border-bottom: 2px solid var(--rs-green);
	transform: rotate(-45deg);
}

.rs-check--excluded li::before {
	border: none;
	content: "\00d7";
	color: #b4544a;
	font-weight: 700;
	font-size: 1.15rem;
	top: .35em;
	left: 18px;
	width: auto;
	height: auto;
	transform: none;
}

/* ---------- numbered steps ---------- */

.rs-steps {
	counter-reset: rs;
	list-style: none;
	padding: 0;
	margin: 22px 0;
	display: grid;
	gap: 14px;
}

.rs-steps li {
	counter-increment: rs;
	position: relative;
	padding: 16px 20px 16px 64px;
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 12px;
	box-shadow: var(--rs-shadow);
}

.rs-steps li::before {
	content: counter(rs);
	position: absolute;
	left: 18px;
	top: 15px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--rs-green);
	color: #fff;
	font-weight: 700;
	display: grid;
	place-items: center;
	font-size: .95rem;
}

/* ---------- callout ---------- */

.rs-callout {
	border-left: 4px solid var(--rs-gold);
	background: var(--rs-cream);
	border-radius: 0 12px 12px 0;
	padding: 18px 22px;
	margin-block: 22px;
}

.rs-callout--warn {
	border-left-color: #b4544a;
	background: #fdf4f2;
}

.rs-callout p:last-child {
	margin-bottom: 0;
}

/* ---------- gallery ---------- */

.rs-gallery {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	margin-block: 22px;
}

.rs-gallery figure {
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	background: #eef2f0;
	box-shadow: var(--rs-shadow);
}

.rs-gallery img {
	display: block;
	width: 100%;
	height: 230px;
	object-fit: cover;
	transition: transform .4s ease;
}

.rs-gallery figure:hover img {
	transform: scale(1.05);
}

.rs-gallery figcaption {
	font-size: .88rem;
	color: var(--rs-muted);
	padding: 9px 12px;
	background: #fff;
}

.rs-gallery--tall img {
	height: 320px;
}

/* ---------- video ---------- */

.rs-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 14px;
	overflow: hidden;
	background: #0e2b27;
	box-shadow: var(--rs-shadow-lg);
}

.rs-video iframe,
.rs-video video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.rs-video--empty {
	display: grid;
	place-items: center;
	text-align: center;
	color: #cfe3de;
	padding: 24px;
	border: 2px dashed #3d6a63;
	background: #14403b;
}

.rs-video--empty .rs-video__label {
	font-weight: 600;
	color: #fff;
	margin-bottom: 4px;
}

.rs-video-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	margin-block: 24px;
}

/* ---------- quote ---------- */

.rs-quote {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-left: 4px solid var(--rs-mint);
	border-radius: 0 14px 14px 0;
	padding: 22px 26px;
	box-shadow: var(--rs-shadow);
	margin-block: 18px;
}

.rs-quote p {
	margin: 0 0 10px;
	font-size: 1.04rem;
}

.rs-quote cite {
	font-style: normal;
	font-size: .92rem;
	color: var(--rs-muted);
}

/* ---------- FAQ accordion ---------- */

.rs-faq {
	display: grid;
	gap: 10px;
	margin-block: 22px;
}

.rs-faq details {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 12px;
	box-shadow: var(--rs-shadow);
	overflow: hidden;
}

.rs-faq summary {
	cursor: pointer;
	list-style: none;
	padding: 16px 52px 16px 20px;
	font-weight: 600;
	color: var(--rs-green);
	position: relative;
}

.rs-faq summary::-webkit-details-marker {
	display: none;
}

.rs-faq summary::after {
	content: "";
	position: absolute;
	right: 22px;
	top: 1.42em;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--rs-green);
	border-bottom: 2px solid var(--rs-green);
	transform: rotate(45deg);
	transition: transform .2s ease;
}

.rs-faq details[open] summary::after {
	transform: rotate(-135deg);
}

.rs-faq details[open] summary {
	background: var(--rs-green-soft);
}

.rs-faq .rs-faq__body {
	padding: 4px 20px 18px;
	color: var(--rs-ink);
}

.rs-faq .rs-faq__body p {
	margin: 0;
}

/* ---------- contact strip ---------- */

.rs-contact {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	margin-block: 22px;
}

.rs-contact__item {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 12px;
	padding: 18px 20px;
}

.rs-section--dark .rs-contact__item strong {
	display: block;
	color: var(--rs-mint);
	font-size: .88rem;
	margin-bottom: 4px;
	font-weight: 600;
}

.rs-contact__item a {
	font-size: 1.1rem;
	font-weight: 700;
	text-decoration: none;
}

/* ---------- breadcrumb-ish page header ---------- */

.rs-hero {
	background: linear-gradient(135deg, var(--rs-green) 0%, #27625b 100%);
	color: #fff;
	padding: 54px 0 48px;
}

.rs-hero h1 {
	color: #fff;
	font-size: clamp(1.6rem, 3.4vw, 2.5rem);
	line-height: 1.3;
	margin: 0 0 12px;
}

.rs-hero p {
	color: #d9e8e4;
	max-width: 64ch;
	margin: 0;
	font-size: 1.05rem;
}

.rs-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.rs-pill {
	background: rgba(255, 255, 255, .13);
	border: 1px solid rgba(255, 255, 255, .26);
	border-radius: 999px;
	padding: 6px 15px;
	font-size: .88rem;
}

/* ---------- misc ---------- */

.rs-divider {
	height: 1px;
	background: var(--rs-line);
	border: 0;
	margin-block: 34px;
}

.rs-todo {
	border: 2px dashed var(--rs-gold);
	background: #fffdf4;
	border-radius: 12px;
	padding: 18px 22px;
	margin-block: 20px;
	font-size: .97rem;
}

.rs-todo strong {
	color: #8a6a0b;
}

@media (max-width: 640px) {
	.rs {
		padding-inline: 18px;
	}

	.rs-section {
		padding-block: 38px;
	}

	.rs-gallery img {
		height: 200px;
	}
}

/* =====================================================================
   Part 2 — richer surfaces, typography rhythm and theme corrections
   ===================================================================== */

/* ---------- surfaces: no flat white ---------- */

.rs-section {
	position: relative;
	background:
		radial-gradient(1200px 420px at 15% -10%, rgba(175, 213, 170, .20), transparent 60%),
		linear-gradient(180deg, #ffffff 0%, #f5f9f7 100%);
}

.rs-section--tint {
	background:
		radial-gradient(900px 380px at 85% 0%, rgba(255, 255, 255, .85), transparent 65%),
		linear-gradient(170deg, #e6f1ed 0%, #dcebe5 100%);
}

.rs-section--cream {
	background:
		radial-gradient(900px 360px at 10% 0%, rgba(255, 255, 255, .9), transparent 60%),
		linear-gradient(170deg, #fbf7ec 0%, #f6efdf 100%);
}

.rs-section--dark {
	background:
		radial-gradient(760px 420px at 85% 10%, rgba(175, 213, 170, .22), transparent 60%),
		linear-gradient(145deg, #15423d 0%, #1a4e49 45%, #236158 100%);
}

/* A faint dot field keeps large areas from reading as empty. */
.rs-section--dots::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(26, 78, 73, .09) 1px, transparent 1px);
	background-size: 22px 22px;
	pointer-events: none;
}

.rs-section > .rs {
	position: relative;
	z-index: 1;
}

/* Hairline between stacked sections so the gradients do not smear together. */
.rs-section + .rs-section {
	border-top: 1px solid rgba(26, 78, 73, .07);
}

/* ---------- typography rhythm ---------- */

.rs h2 {
	font-weight: 700;
	letter-spacing: 0;
}

.rs h2 + .rs-lede,
.rs h2 + p {
	margin-top: .35rem;
}

.rs-eyebrow {
	box-shadow: inset 0 0 0 1px rgba(26, 78, 73, .12);
}

/* An underline accent gives headings a start point on busy backgrounds. */
.rs-section > .rs > h2:first-of-type::after,
.rs-section > .rs > .rs-eyebrow + h2::after {
	content: "";
	display: block;
	width: 54px;
	height: 3px;
	border-radius: 3px;
	margin-top: 14px;
	background: linear-gradient(90deg, var(--rs-gold), var(--rs-mint));
}

.rs-section--dark > .rs > h2::after {
	background: linear-gradient(90deg, var(--rs-yellow), var(--rs-mint));
}

/* ---------- stat tiles ---------- */

.rs-stats {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	margin-block: 26px;
}

.rs-stat {
	background: rgba(255, 255, 255, .92);
	border: 1px solid var(--rs-line);
	border-radius: 16px;
	padding: 22px 20px;
	text-align: center;
	box-shadow: var(--rs-shadow);
	position: relative;
	overflow: hidden;
}

.rs-stat::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient(90deg, var(--rs-green), var(--rs-mint));
}

.rs-stat__num {
	font-size: 2rem;
	font-weight: 800;
	color: var(--rs-green);
	line-height: 1.15;
}

.rs-stat__unit {
	font-size: 1rem;
	font-weight: 600;
	color: var(--rs-muted);
}

.rs-stat__label {
	font-size: .93rem;
	color: var(--rs-muted);
	margin-top: 6px;
}

/* ---------- feature cards with icon badges ---------- */

.rs-features {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	margin-block: 26px;
}

.rs-feature {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 16px;
	padding: 26px 24px;
	box-shadow: var(--rs-shadow);
	transition: transform .18s ease, box-shadow .18s ease;
}

.rs-feature:hover {
	transform: translateY(-3px);
	box-shadow: var(--rs-shadow-lg);
}

.rs-feature__icon {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	margin-bottom: 14px;
	background: linear-gradient(140deg, var(--rs-green) 0%, #2f7268 100%);
	box-shadow: 0 6px 14px rgba(26, 78, 73, .22);
}

.rs-feature__icon svg {
	width: 26px;
	height: 26px;
	stroke: #fff;
	fill: none;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.rs-feature__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--rs-green);
	margin: 0 0 6px;
}

.rs-feature p {
	margin: 0;
	color: var(--rs-muted);
	font-size: .99rem;
}

/* ---------- hero refinements ---------- */

.rs-hero {
	background:
		radial-gradient(700px 400px at 88% 0%, rgba(175, 213, 170, .26), transparent 62%),
		linear-gradient(135deg, #15423d 0%, #1a4e49 50%, #2a6b61 100%);
	position: relative;
	overflow: hidden;
}

.rs-hero::after {
	content: "";
	position: absolute;
	right: -120px;
	bottom: -160px;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(212, 175, 55, .20) 0%, transparent 70%);
	pointer-events: none;
}

.rs-hero > .rs {
	position: relative;
	z-index: 1;
}

/* =====================================================================
   Theme corrections — Astra header, footer and Spectra post carousel
   ===================================================================== */

/* Dropdowns rendered over the hero with no background of their own. */
/* Astra prints its dynamic CSS inline after enqueued sheets, so these need
   !important to land. */
.ast-desktop .main-header-menu .sub-menu,
.ast-desktop .main-navigation .sub-menu,
.ast-desktop .main-header-menu .astra-megamenu,
.site-header .main-header-menu .sub-menu {
	background-color: #ffffff !important;
	background-image: none !important;
	border: 1px solid var(--rs-line) !important;
	border-radius: 12px !important;
	box-shadow: 0 16px 38px rgba(16, 48, 44, .22) !important;
	padding: 8px !important;
	min-width: 236px !important;
	backdrop-filter: none;
}

.ast-desktop .main-header-menu .sub-menu .menu-item,
.site-header .main-header-menu .sub-menu .menu-item {
	background-color: transparent !important;
}

.ast-desktop .main-header-menu .sub-menu .menu-link,
.ast-desktop .main-navigation .sub-menu .menu-link,
.site-header .main-header-menu .sub-menu .menu-link {
	color: var(--rs-ink) !important;
	background-color: transparent !important;
	border-radius: 8px;
	padding: 9px 14px !important;
	border-bottom: 0 !important;
	line-height: 1.5;
}

.ast-desktop .main-header-menu .sub-menu .menu-item:hover > .menu-link,
.ast-desktop .main-header-menu .sub-menu .current-menu-item > .menu-link,
.site-header .main-header-menu .sub-menu .menu-item:hover > .menu-link {
	background-color: var(--rs-green-soft) !important;
	color: var(--rs-green) !important;
}

/* The mustard footer fought every other surface on the site. */
.site-primary-footer-wrap,
.site-above-footer-wrap,
.site-below-footer-wrap {
	background:
		radial-gradient(820px 420px at 12% 0%, rgba(175, 213, 170, .16), transparent 62%),
		linear-gradient(135deg, #15423d 0%, #1a4e49 55%, #22615a 100%) !important;
	color: #dceae6;
	border-top: 3px solid var(--rs-gold);
}

.site-primary-footer-wrap a,
.site-below-footer-wrap a {
	color: #e9f3f0;
	text-decoration: none;
}

.site-primary-footer-wrap a:hover,
.site-below-footer-wrap a:hover {
	color: var(--rs-yellow);
}

.site-primary-footer-wrap .ast-builder-html-element,
.site-primary-footer-wrap p,
.site-primary-footer-wrap strong {
	color: #dceae6;
}

.site-primary-footer-wrap .footer-nav-wrap .menu-item .menu-link {
	padding: 5px 0;
	line-height: 1.7;
}

.site-primary-footer-wrap img {
	filter: brightness(0) invert(1);
	opacity: .95;
}

/* Spectra post carousel: titles ran to 25px with uneven card heights, and the
   Read More button rendered dark green on dark green. */
.wp-block-uagb-post-carousel .uagb-post__title,
.wp-block-uagb-post-carousel .uagb-post__title a {
	font-size: 1.06rem !important;
	line-height: 1.55 !important;
	font-weight: 700;
	color: var(--rs-green) !important;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wp-block-uagb-post-carousel .uagb-post__excerpt {
	font-size: .95rem !important;
	line-height: 1.75 !important;
	color: var(--rs-muted) !important;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wp-block-uagb-post-carousel .uagb-post__inner-wrap {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: var(--rs-shadow);
	height: 100%;
	display: flex;
	flex-direction: column;
}

.wp-block-uagb-post-carousel .uagb-post__text {
	padding-left: 18px;
	padding-right: 18px;
}

.wp-block-uagb-post-carousel .uagb-post__cta {
	margin-top: auto;
	padding-bottom: 18px;
}

.wp-block-uagb-post-carousel .uagb-post__cta a,
.wp-block-uagb-post-carousel a.uagb-text-link {
	background: var(--rs-gold) !important;
	color: #133833 !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 9px 20px !important;
	font-weight: 700 !important;
	font-size: .92rem !important;
	display: inline-block;
	transition: background .18s ease;
}

.wp-block-uagb-post-carousel .uagb-post__cta a:hover {
	background: var(--rs-yellow) !important;
	color: #133833 !important;
}

.wp-block-uagb-post-carousel .uagb-post__meta {
	font-size: .85rem !important;
	color: #7d8a86 !important;
}

/* Slider arrows sat on the page background with no affordance. */
.wp-block-uagb-post-carousel .slick-prev,
.wp-block-uagb-post-carousel .slick-next {
	background: #fff !important;
	border: 1px solid var(--rs-line) !important;
	border-radius: 50% !important;
	width: 40px !important;
	height: 40px !important;
	box-shadow: var(--rs-shadow);
}

@media (max-width: 920px) {
	.rs-stat__num { font-size: 1.7rem; }
	.rs-hero::after { display: none; }
}

/* ---------- corrections after visual review ---------- */

/* `.rs h2` is declared later in the file than `.rs-section--dark h2`, so the
   dark bands were getting green-on-green headings. */
.rs-section--dark .rs h2,
.rs-section--dark .rs h3,
.rs-hero .rs h1 {
	color: #ffffff;
}

.rs-section--dark .rs p,
.rs-section--dark .rs li {
	color: #d9e8e4;
}

.rs-section--dark .rs-lede {
	color: #cfe3de;
}

/* The closing contact band and the footer were the same green and read as one
   slab. Drop the footer a few shades and keep the gold rule between them. */
.site-primary-footer-wrap,
.site-above-footer-wrap,
.site-below-footer-wrap {
	background:
		radial-gradient(760px 380px at 10% 0%, rgba(175, 213, 170, .10), transparent 60%),
		linear-gradient(135deg, #0e2b27 0%, #11332f 55%, #15423d 100%) !important;
	border-top: 3px solid var(--rs-gold);
}

/* Footer navigation was dim green on green. */
.site-primary-footer-wrap .footer-nav-wrap .menu-link,
.site-below-footer-wrap .footer-nav-wrap .menu-link {
	color: #cfe0db !important;
	font-size: .95rem;
}

.site-primary-footer-wrap .footer-nav-wrap .menu-item:hover > .menu-link {
	color: var(--rs-yellow) !important;
}

.site-primary-footer-wrap .ast-builder-html-element p,
.site-primary-footer-wrap .ast-builder-html-element strong {
	color: #e4efec !important;
}

.site-primary-footer-wrap .ast-builder-html-element a {
	color: var(--rs-mint) !important;
}

/* Give the footer columns room; the three blocks were crowding each other. */
.site-primary-footer-wrap .site-primary-footer-inner-wrap {
	padding-block: 44px;
}


/* ---------- soften the remaining flat builder sections on the home page ---------- */

.uagb-block-5fcee4f8.uagb-is-root-container {
	background-color: transparent !important;
	background-image:
		radial-gradient(900px 380px at 80% -10%, rgba(175, 213, 170, .20), transparent 62%),
		linear-gradient(180deg, #ffffff 0%, #f4f9f7 100%) !important;
	position: relative;
}

.uagb-block-5fcee4f8.uagb-is-root-container::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(26, 78, 73, .07) 1px, transparent 1px);
	background-size: 24px 24px;
	pointer-events: none;
}

.uagb-block-klxdha3u.uagb-is-root-container {
	background-color: transparent !important;
	background-image:
		radial-gradient(820px 360px at 12% 0%, rgba(255, 255, 255, .9), transparent 60%),
		linear-gradient(170deg, #fbf7ec 0%, #f5eedd 100%) !important;
}

.uagb-block-11facfa9.uagb-is-root-container {
	background-color: transparent !important;
	background-image:
		radial-gradient(900px 400px at 85% 0%, rgba(175, 213, 170, .16), transparent 62%),
		linear-gradient(180deg, #f7faf9 0%, #eef5f2 100%) !important;
}

/* Empty paragraph left behind by earlier edits. */
.entry-content > p.wp-block-paragraph:empty {
	display: none;
}

/* ---------- hero legibility ---------- */

/* White headline over a bright photo had no scrim; unreadable on mobile. */
.uagb-block-494c42c4.uagb-is-root-container::after,
.uagb-block-05a4a518.uagb-is-root-container::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 36, 33, .34) 0%, rgba(10, 36, 33, .52) 100%);
	pointer-events: none;
	z-index: 0;
}

.uagb-block-494c42c4.uagb-is-root-container > *,
.uagb-block-05a4a518.uagb-is-root-container > * {
	position: relative;
	z-index: 1;
}

.uagb-block-494c42c4 .uagb-ifb-title-prefix,
.uagb-block-494c42c4 .uagb-ifb-title,
.uagb-block-494c42c4 .uagb-ifb-desc,
.uagb-block-05a4a518 .uagb-ifb-title,
.uagb-block-05a4a518 .uagb-ifb-desc {
	text-shadow: 0 2px 14px rgba(8, 30, 27, .55);
}

@media (max-width: 782px) {
	.uagb-block-494c42c4.uagb-is-root-container::after {
		background: linear-gradient(180deg, rgba(10, 36, 33, .50) 0%, rgba(10, 36, 33, .66) 100%);
	}
}

/* The call button rendered near-black on dark green, about 1.5:1 contrast. */
.uagb-infobox-cta-link.wp-block-button__link {
	background-color: var(--rs-gold) !important;
	border-color: var(--rs-gold) !important;
	color: #133833 !important;
	font-weight: 700 !important;
	border-radius: 999px !important;
	padding: 13px 30px !important;
	box-shadow: 0 8px 20px rgba(10, 36, 33, .28);
	transition: background-color .18s ease, transform .18s ease;
}

.uagb-infobox-cta-link.wp-block-button__link:hover {
	background-color: var(--rs-yellow) !important;
	border-color: var(--rs-yellow) !important;
	color: #133833 !important;
	transform: translateY(-2px);
}

/* =====================================================================
   Single post and archive templates
   Posts rendered at 1366 px wide, 16 px type, images stacked full bleed.
   ===================================================================== */

body.single-post,
body.blog,
body.archive {
	background:
		radial-gradient(900px 500px at 85% -5%, rgba(175, 213, 170, .16), transparent 60%),
		linear-gradient(180deg, #f7faf9 0%, #eef4f2 100%);
}

/* ---------- post header as a hero band ---------- */

.single-post .site-content .ast-container {
	padding-top: 0;
}

.single-post .entry-header {
	background:
		radial-gradient(700px 400px at 86% 0%, rgba(175, 213, 170, .22), transparent 62%),
		linear-gradient(135deg, #15423d 0%, #1a4e49 52%, #2a6b61 100%);
	margin: 0 calc(50% - 50vw) 34px;
	padding: 52px calc(50vw - 50%) 44px;
	position: relative;
	overflow: hidden;
}

.single-post .entry-header .entry-title {
	color: #ffffff;
	font-size: clamp(1.5rem, 3vw, 2.15rem) !important;
	line-height: 1.4;
	max-width: 900px;
	margin: 0 auto 14px;
	text-align: left;
}

.single-post .entry-header .entry-meta {
	max-width: 900px;
	margin: 0 auto;
	color: #cfe3de;
	font-size: .92rem;
}

.single-post .entry-header .entry-meta a {
	color: var(--rs-mint);
	text-decoration: none;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	padding: 4px 13px;
	display: inline-block;
}

.single-post .entry-header .entry-meta a:hover {
	color: var(--rs-yellow);
}

/* Astra separates meta items with slashes that read as stray punctuation. */
.single-post .entry-meta > span::before,
.single-post .entry-meta .ast-terms-link::before {
	content: none !important;
}

.single-post .entry-meta .posted-by,
.single-post .entry-meta .comments-link,
.single-post .entry-meta .author {
	display: none !important;
}

/* ---------- readable measure ---------- */

.single-post .entry-content > *:not(.rs-section):not(.alignfull):not(.alignwide) {
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
}

.single-post .entry-content {
	font-size: 1.07rem;
	line-height: 2;
	color: #30403c;
}

.single-post .entry-content p {
	margin-bottom: 1.15em;
}

.single-post .entry-content h2 {
	font-size: clamp(1.35rem, 2.2vw, 1.72rem);
	line-height: 1.4;
	color: var(--rs-green);
	margin: 2.2rem auto .8rem;
}

.single-post .entry-content h3 {
	font-size: 1.22rem;
	color: var(--rs-green-dark);
	margin: 1.7rem auto .6rem;
}

.single-post .entry-content a:not(.rs-btn):not(.rs-card) {
	color: var(--rs-green);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---------- images in posts ---------- */

.single-post .entry-content figure,
.single-post .entry-content .wp-block-image {
	margin: 26px auto;
}

.single-post .entry-content img {
	border-radius: 14px;
	box-shadow: 0 6px 22px rgba(16, 48, 44, .12);
	max-height: 620px;
	width: auto;
	max-width: 100%;
	height: auto;
	display: block;
	margin-inline: auto;
}

.single-post .entry-content .rs-section img {
	border-radius: 12px;
	box-shadow: none;
	max-height: none;
	width: 100%;
}

/* ---------- archive and blog index cards ---------- */

.blog .ast-article-post,
.archive .ast-article-post {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 16px;
	box-shadow: var(--rs-shadow);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease;
}

.blog .ast-article-post:hover,
.archive .ast-article-post:hover {
	transform: translateY(-3px);
	box-shadow: var(--rs-shadow-lg);
}

.blog .ast-article-post .post-thumb img,
.archive .ast-article-post .post-thumb img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}

.blog .ast-article-post .entry-title,
.archive .ast-article-post .entry-title {
	font-size: 1.12rem !important;
	line-height: 1.5;
}

.blog .ast-article-post .entry-title a,
.archive .ast-article-post .entry-title a {
	color: var(--rs-green);
}

.blog .ast-article-post .entry-content,
.archive .ast-article-post .entry-content {
	font-size: .97rem;
	color: var(--rs-muted);
}

.blog .ast-article-post .ast-button,
.archive .ast-article-post .ast-button,
.blog .read-more a,
.archive .read-more a {
	background: var(--rs-gold);
	color: #133833;
	border-radius: 999px;
	padding: 8px 20px;
	font-weight: 700;
	text-decoration: none;
}

/* Archive headers were plain text on a white page. */
.blog .ast-archive-description,
.archive .ast-archive-description {
	background:
		radial-gradient(640px 360px at 88% 0%, rgba(175, 213, 170, .22), transparent 62%),
		linear-gradient(135deg, #15423d 0%, #1a4e49 55%, #2a6b61 100%);
	margin: 0 calc(50% - 50vw) 34px;
	padding: 46px calc(50vw - 50%) 40px;
	border: 0;
}

.blog .ast-archive-description .ast-archive-title,
.archive .ast-archive-description .ast-archive-title,
.blog .ast-archive-description h1,
.archive .ast-archive-description h1 {
	color: #ffffff;
	font-size: clamp(1.5rem, 3vw, 2.1rem);
}

.blog .ast-archive-description p,
.archive .ast-archive-description p {
	color: #cfe3de;
}

/* ---------- about page: remaining flat sections ---------- */

.uagb-block-f8ec2bd3.uagb-is-root-container {
	background-color: transparent !important;
	background-image:
		radial-gradient(900px 380px at 80% -10%, rgba(175, 213, 170, .20), transparent 62%),
		linear-gradient(180deg, #ffffff 0%, #f4f9f7 100%) !important;
}

.uagb-block-mtoqsfeo {
	background-color: transparent !important;
	background-image:
		radial-gradient(820px 380px at 12% 0%, rgba(255, 255, 255, .92), transparent 60%),
		linear-gradient(170deg, #eef5f2 0%, #e4efea 100%) !important;
	padding-block: 44px !important;
}

.uagb-block-3ad17e27.uagb-is-root-container::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 36, 33, .34) 0%, rgba(10, 36, 33, .52) 100%);
	pointer-events: none;
	z-index: 0;
}

.uagb-block-3ad17e27.uagb-is-root-container > * {
	position: relative;
	z-index: 1;
}

/* Astra joins meta items with bare "/" text nodes; zeroing the container font
   drops the separators while the child spans keep their own size. */
.single-post .entry-header .entry-meta {
	font-size: 0;
}

.single-post .entry-header .entry-meta > *,
.single-post .entry-header .entry-meta span,
.single-post .entry-header .entry-meta a {
	font-size: .92rem;
}

/* ---------- blog and category listing ---------- */
/* Astra renders these through its page-builder template: no container, full
   bleed images, 18 px titles. Rebuild the loop as a card grid. */

.rs-archive-hero {
	margin-bottom: 34px;
}

.rs-pill--on {
	background: var(--rs-gold);
	border-color: var(--rs-gold);
	color: #133833;
	font-weight: 700;
}

.rs-hero__meta .rs-pill {
	text-decoration: none;
	color: #e9f3f0;
	transition: background .18s ease, color .18s ease;
}

.rs-hero__meta .rs-pill span {
	opacity: .65;
	margin-left: 2px;
}

.rs-hero__meta a.rs-pill:hover {
	background: rgba(255, 255, 255, .26);
	color: #fff;
}

.blog .site-main .ast-row,
.archive .site-main .ast-row {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 24px;
	max-width: 1140px;
	margin-inline: auto;
	padding-inline: 24px;
}

.blog .site-main .ast-row > article,
.archive .site-main .ast-row > article {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.blog .ast-article-inner,
.archive .ast-article-inner {
	background: #fff;
	border: 1px solid var(--rs-line);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--rs-shadow);
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: transform .18s ease, box-shadow .18s ease;
}

.blog .ast-article-inner:hover,
.archive .ast-article-inner:hover {
	transform: translateY(-3px);
	box-shadow: var(--rs-shadow-lg);
}

.blog .ast-article-inner .post-thumb,
.archive .ast-article-inner .post-thumb,
.blog .ast-article-inner .ast-blog-featured-section,
.archive .ast-article-inner .ast-blog-featured-section {
	margin: 0 !important;
}

.blog .ast-article-inner img.wp-post-image,
.archive .ast-article-inner img.wp-post-image {
	width: 100% !important;
	height: 200px !important;
	object-fit: cover;
	display: block;
	border-radius: 0;
}

.blog .ast-article-inner .entry-header,
.archive .ast-article-inner .entry-header,
.blog .ast-article-inner .entry-content,
.archive .ast-article-inner .entry-content {
	padding-inline: 20px;
	background: none;
	margin: 0;
}

.blog .ast-article-inner .entry-header,
.archive .ast-article-inner .entry-header {
	padding-top: 18px;
}

.blog .ast-article-inner .entry-title,
.archive .ast-article-inner .entry-title {
	font-size: 1.08rem !important;
	line-height: 1.55;
	margin-bottom: 8px;
}

.blog .ast-article-inner .entry-title a,
.archive .ast-article-inner .entry-title a {
	color: var(--rs-green);
	text-decoration: none;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.blog .ast-article-inner .entry-meta,
.archive .ast-article-inner .entry-meta {
	font-size: .84rem;
	color: #7d8a86;
}

.blog .ast-article-inner .entry-meta a,
.archive .ast-article-inner .entry-meta a {
	color: var(--rs-green);
	text-decoration: none;
}

.blog .ast-article-inner .entry-content p,
.archive .ast-article-inner .entry-content p {
	font-size: .95rem;
	line-height: 1.8;
	color: var(--rs-muted);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.blog .ast-article-inner .read-more,
.archive .ast-article-inner .read-more {
	margin-top: auto;
	padding: 0 20px 20px;
}

.blog .ast-article-inner .read-more a,
.archive .ast-article-inner .read-more a {
	background: var(--rs-gold);
	color: #133833 !important;
	border-radius: 999px;
	padding: 8px 20px;
	font-weight: 700;
	font-size: .9rem;
	text-decoration: none;
	display: inline-block;
}

.blog .ast-article-inner .read-more a:hover,
.archive .ast-article-inner .read-more a:hover {
	background: var(--rs-yellow);
}

.blog .ast-pagination,
.archive .ast-pagination {
	max-width: 1140px;
	margin: 34px auto 0;
	padding-inline: 24px;
}

/* ---------- breadcrumbs ---------- */

.rs-crumbs {
	background: linear-gradient(180deg, #f3f8f6 0%, #eef4f2 100%);
	border-bottom: 1px solid rgba(26, 78, 73, .07);
	padding-block: 11px;
	font-size: .88rem;
	color: var(--rs-muted);
}

.rs-crumbs a {
	color: var(--rs-green);
	text-decoration: none;
}

.rs-crumbs a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rs-crumbs .breadcrumb_last {
	color: var(--rs-ink);
	font-weight: 600;
}

/* The hero sits straight under the crumbs; keep them visually joined. */
.rs-crumbs + .rs-hero,
.rs-crumbs + .entry-header {
	margin-top: 0;
}

/* Sixth pass: Spectra writes these two backgrounds into its own generated CSS
   as JPEG. Point them at the WebP siblings (same pixels, about half the bytes). */
.wp-block-uagb-container.uagb-block-494c42c4 {
	background-image: url("/wp-content/uploads/2025/11/พอใจถ่ายภาพ-46-1536x1024.jpeg.webp") !important;
}
.wp-block-uagb-container.uagb-block-05a4a518 {
	background-image: url("/wp-content/uploads/2025/11/พอใจถ่ายภาพ-7-1536x1024.jpg.webp") !important;
}

/* ---------- Sixth pass: contrast fixes (measured, WCAG AA 4.5:1 body / 3:1 large) ---------- */

/* Struck-through list price on rate cards: #90999d on white was 2.9:1. */
.rs-plan__was,
.rs-plan__was s {
	color: #5d6b67;
}

/* Post hero: Astra paints the date in the theme green on our green band (1.04:1). */
.single-post .entry-header .entry-meta,
.single-post .entry-header .entry-meta span,
.single-post .entry-header .entry-meta time,
.single-post .entry-header .entry-meta .published,
.single-post .entry-header .entry-meta .updated {
	color: #e3efe9 !important;
}
.single-post .entry-header .entry-meta a {
	color: #f1f8ef !important;
	background: rgba(255, 255, 255, .16);
}

/* Active category pill was pale text on gold (1.85:1); the hero pill rule is more specific. */
.rs-hero__meta .rs-pill.rs-pill--on {
	color: #133833;
}

/* Dark bands: the mint glow in the corner lifted the background enough to pull
   mint labels and yellow links under 4.5:1. Softer glow, brighter text. */
.rs-section--dark {
	background:
		radial-gradient(760px 420px at 85% 10%, rgba(175, 213, 170, .12), transparent 60%),
		linear-gradient(145deg, #133b36 0%, #174741 45%, #1d564e 100%);
}
.rs-section--dark .rs-contact__item strong,
.rs-section--dark strong {
	color: #d9eed5;
}
.rs-section--dark a:not(.rs-btn) {
	color: #f7df8c;
}

/* Blog and archive cards: meta line #7d8a86 on white was 3.6:1. */
.blog .ast-article-inner .entry-meta,
.archive .ast-article-inner .entry-meta {
	color: #5d6b67;
}

/* Post counts inside category pills were faded to 65% opacity (3.1 to 3.7:1). */
.rs-hero__meta .rs-pill span {
	opacity: 1;
}

/* Transparent-header pages (About, Services, Contact): the white menu sits
   straight on a photo. A soft top scrim keeps it at 4.5:1 or better. */
.ast-theme-transparent-header #masthead {
	background: linear-gradient(180deg, rgba(10, 32, 29, .62) 0%, rgba(10, 32, 29, .28) 70%, rgba(10, 32, 29, 0) 100%);
}

/* On those same pages the header is absolutely positioned, so the breadcrumb bar
   rendered underneath it and collided with the logo. The BreadcrumbList schema
   is still output; only the visual bar is dropped there. */
.ast-theme-transparent-header .rs-crumbs {
	display: none;
}

/* Contact page heading sits on a bright office photo: add a scrim and make the
   inline brand link readable. */
.uagb-block-8a1eebc0 {
	position: relative;
	padding: 18px 22px;
	border-radius: 16px;
	background: rgba(10, 32, 29, .55);
}
.uagb-block-8a1eebc0 .uagb-heading-text,
.uagb-block-8a1eebc0 .uagb-desc-text {
	text-shadow: 0 1px 3px rgba(0, 0, 0, .35);
}
.uagb-block-8a1eebc0 a {
	color: #f7df8c !important;
}

/* Spectra galleries inside posts print the literal text "No Caption" on hover. */
.single-post .spectra-image-gallery__media-thumbnail-caption-wrapper {
	display: none !important;
}

/* Pill text in archive heroes measured 4.47:1 against the lightest part of the gradient. */
.rs-hero__meta .rs-pill:not(.rs-pill--on) {
	color: #ffffff;
}

/* =====================================================================
   Seventh pass: conversion components (markup in roserin-cro.php)
   ===================================================================== */

/* ---------- contact dock ---------- */
.rs-dock {
	position: fixed;
	z-index: 9990;
	display: flex;
	font-family: inherit;
}
.rs-dock__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
}
.rs-dock .rs-ico {
	flex: none;
}
.rs-dock__btn--call {
	background: #d4af37;
	color: #133833 !important;
}
.rs-dock__btn--line {
	background: #06c755;
	color: #062b14 !important;
}
.rs-dock__btn--form {
	background: #133833;
	color: #ffffff !important;
}

/* phones and small tablets: full-width bar pinned to the bottom edge */
@media (max-width: 782px) {
	.rs-dock {
		left: 0;
		right: 0;
		bottom: 0;
		background: #0e2b27;
		padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
		gap: 8px;
		box-shadow: 0 -6px 22px rgba(0, 0, 0, .22);
	}
	.rs-dock__btn {
		flex: 1 1 0;
		min-height: 48px;
		border-radius: 12px;
		padding: 6px 8px;
		font-size: .98rem;
	}
	.rs-dock__btn--form {
		border: 1.5px solid rgba(255, 255, 255, .7);
	}
	.rs-dock__long {
		display: none;
	}
	body {
		padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
	}
	#ast-scroll-top {
		bottom: calc(78px + env(safe-area-inset-bottom, 0px)) !important;
	}
}

/* desktop: small floating stack, number written out because tel: does nothing there */
@media (min-width: 783px) {
	.rs-dock {
		right: 22px;
		bottom: 22px;
		flex-direction: column;
		align-items: flex-end;
		gap: 10px;
	}
	.rs-dock__btn {
		border-radius: 999px;
		padding: 12px 20px;
		box-shadow: 0 8px 24px rgba(14, 43, 39, .28);
		transition: transform .18s ease, box-shadow .18s ease;
	}
	.rs-dock__btn:hover,
	.rs-dock__btn:focus-visible {
		transform: translateY(-2px);
		box-shadow: 0 12px 28px rgba(14, 43, 39, .34);
	}
	.rs-dock__short,
	.rs-dock__btn--form {
		display: none;
	}
	#ast-scroll-top {
		bottom: 150px !important;
	}
}
@media print {
	.rs-dock {
		display: none;
	}
}

/* The callback form is reached through an in-page anchor; keep it clear of the header. */
#srfm-form-2909 {
	scroll-margin-top: 110px;
}
/* Callback form submit button: brand colours instead of the plugin's navy. */
#srfm-form-2909 .srfm-submit-button,
#srfm-form-2909 button[type="submit"] {
	background: #1a4e49 !important;
	border-color: #1a4e49 !important;
	color: #ffffff !important;
	border-radius: 999px !important;
}

/* ---------- Google review badge ---------- */
.rs-rating {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid var(--rs-line);
	color: var(--rs-ink) !important;
	text-decoration: none !important;
	font-size: .98rem;
	line-height: 1.3;
	box-shadow: var(--rs-shadow);
}
.rs-rating__stars {
	color: #b8860b;
	letter-spacing: 2px;
	font-size: 1.05rem;
}
.rs-rating strong {
	color: var(--rs-green-dark);
}
.rs-rating:hover .rs-rating__text {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.rs-rating--on-dark {
	background: rgba(10, 32, 29, .62);
	border-color: rgba(255, 255, 255, .35);
	color: #ffffff !important;
	box-shadow: none;
}
.rs-rating--on-dark .rs-rating__stars {
	color: #f2cf63;
}
.rs-rating--on-dark strong {
	color: #ffffff;
}

/* ---------- extra hero actions on the home page ---------- */
.rs-hero-cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 12px;
	margin: 14px auto 0;
	max-width: 760px;
	text-align: center;
	position: relative;
	z-index: 2;
}
.rs-hero-cta .rs-btn {
	padding: 11px 24px;
}
.rs-hero-cta .rs-btn--line {
	background: #06c755;
	border-color: #06c755;
	color: #062b14 !important;
}
.rs-hero-cta .rs-btn--onphoto {
	background: rgba(10, 32, 29, .5);
	border-color: rgba(255, 255, 255, .9);
	color: #ffffff !important;
}
.rs-hero-cta .rs-btn--onphoto:hover {
	background: rgba(10, 32, 29, .75);
}
.rs-hero-cta__note {
	flex-basis: 100%;
	margin: 6px 0 0;
	color: #ffffff;
	font-size: 1rem;
	line-height: 1.6;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .55);
}
.rs-hero-cta__rating {
	flex-basis: 100%;
	display: flex;
	justify-content: center;
}

/* ---------- static article cards (replaces the post carousel) ---------- */
.rs-posts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	max-width: 1140px;
	margin: 26px auto 0;
	width: 100%;
}
.rs-post {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid var(--rs-line);
	border-radius: var(--rs-radius);
	overflow: hidden;
	box-shadow: var(--rs-shadow);
	transition: transform .18s ease, box-shadow .18s ease;
}
.rs-post:hover {
	transform: translateY(-3px);
	box-shadow: var(--rs-shadow-lg);
}
.rs-post__img {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--rs-green-soft);
}
.rs-post__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 22%;
	display: block;
}
.rs-post__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 20px 20px;
	flex: 1;
	text-align: left;
}
.rs-post__cat {
	align-self: flex-start;
	font-size: .82rem;
	font-weight: 600;
	color: var(--rs-green-dark);
	background: var(--rs-green-soft);
	border-radius: 999px;
	padding: 3px 12px;
}
.rs-post__title {
	font-size: 1.12rem !important;
	line-height: 1.5 !important;
	margin: 0 !important;
}
.rs-post__title a {
	color: var(--rs-green-dark) !important;
	text-decoration: none !important;
}
.rs-post__title a:hover {
	text-decoration: underline !important;
	text-underline-offset: 3px;
}
.rs-post__desc {
	margin: 0;
	color: var(--rs-muted);
	font-size: .96rem;
	line-height: 1.75;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.rs-post__more {
	margin-top: auto;
	padding-top: 6px;
	font-weight: 700;
	color: var(--rs-green) !important;
	text-decoration: none !important;
}
.rs-post__more::after {
	content: " ›";
}
.rs-posts-actions {
	display: flex;
	justify-content: center;
	margin-top: 26px;
	width: 100%;
}
@media (max-width: 921px) {
	.rs-posts {
		grid-template-columns: 1fr;
		max-width: 520px;
	}
}

/* ---------- map embed ---------- */
.rs-map {
	border-radius: var(--rs-radius);
	overflow: hidden;
	border: 1px solid var(--rs-line);
	box-shadow: var(--rs-shadow);
	background: var(--rs-green-soft);
	margin-top: 18px;
}
.rs-map iframe {
	display: block;
	width: 100%;
	height: 420px;
	border: 0;
}
@media (max-width: 782px) {
	.rs-map iframe {
		height: 320px;
	}
}
.rs-center{text-align:center;margin:0 0 14px}

/* Home hero: the header floats over the photo, so the hero content needs to
   start below it at every width (it used to slide under the logo on phones and
   tablets). The tablet heading size came through from the builder as 98 px. */
.wp-block-uagb-container.uagb-block-494c42c4 {
	padding-top: 124px !important;
	padding-bottom: 48px !important;
}
.uagb-block-494c42c4 .uagb-ifb-title {
	font-size: clamp(25px, 5.2vw, 51px) !important;
	line-height: 1.3 !important;
}
.uagb-block-494c42c4 .uagb-ifb-desc {
	max-width: 620px;
	margin-inline: auto;
}
@media (max-width: 921px) {
	.wp-block-uagb-container.uagb-block-494c42c4 {
		padding-top: 150px !important;
		padding-bottom: 36px !important;
	}
}
@media (max-width: 544px) {
	.wp-block-uagb-container.uagb-block-494c42c4 {
		padding-top: 96px !important;
		padding-bottom: 30px !important;
	}
}
/* The builder gave the tablet heading a -30 px top margin to offset its old 98 px size. */
.uagb-block-494c42c4 .uagb-ifb-title {
	margin-top: 6px !important;
}
