/* ==========================================================================
   Dreamtails Sarasota — Boutique Override for Cosmick Areas Served plugin
   Loaded on:
     - Archive: /areas-we-serve/  (archive-service_area.php)
     - Single area:  /areas-we-serve/{slug}/  (single-service_area.php)
   Uses !important throughout to override the plugin's frontend.css cleanly.
   ========================================================================== */

:root {
	--aws-teal:        #3D5155;
	--aws-teal-deep:   #2a3a3d;
	--aws-pink:        #d9b2af;
	--aws-pink-soft:   #eabfbd;
	--aws-peach:       #EECCAA;
	--aws-peach-soft:  #f3dcc3;
	--aws-yellow:      #F1E6B2;
	--aws-cream:       #fffaf5;
	--aws-cream-soft:  #fef6ed;
	--aws-cream-deep:  #fef0e2;
	--aws-ink:         #2a3a3d;
	--aws-ink-soft:    #6a7a7e;
	--aws-ink-faint:   #99a3a6;
	--aws-line:        rgba( 61, 81, 85, .12 );
	--aws-line-soft:   rgba( 61, 81, 85, .06 );
	--aws-radius-sm:   12px;
	--aws-radius-md:   18px;
	--aws-radius-lg:   24px;
	--aws-shadow-sm:   0 6px 20px -10px rgba( 61, 81, 85, .15 );
	--aws-shadow-md:   0 12px 28px -16px rgba( 61, 81, 85, .25 );
	--aws-shadow-lg:   0 24px 60px -20px rgba( 61, 81, 85, .25 );
	--aws-ease:        220ms cubic-bezier( .4, 0, .2, 1 );
}

/* Override the plugin's CSS custom properties so its component styles
   that reference --cas-primary, --cas-primary-dark, etc. inherit boutique
   colors instead of the brand red. Safe — those rules become harmless. */
.post-type-archive-service_area,
.single-service_area {
	--cas-primary:      var( --aws-teal ) !important;
	--cas-primary-dark: var( --aws-teal-deep ) !important;
	--cas-primary-light: var( --aws-cream ) !important;
	--cas-text:         var( --aws-ink ) !important;
}

/* Hide the global page-header bar on these pages — they have their own
   boutique hero. */
.post-type-archive-service_area .header-title,
.single-service_area .header-title { display: none !important; }

/* ==========================================================================
   HERO SECTION
   ========================================================================== */

.aws-hero-section {
	position: relative !important;
	padding: 4.5rem 1.25rem 4rem !important;
	margin: 0 !important;
	background: linear-gradient( 145deg, var( --aws-cream ) 0%, var( --aws-cream-soft ) 50%, var( --aws-cream-deep ) 100% ) !important;
	color: var( --aws-ink ) !important;
	overflow: hidden;
}

.aws-hero-section::before,
.aws-hero-section::after {
	content: '';
	position: absolute;
	pointer-events: none;
	z-index: 0;
}

.aws-hero-section::before {
	top: -10%;
	left: -10%;
	width: 50%;
	height: 70%;
	background: radial-gradient( circle, rgba( 234, 191, 189, .35 ), transparent 65% );
}

.aws-hero-section::after {
	bottom: -10%;
	right: -10%;
	width: 55%;
	height: 70%;
	background: radial-gradient( circle, rgba( 238, 204, 170, .32 ), transparent 65% );
}

.aws-hero-section > .container {
	position: relative !important;
	z-index: 1;
}

.aws-hero-content {
	max-width: 760px !important;
	margin: 0 auto !important;
	text-align: center !important;
	padding: 0 !important;
}

/* Location badge (single area page) */
.aws-location-badge {
	display: inline-flex !important;
	align-items: center !important;
	gap: .45rem !important;
	background: linear-gradient( 135deg, var( --aws-pink-soft ) 0%, var( --aws-peach ) 100% ) !important;
	color: var( --aws-teal-deep ) !important;
	padding: .4rem 1.05rem !important;
	border-radius: 999px !important;
	font-family: 'Lato', sans-serif !important;
	font-size: .72rem !important;
	font-weight: 700 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	margin-bottom: 1rem !important;
	box-shadow: 0 8px 20px -10px rgba( 217, 178, 175, .55 );
	border: 1px solid rgba( 255, 255, 255, .55 );
}

.aws-location-badge i {
	font-size: .85rem !important;
	color: var( --aws-pink ) !important;
}

.aws-page-title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 2.4rem, 5.5vw, 3.8rem ) !important;
	font-weight: 400 !important;
	color: var( --aws-teal-deep ) !important;
	margin: 0 0 .65rem !important;
	line-height: 1.05 !important;
	letter-spacing: -.005em;
}

/* Hero subtitle paragraph (archive page) */
.aws-hero-section .text-white,
.aws-hero-section p.fs-5 {
	color: var( --aws-ink-soft ) !important;
	font-family: 'Lato', sans-serif !important;
	font-size: 1.05rem !important;
	font-weight: 400 !important;
	max-width: 56ch !important;
	margin: 0 auto !important;
	line-height: 1.6 !important;
}

/* Breadcrumb (single area) */
.aws-breadcrumb {
	margin-top: 1.25rem !important;
}

.aws-breadcrumb ol {
	display: inline-flex !important;
	align-items: center !important;
	gap: .35rem !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	list-style: none !important;
	margin: 0 !important;
	padding: .5rem 1.1rem !important;
	background: rgba( 255, 255, 255, .65 ) !important;
	border-radius: 999px !important;
	border: 1px solid var( --aws-line ) !important;
	backdrop-filter: blur( 6px );
}

.aws-breadcrumb li {
	display: inline-flex !important;
	align-items: center !important;
	font-size: .78rem !important;
	color: var( --aws-ink-soft ) !important;
	font-weight: 500 !important;
}

.aws-breadcrumb li + li::before {
	content: '/';
	margin: 0 .45rem;
	color: var( --aws-pink );
	font-weight: 700;
}

.aws-breadcrumb li a {
	color: var( --aws-teal ) !important;
	text-decoration: none !important;
	transition: color .2s ease !important;
}

.aws-breadcrumb li a:hover { color: var( --aws-pink ) !important; }

.aws-breadcrumb li[aria-current="page"] span,
.aws-breadcrumb li:last-child span {
	color: var( --aws-teal-deep ) !important;
	font-weight: 700 !important;
}

/* ==========================================================================
   ARCHIVE — Card grid of areas
   ========================================================================== */

.post-type-archive-service_area #main-content {
	padding: 3rem 1rem 4rem !important;
	background: linear-gradient( 180deg, var( --aws-cream ) 0%, var( --aws-cream-soft ) 100% );
}

.post-type-archive-service_area #main-content > .container { max-width: 1240px !important; }

.post-type-archive-service_area .row.g-3 {
	--bs-gutter-x: 1.75rem !important;
	--bs-gutter-y: 1.75rem !important;
}

/* ---------- Card shell ---------- */

.post-type-archive-service_area .card {
	background: #ffffff !important;
	border: 1.5px solid var( --aws-line ) !important;
	border-radius: 22px !important;
	box-shadow: 0 16px 40px -20px rgba( 61, 81, 85, .18 ) !important;
	transition: all 320ms cubic-bezier( .4, 0, .2, 1 ) !important;
	overflow: hidden !important;
	position: relative !important;
	isolation: isolate;
}

/* Permanent peach/pink top accent stripe (always-on, not just hover) */
.post-type-archive-service_area .card::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 5px !important;
	background: linear-gradient( 90deg, var( --aws-pink-soft ) 0%, var( --aws-pink ) 50%, var( --aws-peach ) 100% ) !important;
	opacity: 1 !important;
	z-index: 4 !important;
}

.post-type-archive-service_area .card:hover {
	transform: translateY( -6px ) !important;
	border-color: var( --aws-pink ) !important;
	box-shadow: 0 28px 60px -22px rgba( 217, 178, 175, .55 ), 0 14px 30px -16px rgba( 61, 81, 85, .25 ) !important;
}

/* ---------- Image / placeholder area — beautified ---------- */

.post-type-archive-service_area .card .ratio,
.post-type-archive-service_area .card .ratio.bg-light {
	background:
		radial-gradient( circle at 25% 30%, rgba( 234, 191, 189, .55 ), transparent 55% ),
		radial-gradient( circle at 80% 70%, rgba( 238, 204, 170, .55 ), transparent 60% ),
		linear-gradient( 145deg, var( --aws-cream ) 0%, var( --aws-cream-soft ) 100% ) !important;
	position: relative !important;
	overflow: hidden !important;
}

/* Soft repeating dot pattern for texture */
.post-type-archive-service_area .card .ratio::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient( circle, rgba( 61, 81, 85, .06 ) 1.2px, transparent 1.6px );
	background-size: 22px 22px;
	pointer-events: none;
	mask-image: radial-gradient( ellipse at center, #000 30%, transparent 78% );
	-webkit-mask-image: radial-gradient( ellipse at center, #000 30%, transparent 78% );
}

/* Decorative "Florida" wordmark watermark on the image area */
.post-type-archive-service_area .card .ratio::after {
	content: 'Florida';
	position: absolute;
	bottom: 14px;
	right: 18px;
	font-family: 'Mollie Glaston', 'Playfair Display', serif;
	font-size: clamp( 1.15rem, 2.3vw, 1.65rem );
	font-style: italic;
	color: rgba( 61, 81, 85, .18 );
	letter-spacing: -.02em;
	transition: color var( --aws-ease ), transform var( --aws-ease );
	pointer-events: none;
}

.post-type-archive-service_area .card:hover .ratio::after {
	color: rgba( 217, 178, 175, .65 );
	transform: translateY( -2px );
}

/* When using actual featured images instead of the placeholder */
.post-type-archive-service_area .card .ratio img {
	transition: transform 600ms cubic-bezier( .4, 0, .2, 1 ) !important;
	z-index: 1;
	position: relative;
}

.post-type-archive-service_area .card:hover .ratio img {
	transform: scale( 1.05 );
}

/* The placeholder icon — wrap it in a "boutique badge" feel */
.post-type-archive-service_area .card .ratio .text-center {
	position: relative !important;
	z-index: 2;
}

.post-type-archive-service_area .card .ratio .text-center.text-muted {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .65rem;
}

.post-type-archive-service_area .card .ratio i.fa-map-marker-alt,
.post-type-archive-service_area .card .ratio i.fa-3x {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 84px !important;
	height: 84px !important;
	background: linear-gradient( 145deg, #ffffff 0%, var( --aws-cream ) 100% ) !important;
	color: var( --aws-pink ) !important;
	border-radius: 50% !important;
	font-size: 1.85rem !important;
	box-shadow:
		0 14px 28px -10px rgba( 61, 81, 85, .25 ),
		inset 0 0 0 4px rgba( 234, 191, 189, .35 ) !important;
	border: 1.5px solid rgba( 255, 255, 255, .9 ) !important;
	transition: all 320ms cubic-bezier( .4, 0, .2, 1 ) !important;
	opacity: 1 !important;
	margin: 0 auto !important;
}

.post-type-archive-service_area .card:hover .ratio i.fa-map-marker-alt {
	transform: scale( 1.06 ) rotate( -4deg ) !important;
	color: var( --aws-teal-deep ) !important;
	box-shadow:
		0 18px 36px -10px rgba( 217, 178, 175, .55 ),
		inset 0 0 0 4px var( --aws-peach ) !important;
}

/* Hide the leftover plain text inside the placeholder column (if any) */
.post-type-archive-service_area .card .ratio .text-muted { color: var( --aws-teal-deep ) !important; }

/* ---------- Card body ---------- */

.post-type-archive-service_area .card-body {
	padding: 1.5rem 1.5rem 1.65rem !important;
	display: flex !important;
	flex-direction: column !important;
	gap: .75rem !important;
}

.post-type-archive-service_area .card-body .h5,
.post-type-archive-service_area .card-body h2 {
	font-family: 'Playfair Display', serif !important;
	font-weight: 700 !important;
	font-size: 1.1rem !important;
	color: var( --aws-teal-deep ) !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.86em; /* reserves 2 lines so card heights match */
}

.post-type-archive-service_area .card-body a.text-reset {
	color: var( --aws-teal-deep ) !important;
	text-decoration: none !important;
	transition: color var( --aws-ease ) !important;
}

.post-type-archive-service_area .card:hover .card-body a.text-reset { color: var( --aws-pink ) !important; }

/* Location pill */
.post-type-archive-service_area .card-body p.text-muted {
	display: inline-flex !important;
	align-items: center !important;
	gap: .4rem !important;
	width: -moz-fit-content !important;
	width: fit-content !important;
	color: var( --aws-teal-deep ) !important;
	font-family: 'Lato', sans-serif !important;
	font-size: .72rem !important;
	font-weight: 700 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	margin: 0 !important;
	padding: .35rem .85rem !important;
	background: linear-gradient( 135deg, var( --aws-pink-soft ) 0%, var( --aws-peach ) 100% ) !important;
	border-radius: 999px !important;
	box-shadow: 0 6px 14px -6px rgba( 217, 178, 175, .55 ) !important;
}

.post-type-archive-service_area .card-body p.text-muted i {
	color: var( --aws-teal-deep ) !important;
	font-size: .82rem !important;
	margin: 0 !important;
}

/* Stats row */
.post-type-archive-service_area .card-body .hstack {
	gap: .55rem !important;
	flex-wrap: wrap !important;
	margin: 0 !important;
	padding-top: .65rem !important;
	border-top: 1px dashed var( --aws-line ) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
}

.post-type-archive-service_area .card-body .hstack span {
	display: inline-flex !important;
	align-items: center !important;
	gap: .4rem !important;
	background: var( --aws-cream ) !important;
	color: var( --aws-teal-deep ) !important;
	padding: .35rem .8rem !important;
	border-radius: 999px !important;
	font-family: 'Lato', sans-serif !important;
	font-size: .8rem !important;
	font-weight: 600 !important;
	border: 1px solid var( --aws-line ) !important;
}

.post-type-archive-service_area .card-body .hstack span i {
	color: var( --aws-pink ) !important;
	font-size: .85rem !important;
}

/* "Explore →" affordance on the right side of the stats row */
.post-type-archive-service_area .card-body .hstack::after {
	content: '\F285'; /* chevron-right */
	font-family: 'bootstrap-icons';
	margin-left: auto;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var( --aws-cream-soft );
	color: var( --aws-teal );
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .85rem;
	font-weight: 700;
	transition: all var( --aws-ease );
	border: 1px solid var( --aws-line );
}

.post-type-archive-service_area .card:hover .card-body .hstack::after {
	background: linear-gradient( 135deg, var( --aws-teal ), var( --aws-teal-deep ) );
	color: var( --aws-peach );
	border-color: var( --aws-teal );
	transform: translateX( 3px ) scale( 1.05 );
}

/* When stats has only one span + the chevron, push the chevron right */
.post-type-archive-service_area .card-body .hstack > span:only-of-type {
	margin-right: auto;
}

@media (max-width: 575.98px) {
	.post-type-archive-service_area .card .ratio i.fa-map-marker-alt,
	.post-type-archive-service_area .card .ratio i.fa-3x {
		width: 68px !important;
		height: 68px !important;
		font-size: 1.45rem !important;
	}
	.post-type-archive-service_area .card .ratio::after {
		bottom: 10px;
		right: 12px;
		font-size: 1rem;
	}
	.post-type-archive-service_area .card-body { padding: 1.25rem 1.25rem 1.4rem !important; }
	.post-type-archive-service_area .card-body .h5,
	.post-type-archive-service_area .card-body h2 { font-size: 1rem !important; }
}

/* Pagination */
.post-type-archive-service_area .pagination,
.post-type-archive-service_area nav.navigation .nav-links {
	display: flex !important;
	justify-content: center !important;
	gap: .35rem !important;
	margin-top: 2.5rem !important;
}

.post-type-archive-service_area .page-numbers {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 40px !important;
	height: 40px !important;
	padding: 0 .65rem !important;
	background: #ffffff !important;
	color: var( --aws-teal-deep ) !important;
	border: 1.5px solid var( --aws-line ) !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	transition: all var( --aws-ease ) !important;
	font-size: .9rem !important;
}

.post-type-archive-service_area .page-numbers.current,
.post-type-archive-service_area .page-numbers:hover {
	background: var( --aws-teal ) !important;
	color: #ffffff !important;
	border-color: var( --aws-teal ) !important;
}

/* ==========================================================================
   QUICK BOXES (trust bar)
   ========================================================================== */

.section-quick-boxes {
	background: var( --aws-cream ) !important;
	border-bottom: 1px dashed var( --aws-line ) !important;
	padding: 1.25rem 0 !important;
	margin: 0 !important;
}

.section-quick-boxes .row { gap: 0 !important; }

.section-quick-boxes .col {
	border-right: 1px dashed var( --aws-line );
}

.section-quick-boxes .col:last-child { border-right: none; }

.section-quick-boxes .btn {
	display: flex !important;
	flex-direction: column !important;
	gap: .55rem !important;
	padding: 1rem 1.1rem !important;
	background: transparent !important;
	border: none !important;
	color: var( --aws-teal-deep ) !important;
	text-decoration: none !important;
	transition: all var( --aws-ease ) !important;
	height: 100%;
	width: 100%;
	text-align: left !important;
	border-radius: var( --aws-radius-sm ) !important;
}

.section-quick-boxes .btn:hover {
	background: var( --aws-cream-soft ) !important;
	transform: translateY( -2px );
}

.section-quick-boxes .btn svg {
	color: var( --aws-pink ) !important;
	width: 28px !important;
	height: 28px !important;
}

.section-quick-boxes .btn .h5,
.section-quick-boxes .btn p.h5 {
	font-family: 'Playfair Display', serif !important;
	font-weight: 700 !important;
	font-size: .92rem !important;
	color: var( --aws-teal-deep ) !important;
	margin: 0 0 .25rem !important;
	line-height: 1.25 !important;
}

.section-quick-boxes .btn p {
	color: var( --aws-ink-soft ) !important;
	font-size: .78rem !important;
	margin: 0 !important;
	line-height: 1.4 !important;
}

@media (max-width: 767.98px) {
	.section-quick-boxes .row { flex-wrap: wrap !important; }
	.section-quick-boxes .col {
		flex: 0 0 50% !important;
		max-width: 50% !important;
	}
	.section-quick-boxes .col:nth-child(2) { border-right: none !important; }
	.section-quick-boxes .col:nth-child(1),
	.section-quick-boxes .col:nth-child(2) { border-bottom: 1px dashed var( --aws-line ); }
}

/* ==========================================================================
   SINGLE AREA — Content Section + Info Boxes + Read More
   ========================================================================== */

.aws-content-section {
	padding: 3.5rem 1rem 3rem !important;
	background: var( --aws-cream-soft );
}

.aws-content-section .container { max-width: 1100px !important; }

.aws-content-wrapper {
	background: #ffffff;
	border: 1.5px solid var( --aws-line );
	border-radius: var( --aws-radius-md );
	padding: 2rem !important;
	box-shadow: var( --aws-shadow-md );
}

/* Info Boxes — quick stats grid */
.aws-info-boxes-container {
	margin: 0 0 1.75rem !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
}

.aws-info-boxes {
	display: grid !important;
	grid-template-columns: repeat( auto-fit, minmax( 160px, 1fr ) ) !important;
	gap: .85rem !important;
	margin: 0 !important;
}

.aws-info-box {
	background: linear-gradient( 145deg, var( --aws-cream ) 0%, var( --aws-cream-soft ) 100% ) !important;
	border: 1.5px solid var( --aws-line ) !important;
	border-radius: var( --aws-radius-sm ) !important;
	padding: 1rem 1.1rem !important;
	box-shadow: var( --aws-shadow-sm ) !important;
	text-align: left !important;
	transition: all var( --aws-ease ) !important;
}

.aws-info-box:hover {
	border-color: var( --aws-pink ) !important;
	transform: translateY( -2px );
}

.aws-info-label {
	font-family: 'Lato', sans-serif !important;
	font-size: .68rem !important;
	font-weight: 700 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var( --aws-ink-soft ) !important;
	margin-bottom: .35rem !important;
}

.aws-info-value {
	font-family: 'Playfair Display', serif !important;
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	color: var( --aws-teal-deep ) !important;
	line-height: 1.25 !important;
}

.aws-info-value a {
	color: var( --aws-teal-deep ) !important;
	text-decoration: none !important;
	transition: color var( --aws-ease ) !important;
}

.aws-info-value a:hover { color: var( --aws-pink ) !important; }

/* Content body + Read more */
.aws-content-body { margin: 0 !important; }

.aws-content-preview {
	font-family: 'Lato', sans-serif !important;
	font-size: 1rem !important;
	line-height: 1.7 !important;
	color: var( --aws-ink ) !important;
	overflow: hidden;
	transition: max-height .4s ease;
}

.aws-content-preview.collapsed { max-height: 150px; }
.aws-content-preview.expanded { max-height: 5000px; }

.aws-content-preview h2,
.aws-content-preview h3,
.aws-content-preview h4 {
	font-family: 'Playfair Display', serif !important;
	color: var( --aws-teal-deep ) !important;
	font-weight: 700 !important;
	margin: 1.5rem 0 .75rem !important;
}

.aws-content-preview h2 { font-size: 1.5rem !important; }
.aws-content-preview h3 { font-size: 1.25rem !important; }

.aws-content-preview p { margin: 0 0 1rem !important; }

.aws-content-preview a {
	color: var( --aws-teal ) !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
}

.aws-content-preview a:hover { color: var( --aws-pink ) !important; }

.aws-read-more-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: .45rem !important;
	margin-top: 1rem !important;
	padding: .55rem 1.25rem !important;
	background: transparent !important;
	color: var( --aws-teal ) !important;
	border: 1.5px solid var( --aws-teal ) !important;
	border-radius: 999px !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: .82rem !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	transition: all var( --aws-ease ) !important;
}

.aws-read-more-btn:hover {
	background: var( --aws-teal ) !important;
	color: #ffffff !important;
}

/* ==========================================================================
   SECTION HEADERS (used in products / map)
   ========================================================================== */

.aws-section-header {
	text-align: center !important;
	max-width: 720px !important;
	margin: 0 auto 2.5rem !important;
}

.aws-section-title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 2rem, 4vw, 2.75rem ) !important;
	font-weight: 400 !important;
	color: var( --aws-teal-deep ) !important;
	line-height: 1.05 !important;
	margin: 0 0 .65rem !important;
}

.aws-section-subtitle {
	font-family: 'Playfair Display', serif !important;
	font-style: italic !important;
	color: var( --aws-ink-soft ) !important;
	font-size: 1.05rem !important;
	max-width: 56ch !important;
	margin: 0 auto !important;
	line-height: 1.55 !important;
}

/* ==========================================================================
   BREEDS GRID (single area page — items grid)
   ========================================================================== */

.section-breeds.aws-breeds-section,
.aws-breeds-section {
	background: linear-gradient( 145deg, var( --aws-cream ) 0%, var( --aws-cream-soft ) 100% ) !important;
	padding: 3.5rem 1rem !important;
}

.aws-breeds-section .container { max-width: 1240px !important; }

.aws-breeds-section .h4,
.aws-breeds-section p.h4 {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 1.85rem, 3.5vw, 2.4rem ) !important;
	font-weight: 400 !important;
	color: var( --aws-teal-deep ) !important;
	line-height: 1.1 !important;
	margin: 0 0 1.75rem !important;
	text-align: center !important;
}

.aws-breeds-section .link-primary {
	color: var( --aws-teal ) !important;
	width: 44px !important;
	height: 44px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #ffffff !important;
	border-radius: 50% !important;
	box-shadow: var( --aws-shadow-sm ) !important;
	transition: all var( --aws-ease ) !important;
	flex-shrink: 0;
}

.aws-breeds-section .link-primary:hover {
	background: var( --aws-teal ) !important;
	color: #ffffff !important;
	transform: scale( 1.06 );
}

/* ==========================================================================
   PRODUCTS SECTION (WC items)
   ========================================================================== */

.aws-products-section {
	background: var( --aws-cream-soft ) !important;
	padding: 4rem 1rem !important;
}

.aws-products-section .container { max-width: 1240px !important; }

.aws-woo-wrapper { margin-top: 1rem; }

.cas-no-woo-message {
	background: #ffffff;
	border: 1.5px dashed var( --aws-line );
	border-radius: var( --aws-radius-md );
	padding: 2rem;
	text-align: center;
	color: var( --aws-ink-soft );
	font-style: italic;
}

/* ==========================================================================
   FEATURES SECTION (Why Choose Us)
   ========================================================================== */

.aws-features-section {
	background: linear-gradient( 145deg, var( --aws-cream-soft ) 0%, var( --aws-cream-deep ) 100% ) !important;
	padding: 4rem 1rem !important;
}

.aws-features-section .container { max-width: 1240px !important; }

.aws-features-header {
	text-align: center !important;
	max-width: 720px !important;
	margin: 0 auto 2.5rem !important;
}

.aws-features-title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 2rem, 4vw, 2.75rem ) !important;
	font-weight: 400 !important;
	color: var( --aws-teal-deep ) !important;
	margin: 0 0 .65rem !important;
	line-height: 1.05 !important;
}

.aws-features-subtitle {
	font-family: 'Playfair Display', serif !important;
	font-style: italic !important;
	color: var( --aws-ink-soft ) !important;
	font-size: 1.05rem !important;
	margin: 0 !important;
}

.aws-features-grid {
	display: grid !important;
	grid-template-columns: repeat( auto-fit, minmax( 240px, 1fr ) ) !important;
	gap: 1.25rem !important;
}

.aws-feature-card {
	background: #ffffff !important;
	border: 1.5px solid var( --aws-line ) !important;
	border-radius: var( --aws-radius-md ) !important;
	padding: 1.75rem 1.5rem !important;
	box-shadow: var( --aws-shadow-md ) !important;
	transition: all var( --aws-ease ) !important;
	position: relative;
	overflow: hidden;
}

.aws-feature-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient( 90deg, var( --aws-pink-soft ), var( --aws-peach ) );
	opacity: 0;
	transition: opacity var( --aws-ease );
}

.aws-feature-card:hover {
	transform: translateY( -3px ) !important;
	border-color: var( --aws-pink ) !important;
	box-shadow: var( --aws-shadow-lg ) !important;
}

.aws-feature-card:hover::before { opacity: 1; }

.aws-feature-title {
	font-family: 'Playfair Display', serif !important;
	font-size: 1.2rem !important;
	font-weight: 700 !important;
	color: var( --aws-teal-deep ) !important;
	margin: 0 0 .85rem !important;
	display: flex !important;
	align-items: center !important;
	gap: .65rem !important;
	line-height: 1.25 !important;
}

.aws-feature-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	background: linear-gradient( 135deg, var( --aws-pink-soft ), var( --aws-peach ) ) !important;
	color: var( --aws-teal-deep ) !important;
	flex-shrink: 0;
	box-shadow: 0 6px 14px -4px rgba( 217, 178, 175, .55 );
}

.aws-feature-icon svg {
	width: 20px !important;
	height: 20px !important;
	color: var( --aws-teal-deep ) !important;
}

.aws-feature-desc {
	color: var( --aws-ink-soft ) !important;
	font-size: .95rem !important;
	line-height: 1.6 !important;
	margin: 0 0 1rem !important;
}

.aws-feature-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: .35rem !important;
	padding: .5rem 1.1rem !important;
	background: transparent !important;
	color: var( --aws-teal ) !important;
	border: 1.5px solid var( --aws-teal ) !important;
	border-radius: 999px !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: .8rem !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	transition: all var( --aws-ease ) !important;
}

.aws-feature-btn:hover {
	background: var( --aws-teal ) !important;
	color: #ffffff !important;
}

/* ==========================================================================
   GUARANTEE BANNER
   ========================================================================== */

.section-guarantee-banner {
	padding: 3rem 1rem !important;
	background: var( --aws-cream-soft );
	margin-bottom: 0 !important;
}

.section-guarantee-banner .container { max-width: 1100px !important; }

.aws-guarantee-banner {
	background: linear-gradient( 135deg, var( --aws-teal ) 0%, var( --aws-teal-deep ) 100% ) !important;
	color: #ffffff !important;
	border-radius: var( --aws-radius-lg ) !important;
	padding: 2.25rem 2.5rem !important;
	box-shadow: 0 24px 60px -24px rgba( 61, 81, 85, .55 ) !important;
	position: relative;
	overflow: hidden;
}

.aws-guarantee-banner::before {
	content: '';
	position: absolute;
	top: -40%;
	right: -10%;
	width: 60%;
	height: 200%;
	background: radial-gradient( circle, rgba( 234, 191, 189, .25 ), transparent 65% );
	pointer-events: none;
}

.aws-guarantee-banner > * { position: relative; z-index: 1; }

.aws-guarantee-banner p { color: rgba( 255, 255, 255, .92 ) !important; }

.aws-guarantee-banner strong.display-5 {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 2.4rem, 5vw, 3.4rem ) !important;
	font-weight: 400 !important;
	color: var( --aws-peach ) !important;
	letter-spacing: -.02em !important;
}

.aws-guarantee-banner span.h4 {
	font-family: 'Playfair Display', serif !important;
	font-style: italic !important;
	font-weight: 600 !important;
	color: rgba( 255, 255, 255, .92 ) !important;
	font-size: 1.25rem !important;
}

/* ==========================================================================
   TRUST CARDS (snap slider of 3)
   ========================================================================== */

.section-trust-us {
	padding: 3.5rem 1rem !important;
	background: var( --aws-cream );
	margin: 0 !important;
}

.section-trust-us .container { max-width: 1240px !important; }

.section-trust-us .glide__slides {
	gap: 1rem !important;
}

.section-trust-us .ratio.rounded-1 {
	border-radius: var( --aws-radius-md ) !important;
	border: 1.5px solid var( --aws-line );
	box-shadow: var( --aws-shadow-md );
	transition: all var( --aws-ease );
	overflow: hidden;
}

.section-trust-us .glide__slide:hover .ratio.rounded-1 {
	transform: translateY( -3px );
	border-color: var( --aws-pink ) !important;
	box-shadow: var( --aws-shadow-lg );
}

.section-trust-us .ratio .h3 {
	background: linear-gradient( 180deg, transparent 0%, rgba( 0, 0, 0, .55 ) 100% ) !important;
	padding: 1.5rem 1.25rem 1.1rem !important;
}

.section-trust-us .ratio .h3 .fs-5 {
	font-family: 'Lato', sans-serif !important;
	font-size: .72rem !important;
	font-weight: 700 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var( --aws-peach ) !important;
	display: block !important;
	margin-bottom: .35rem !important;
}

.section-trust-us .ratio .h3 strong {
	font-family: 'Playfair Display', serif !important;
	font-size: 1.35rem !important;
	font-weight: 700 !important;
	color: #ffffff !important;
	line-height: 1.15 !important;
}

.section-trust-us a.d-lg-none {
	color: var( --aws-teal ) !important;
	background: #ffffff !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-shadow: var( --aws-shadow-sm );
}

/* ==========================================================================
   FAQ SECTION
   ========================================================================== */

.aws-faq-section {
	background: linear-gradient( 145deg, var( --aws-cream-soft ) 0%, var( --aws-cream-deep ) 100% ) !important;
	padding: 4rem 1rem !important;
}

.aws-faq-section .container { max-width: 900px !important; }

.aws-faq-section header {
	text-align: center !important;
	margin: 0 auto 2.25rem !important;
	max-width: 640px;
}

.aws-faq-section h2,
.aws-faq-section header h2 {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 1.85rem, 3.8vw, 2.5rem ) !important;
	font-weight: 400 !important;
	color: var( --aws-teal-deep ) !important;
	margin: 0 0 .55rem !important;
	line-height: 1.1 !important;
}

.aws-faq-section header p {
	font-family: 'Playfair Display', serif !important;
	font-style: italic !important;
	color: var( --aws-ink-soft ) !important;
	font-size: 1rem !important;
	margin: 0 !important;
}

.aws-faq-section .accordion {
	background: transparent;
}

.aws-faq-section .accordion-item {
	background: #ffffff !important;
	border: 1.5px solid var( --aws-line ) !important;
	border-radius: var( --aws-radius-md ) !important;
	margin-bottom: .85rem !important;
	box-shadow: var( --aws-shadow-sm ) !important;
	overflow: hidden !important;
}

.aws-faq-section .accordion-button {
	background: #ffffff !important;
	color: var( --aws-teal-deep ) !important;
	font-family: 'Playfair Display', serif !important;
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	padding: 1.15rem 1.4rem !important;
	border: none !important;
	box-shadow: none !important;
	transition: all var( --aws-ease ) !important;
}

.aws-faq-section .accordion-button::after {
	background-image: none !important;
	content: '\F282' !important;
	font-family: 'bootstrap-icons' !important;
	color: var( --aws-pink ) !important;
	font-size: 1.1rem !important;
	width: auto !important;
	height: auto !important;
	transition: transform var( --aws-ease ) !important;
	margin-left: auto !important;
}

.aws-faq-section .accordion-button:not(.collapsed) {
	background: linear-gradient( 90deg, var( --aws-pink-soft ), var( --aws-peach-soft ) ) !important;
	color: var( --aws-teal-deep ) !important;
}

.aws-faq-section .accordion-button:not(.collapsed)::after {
	transform: rotate( 180deg ) !important;
	color: var( --aws-teal ) !important;
}

.aws-faq-section .accordion-button:focus {
	outline: none !important;
	box-shadow: 0 0 0 3px rgba( 217, 178, 175, .35 ) !important;
}

.aws-faq-section .accordion-body {
	background: var( --aws-cream-soft ) !important;
	color: var( --aws-ink-soft ) !important;
	font-family: 'Lato', sans-serif !important;
	font-size: .95rem !important;
	line-height: 1.65 !important;
	padding: 1.25rem 1.4rem !important;
	border-top: 1px dashed var( --aws-line ) !important;
}

.aws-faq-section .accordion-body p { margin: 0 !important; }

/* ==========================================================================
   MAP SECTION
   ========================================================================== */

.aws-map-section {
	background: var( --aws-cream-soft ) !important;
	padding: 4rem 1rem !important;
}

.aws-map-section .container { max-width: 1240px !important; }

.aws-map-section #service-area-map {
	height: 460px !important;
	border-radius: var( --aws-radius-lg ) !important;
	overflow: hidden !important;
	border: 2px solid var( --aws-pink-soft ) !important;
	box-shadow: var( --aws-shadow-lg ) !important;
}

@media (max-width: 575.98px) {
	.aws-map-section #service-area-map {
		height: 320px !important;
		border-radius: var( --aws-radius-md ) !important;
	}
}

/* ==========================================================================
   CTA SECTION (final)
   ========================================================================== */

.aws-cta-section {
	background: linear-gradient( 135deg, var( --aws-teal ) 0%, var( --aws-teal-deep ) 100% ) !important;
	color: #ffffff !important;
	padding: 4rem 1rem !important;
	position: relative;
	overflow: hidden;
}

.aws-cta-section::before,
.aws-cta-section::after {
	content: '';
	position: absolute;
	pointer-events: none;
}

.aws-cta-section::before {
	top: -20%;
	left: -10%;
	width: 50%;
	height: 80%;
	background: radial-gradient( circle, rgba( 234, 191, 189, .18 ), transparent 65% );
}

.aws-cta-section::after {
	bottom: -20%;
	right: -10%;
	width: 50%;
	height: 80%;
	background: radial-gradient( circle, rgba( 238, 204, 170, .15 ), transparent 65% );
}

.aws-cta-section .container { max-width: 800px !important; position: relative; z-index: 1; }

.aws-cta-content {
	text-align: center !important;
}

.aws-cta-title {
	font-family: 'Mollie Glaston', 'Playfair Display', serif !important;
	font-size: clamp( 2rem, 4.5vw, 3rem ) !important;
	font-weight: 400 !important;
	color: #ffffff !important;
	margin: 0 0 .85rem !important;
	line-height: 1.1 !important;
}

.aws-cta-text {
	font-family: 'Playfair Display', serif !important;
	font-style: italic !important;
	color: rgba( 255, 255, 255, .92 ) !important;
	font-size: 1.1rem !important;
	max-width: 56ch !important;
	margin: 0 auto 1.75rem !important;
	line-height: 1.55 !important;
}

.aws-cta-button {
	display: inline-flex !important;
	align-items: center !important;
	gap: .55rem !important;
	padding: 1rem 2rem !important;
	background: #ffffff !important;
	color: var( --aws-teal-deep ) !important;
	border: none !important;
	border-radius: 999px !important;
	font-family: 'Lato', sans-serif !important;
	font-weight: 700 !important;
	font-size: .95rem !important;
	letter-spacing: .05em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	box-shadow: 0 14px 28px -10px rgba( 0, 0, 0, .35 ) !important;
	transition: all var( --aws-ease ) !important;
}

.aws-cta-button:hover {
	background: var( --aws-peach ) !important;
	color: var( --aws-teal-deep ) !important;
	transform: translateY( -2px );
	box-shadow: 0 18px 36px -10px rgba( 0, 0, 0, .45 ) !important;
}

.aws-cta-button svg {
	width: 16px !important;
	height: 16px !important;
}

/* ==========================================================================
   Mobile tweaks
   ========================================================================== */

@media (max-width: 575.98px) {
	.aws-hero-section { padding: 2.75rem 1rem 2.5rem !important; }
	.aws-content-section { padding: 2rem .85rem !important; }
	.aws-content-wrapper { padding: 1.25rem !important; border-radius: var( --aws-radius-sm ) !important; }
	.aws-info-boxes { grid-template-columns: 1fr 1fr !important; gap: .55rem !important; }
	.aws-info-box { padding: .75rem .85rem !important; }
	.aws-info-value { font-size: .92rem !important; }
	.aws-features-section,
	.aws-products-section,
	.aws-faq-section,
	.aws-map-section,
	.aws-cta-section,
	.section-trust-us,
	.section-guarantee-banner,
	.section-breeds.aws-breeds-section { padding: 2.5rem 1rem !important; }
	.aws-feature-card { padding: 1.25rem 1.1rem !important; }
	.aws-guarantee-banner { padding: 1.5rem 1.25rem !important; border-radius: var( --aws-radius-md ) !important; }
	.aws-guarantee-banner .text-md-start { text-align: center !important; }
}

@media (prefers-reduced-motion: reduce) {
	.post-type-archive-service_area .card:hover,
	.aws-info-box:hover,
	.aws-feature-card:hover,
	.section-quick-boxes .btn:hover,
	.aws-cta-button:hover,
	.aws-breeds-section .link-primary:hover,
	.section-trust-us .glide__slide:hover .ratio.rounded-1 { transform: none !important; }
}
