/*!
Theme Name: willowspractice Theme
Theme URI: http://underscores.me/
Author: KamSoft Consultants
Author URI: #
Description: The Willows Medical Practice WordPress Theme
Version: 1.0.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: willowspractice-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# CSS Variables
# Base overrides
# Layout
# Navbar
# Hero / Banner
# Services Grid
# Latest News
# Sidebar & Widgets
# Posts & Pages
# Comments
# Post Navigation
# Footer
# Media
# Accessibility & Utilities
--------------------------------------------------------------*/


/* ==============================================================
   # CSS Variables
   ============================================================== */

:root {
	--willows-blue:        #005eb8;   /* NHS blue */
	--willows-blue-dark:   #003d7a;
	--willows-blue-light:  #4a90d9;
	--willows-accent:      #0072ce;
	--willows-text:        #212529;
	--willows-muted:       #6c757d;
	--willows-border:      #dee2e6;
	--willows-bg-light:    #f4f7fb;
	--willows-footer-bg:   #1a2233;
	--willows-footer-text: #c8d3e0;
}


/* ==============================================================
   # Base overrides
   ============================================================== */

body {
	color: var(--willows-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, sans-serif;
	background: #fff;
}

a {
	color: var(--willows-blue);
}

a:hover,
a:focus {
	color: var(--willows-blue-dark);
}

img {
	max-width: 100%;
	height: auto;
}


/* ==============================================================
   # Layout
   ============================================================== */

.site-content {
	background: #fff;
}


/* ==============================================================
   # Navbar
   ============================================================== */

.willows-navbar {
	background-color: var(--willows-blue) !important;
	padding-top: 0;
	padding-bottom: 0;
	min-height: 56px;
}

.willows-navbar .navbar-brand-text {
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #fff;
}

.willows-navbar .navbar-brand img,
.willows-navbar .custom-logo {
	max-height: 44px;
	width: auto;
}

/* Nav links */
.willows-navbar .nav-link {
	color: rgba(255, 255, 255, 0.92) !important;
	font-size: 0.9375rem;
	font-weight: 500;
	padding: 1rem 0.85rem !important;
	border-bottom: 3px solid transparent;
	transition: color 0.15s, border-color 0.15s;
}

.willows-navbar .nav-link:hover,
.willows-navbar .nav-link:focus {
	color: #fff !important;
	border-bottom-color: rgba(255, 255, 255, 0.6);
}

.willows-navbar .nav-link.active,
.willows-navbar .nav-item.current-menu-item > .nav-link {
	color: #fff !important;
	border-bottom-color: #fff;
}

/* Dropdown */
.willows-navbar .dropdown-menu {
	border: none;
	border-radius: 0.25rem;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
	margin-top: 0;
}

.willows-navbar .dropdown-item {
	font-size: 0.9rem;
	padding: 0.5rem 1.25rem;
}

.willows-navbar .dropdown-item:hover {
	background: var(--willows-bg-light);
	color: var(--willows-blue);
}

/* Accessibility icon button */
.willows-accessibility-btn {
	opacity: 0.85;
	transition: opacity 0.15s;
}

.willows-accessibility-btn:hover {
	opacity: 1;
}

/* Mobile */
@media (max-width: 991.98px) {
	.willows-navbar .nav-link {
		padding: 0.65rem 1rem !important;
		border-bottom: none;
		border-left: 3px solid transparent;
	}

	.willows-navbar .nav-link:hover,
	.willows-navbar .nav-link.active,
	.willows-navbar .nav-item.current-menu-item > .nav-link {
		border-left-color: rgba(255, 255, 255, 0.7);
	}
}


/* ==============================================================
   # Hero / Banner
   ============================================================== */

.willows-hero {
	position: relative;
	min-height: 440px;
	display: flex;
	align-items: flex-end;
}

@media (min-width: 768px) {
	.willows-hero {
		min-height: 520px;
	}
}

/* Background image — use a medical/NHS stock photo.
   Replace the URL with your actual hero image. */
.willows-hero-bg {
	position: absolute;
	inset: 0;
	background-image: url('/wp-content/uploads/2026/09/photo-1579684385127-1ef15d508118.jpg');
	background-size: cover;
	background-position: center top;
	z-index: 0;
}

/* Gradient overlay: transparent at top, white-ish at bottom so
   text is always readable regardless of photo content */
.willows-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.05)  0%,
		rgba(0, 0, 0, 0.10) 35%,
		rgba(255, 255, 255, 0.82) 70%,
		rgba(255, 255, 255, 0.97) 100%
	);
	z-index: 1;
}

/* Content sits above both layers */
.willows-hero-content {
	position: relative;
	z-index: 2;
	width: 100%;
	padding: 2.5rem 0 3rem;
}

.willows-hero-title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	color: var(--willows-blue-dark);
	line-height: 1.2;
	margin-bottom: 0.5rem;
}

.willows-hero-subtitle {
	font-size: 1.0625rem;
	color: #444;
	margin-bottom: 1.25rem;
}

/* "Book an Appointment" button */
.willows-btn-book {
	background-color: transparent;
	border: 2px solid var(--willows-blue);
	color: var(--willows-blue);
	font-weight: 600;
	font-size: 0.9375rem;
	border-radius: 50px;
	padding: 0.55rem 1.5rem;
	transition: background 0.18s, color 0.18s;
}

.willows-btn-book:hover,
.willows-btn-book:focus {
	background-color: var(--willows-blue);
	color: #fff;
	border-color: var(--willows-blue);
}


/* ==============================================================
   # Services Grid
   ============================================================== */

.willows-services {
	background: var(--willows-bg-light);
}

.willows-service-card {
	background: #fff;
	border: 1px solid var(--willows-border);
	border-radius: 0.6rem;
	color: var(--willows-text);
	transition: box-shadow 0.18s, transform 0.18s, border-color 0.18s;
	min-height: 170px;
}

.willows-service-card:hover {
	box-shadow: 0 4px 18px rgba(0, 94, 184, 0.12);
	border-color: var(--willows-blue-light);
	transform: translateY(-2px);
	color: var(--willows-blue);
}

.willows-service-icon {
	color: var(--willows-blue);
	opacity: 0.85;
}

.willows-service-card:hover .willows-service-icon {
	opacity: 1;
}

.willows-service-title {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.35rem;
	color: var(--willows-text);
}

.willows-service-card:hover .willows-service-title {
	color: var(--willows-blue);
}

.willows-service-desc {
	font-size: 0.85rem;
	color: var(--willows-muted);
	line-height: 1.45;
}


/* ==============================================================
   # Latest News
   ============================================================== */

.willows-news {
	background: #fff;
}

.willows-section-title {
	font-size: 1.375rem;
	font-weight: 800;
	color: var(--willows-text);
	border-bottom: 2px solid var(--willows-border);
	padding-bottom: 0.75rem;
}

.willows-news-headline {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.35rem;
}

.willows-news-headline a {
	color: var(--willows-text);
	text-decoration: none;
}

.willows-news-headline a:hover {
	color: var(--willows-blue);
	text-decoration: underline;
}

.willows-news-item {
	border-bottom-color: var(--willows-border) !important;
}


/* ==============================================================
   # Sidebar & Widgets
   ============================================================== */

.widget-area {
	padding-left: 1rem;
}

.widget {
	margin-bottom: 2rem;
}

.widget-title {
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding-bottom: 0.5rem;
	margin-bottom: 1rem;
	border-bottom: 2px solid var(--willows-blue);
}

.widget ul {
	list-style: none;
	padding-left: 0;
	margin-bottom: 0;
}

.widget ul li {
	padding: 0.25rem 0;
	border-bottom: 1px solid #f0f0f0;
	font-size: 0.9rem;
}

.widget ul li:last-child {
	border-bottom: none;
}

.widget select {
	width: 100%;
}


/* ==============================================================
   # Posts & Pages
   ============================================================== */

.page-title {
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 1.25rem;
}

.entry-header {
	margin-bottom: 1rem;
}

.entry-title {
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.entry-title a {
	color: inherit;
	text-decoration: none;
}

.entry-title a:hover {
	color: var(--willows-blue);
}

.entry-meta {
	font-size: 0.875rem;
	color: var(--willows-muted);
	margin-bottom: 0.75rem;
}

.entry-content,
.entry-summary {
	margin-top: 1rem;
}

.entry-footer {
	font-size: 0.875rem;
	color: var(--willows-muted);
	margin-top: 1rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--willows-border);
}

/* Post card in loops */
.post-card {
	border: 1px solid var(--willows-border);
	border-radius: 0.5rem;
	overflow: hidden;
	margin-bottom: 1.5rem;
	transition: box-shadow 0.15s;
}

.post-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.post-thumbnail {
	margin-bottom: 1.25rem;
}

.post-thumbnail img {
	width: 100%;
	height: auto;
	border-radius: 0.375rem;
}

.sticky {
	border-left: 4px solid var(--willows-blue);
	padding-left: 1rem;
}

.updated:not(.published) {
	display: none;
}

.page-links {
	clear: both;
	margin: 1rem 0;
}


/* ==============================================================
   # Comments
   ============================================================== */

.comments-area {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 2px solid var(--willows-border);
}

.comments-title {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
}

.comment-list {
	list-style: none;
	padding-left: 0;
}

.comment-list .children {
	list-style: none;
	padding-left: 2rem;
	border-left: 3px solid var(--willows-border);
	margin-top: 1rem;
}

.comment-body.card {
	background: #f8f9fa;
	border-color: var(--willows-border);
}

.comment-meta {
	font-size: 0.875rem;
	color: var(--willows-muted);
	margin-bottom: 0.5rem;
}

.comment-author .fn {
	font-weight: 600;
}

.comment-author img {
	border-radius: 50%;
	margin-right: 0.5rem;
}

.no-comments {
	color: var(--willows-muted);
	font-style: italic;
}

.comment-form label {
	font-weight: 600;
}

.comment-form .required {
	color: #dc3545;
}


/* ==============================================================
   # Post Navigation
   ============================================================== */

.posts-navigation,
.post-navigation,
.comment-navigation {
	margin: 1.5rem 0;
	padding: 1rem 0;
	border-top: 1px solid var(--willows-border);
}

.nav-links {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.nav-subtitle {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--willows-muted);
}

.nav-title {
	font-weight: 600;
}


/* ==============================================================
   # Footer
   ============================================================== */

.willows-footer {
	background-color: var(--willows-footer-bg);
	color: var(--willows-footer-text);
}

.willows-footer-main {
	border-top: 3px solid var(--willows-blue);
}

.footer-heading {
	font-size: 0.9375rem;
	font-weight: 700;
	color: #fff;
	margin-bottom: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.footer-links li {
	margin-bottom: 0.4rem;
}

.footer-link {
	color: var(--willows-footer-text);
	text-decoration: none;
	transition: color 0.15s;
}

.footer-link:hover,
.footer-link:focus {
	color: #fff;
	text-decoration: underline;
}

address .footer-link {
	word-break: break-all;
}

/* NHS logo block */
.nhs-logo {
	width: 72px;
	height: 42px;
	background-color: #005eb8;
	border: 2px solid #fff;
	border-radius: 4px;
	font-size: 1.35rem;
	font-weight: 900;
	letter-spacing: 0.05em;
	color: #fff;
	font-family: "Frutiger", "Arial Black", Arial, sans-serif;
}

.willows-footer-bottom {
	background-color: rgba(0, 0, 0, 0.25);
	color: var(--willows-footer-text);
}


/* ==============================================================
   # Media
   ============================================================== */

.wp-caption {
	max-width: 100%;
	margin-bottom: 1.5rem;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption-text {
	text-align: center;
	font-size: 0.875rem;
	color: var(--willows-muted);
	margin-top: 0.5rem;
}

.gallery {
	display: grid;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.gallery-item { width: 100%; }
.gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }
.gallery-columns-6 { grid-template-columns: repeat(6, 1fr); }

embed, iframe, object { max-width: 100%; }


/* ==============================================================
   # Accessibility & Utilities
   ============================================================== */

.skip-link.visually-hidden-focusable:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	color: var(--willows-blue);
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	left: 5px;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	z-index: 100000;
	position: fixed;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

#primary[tabindex="-1"]:focus { outline: 0; }

.alignleft  { float: left;  margin-right: 1.5rem; margin-bottom: 1rem; }
.alignright { float: right; margin-left: 1.5rem;  margin-bottom: 1rem; }
.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1rem;
}

.custom-logo-link { display: inline-block; }

/* Infinite scroll */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer { display: none; }
.infinity-end.neverending .site-footer    { display: block; }


/* ==============================================================
   # Newsletter Section
   ============================================================== */

.willows-newsletter {
	background-color: var(--willows-blue);
	padding: 4rem 0;
	position: relative;
	overflow: hidden;
}

/* Subtle decorative circle in the background */
.willows-newsletter::before {
	content: '';
	position: absolute;
	top: -80px;
	right: -80px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	pointer-events: none;
}

.willows-newsletter::after {
	content: '';
	position: absolute;
	bottom: -60px;
	left: -60px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.05);
	pointer-events: none;
}

/* ---- Left column ---- */
.willows-newsletter-left {
	padding: 1.5rem 2rem 1.5rem 0;
	color: #fff;
}

.willows-newsletter-icon {
	color: rgba(255, 255, 255, 0.75);
}

.willows-newsletter-heading {
	font-size: 2rem;
	font-weight: 800;
	color: #fff;
	margin-bottom: 0.5rem;
	letter-spacing: -0.02em;
}

.willows-newsletter-intro {
	font-size: 0.9375rem;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 0.5rem;
}

/* PDF / newsletter download link */
.willows-newsletter-pdf-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: #fff;
	font-weight: 700;
	font-size: 0.9375rem;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.5);
	text-underline-offset: 3px;
	transition: text-decoration-color 0.15s, opacity 0.15s;
}

.willows-newsletter-pdf-link:hover,
.willows-newsletter-pdf-link:focus {
	color: #fff;
	opacity: 0.85;
	text-decoration-color: #fff;
}

.willows-newsletter-subtext {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.55;
	max-width: 340px;
	margin-bottom: 0.25rem;
}

/* "Read More Newsletters" button */
.willows-btn-newsletter-more {
	background-color: #fff;
	color: var(--willows-blue);
	border: 2px solid #fff;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.875rem;
	padding: 0.5rem 1.4rem;
	transition: background 0.18s, color 0.18s;
}

.willows-btn-newsletter-more:hover,
.willows-btn-newsletter-more:focus {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
}

/* ---- Vertical divider ---- */
.willows-newsletter-divider {
	width: 1px;
	height: 240px;
	background: rgba(255, 255, 255, 0.25);
}

/* ---- Right column ---- */
.willows-newsletter-right {
	padding: 1.5rem 0 1.5rem 2rem;
}

.willows-newsletter-form-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #fff;
	margin-bottom: 0.35rem;
}

.willows-newsletter-form-sub {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.8);
}

/* CF7 form overrides — white inputs on blue background */
.willows-newsletter-form .wpcf7-form {
	margin: 0;
}

.willows-newsletter-form .wpcf7-form p {
	margin-bottom: 0.75rem;
}

.willows-newsletter-form input[type="text"],
.willows-newsletter-form input[type="email"],
.willows-newsletter-form textarea,
.willows-newsletter-form select {
	width: 100%;
	background-color: rgba(255, 255, 255, 0.15);
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 6px;
	color: #fff;
	padding: 0.55rem 0.9rem;
	font-size: 0.9rem;
	transition: border-color 0.18s, background-color 0.18s;
}

.willows-newsletter-form input[type="text"]::placeholder,
.willows-newsletter-form input[type="email"]::placeholder,
.willows-newsletter-form textarea::placeholder {
	color: rgba(255, 255, 255, 0.6);
}

.willows-newsletter-form input[type="text"]:focus,
.willows-newsletter-form input[type="email"]:focus,
.willows-newsletter-form textarea:focus,
.willows-newsletter-form select:focus {
	outline: none;
	background-color: rgba(255, 255, 255, 0.25);
	border-color: #fff;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
}

/* CF7 labels */
.willows-newsletter-form label,
.willows-newsletter-form .wpcf7-form-control-wrap {
	display: block;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
}

/* Submit button */
.willows-newsletter-form input[type="submit"],
.willows-newsletter-form .wpcf7-submit {
	background-color: #fff;
	color: var(--willows-blue);
	border: 2px solid #fff;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.9rem;
	padding: 0.55rem 1.75rem;
	cursor: pointer;
	transition: background 0.18s, color 0.18s, border-color 0.18s;
	display: inline-block;
}

.willows-newsletter-form input[type="submit"]:hover,
.willows-newsletter-form .wpcf7-submit:hover {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
}

/* CF7 validation messages */
.willows-newsletter-form .wpcf7-not-valid-tip {
	color: #ffd6d6;
	font-size: 0.8rem;
	margin-top: 0.2rem;
}

.willows-newsletter-form .wpcf7-response-output {
	border-radius: 6px;
	padding: 0.6rem 1rem;
	font-size: 0.875rem;
	margin-top: 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.4);
	color: #fff;
	background: rgba(255, 255, 255, 0.12);
}

/* ---- Responsive ---- */
@media (max-width: 991.98px) {
	.willows-newsletter-left {
		padding: 0 0 2rem 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.2);
		margin-bottom: 2rem;
	}

	.willows-newsletter-right {
		padding: 0;
	}

	.willows-newsletter-subtext {
		max-width: 100%;
	}
}


/* ==============================================================
   # About / Welcome Section
   ============================================================== */

.willows-about {
	background: #fff;
}

/* ---- Left: text ---- */
.willows-about-text {
	padding-right: 1rem;
}

/* Blue rule accent above heading */
.willows-about-rule {
	display: block;
	width: 52px;
	height: 4px;
	background: var(--willows-blue);
	border-radius: 2px;
	margin-bottom: 1.1rem;
}

.willows-about-heading {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--willows-blue-dark);
	line-height: 1.25;
	margin-bottom: 1rem;
}

.willows-about-ethos {
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--willows-blue);
	line-height: 1.55;
	border-left: 3px solid var(--willows-blue);
	padding-left: 0.9rem;
	margin-bottom: 1.1rem;
}

.willows-about-body {
	font-size: 0.9375rem;
	color: #444;
	line-height: 1.7;
	margin-bottom: 1rem;
}

/* CTA buttons */
.willows-btn-about-primary {
	background-color: var(--willows-blue);
	color: #fff;
	border: 2px solid var(--willows-blue);
	border-radius: 50px;
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1.4rem;
	transition: background 0.18s, border-color 0.18s;
}

.willows-btn-about-primary:hover,
.willows-btn-about-primary:focus {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
}

.willows-btn-about-outline {
	background-color: transparent;
	color: var(--willows-blue);
	border: 2px solid var(--willows-blue);
	border-radius: 50px;
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1.4rem;
	transition: background 0.18s, color 0.18s;
}

.willows-btn-about-outline:hover,
.willows-btn-about-outline:focus {
	background-color: var(--willows-blue);
	color: #fff;
}

/* ---- Right: images ---- */
.willows-about-images {
	position: relative;
}

/* Main large image */
.willows-about-img-main {
	object-fit: cover;
	height: 280px;
	box-shadow: 0 6px 24px rgba(0, 94, 184, 0.12);
	transition: transform 0.3s ease;
}

.willows-about-img-main:hover {
	transform: scale(1.015);
}

/* Two smaller thumbnail images */
.willows-about-img-thumb {
	object-fit: contain;
	height: 160px;
	box-shadow: 0 4px 14px rgba(0, 94, 184, 0.10);
	transition: transform 0.3s ease;
}

.willows-about-img-thumb:hover {
	transform: scale(1.02);
}

/* NHS badge floating over the images */
.willows-about-badge {
	position: absolute;
	bottom: 18px;
	left: -18px;
	background: #fff;
	border: 2px solid var(--willows-blue);
	border-radius: 12px;
	padding: 0.55rem 0.9rem;
	box-shadow: 0 4px 16px rgba(0, 94, 184, 0.18);
	color: var(--willows-blue);
	z-index: 2;
}

.willows-about-badge svg {
	flex-shrink: 0;
}

.willows-about-badge-num {
	font-size: 1rem;
	font-weight: 900;
	color: var(--willows-blue);
	line-height: 1;
}

.willows-about-badge-label {
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--willows-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Responsive: stack on mobile */
@media (max-width: 991.98px) {
	.willows-about-text {
		padding-right: 0;
	}

	.willows-about-badge {
		left: 0;
		bottom: -10px;
	}

	.willows-about-img-main {
		height: 220px;
	}

	.willows-about-img-thumb {
		height: 130px;
	}
}

@media (max-width: 575.98px) {
	.willows-about-img-main {
		height: 190px;
	}

	.willows-about-img-thumb {
		height: 110px;
	}
}


/* ==============================================================
   # GP Appointments Section
   ============================================================== */

.willows-gp-appt {
	position: relative;
	overflow: hidden;
	padding: 0;           /* height comes from inner content padding */
}

/* Background image — medical/practice photo */
.willows-gp-appt-bg {
	position: absolute;
	inset: 0;
	background-image: url('/wp-content/uploads/2026/09/images.jpg');
	background-size: cover;
	background-position: center center;
	background-attachment: fixed;   /* subtle parallax feel */
	z-index: 0;
}

/* Deep blue-to-dark overlay so text is always legible */
.willows-gp-appt-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(0, 30, 80, 0.88) 0%,
		rgba(0, 62, 140, 0.82) 50%,
		rgba(0, 30, 80, 0.90) 100%
	);
	z-index: 1;
}

/* All content sits above both layers */
.willows-gp-appt-content {
	position: relative;
	z-index: 2;
	padding: 5rem 0;
}

/* Calendar / appointment icon */
.willows-gp-appt-icon {
	color: rgba(255, 255, 255, 0.65);
	display: flex;
	justify-content: center;
}

/* Main heading */
.willows-gp-appt-heading {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 900;
	color: #fff;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

/* Thin rule under the heading */
.willows-gp-appt-rule {
	width: 60px;
	height: 3px;
	background: rgba(255, 255, 255, 0.55);
	border-radius: 2px;
}

/* First paragraph — slightly larger, emphasises bold words */
.willows-gp-appt-lead {
	font-size: 1.0625rem;
	color: rgba(255, 255, 255, 0.95);
	line-height: 1.75;
	margin-bottom: 1.25rem;
}

.willows-gp-appt-lead strong {
	color: #fff;
	font-weight: 700;
}

/* Second paragraph */
.willows-gp-appt-body {
	font-size: 0.9375rem;
	color: rgba(255, 255, 255, 0.82);
	line-height: 1.75;
}

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

/* Solid white button */
.willows-btn-appt-solid {
	background-color: #fff;
	color: var(--willows-blue);
	border: 2px solid #fff;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.9rem;
	padding: 0.6rem 1.75rem;
	transition: background 0.18s, color 0.18s, border-color 0.18s;
}

.willows-btn-appt-solid:hover,
.willows-btn-appt-solid:focus {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
}

/* Ghost / outline button */
.willows-btn-appt-outline {
	background-color: transparent;
	color: #fff;
	border: 2px solid rgba(255, 255, 255, 0.7);
	border-radius: 50px;
	font-weight: 600;
	font-size: 0.9rem;
	padding: 0.6rem 1.75rem;
	transition: background 0.18s, border-color 0.18s;
}

.willows-btn-appt-outline:hover,
.willows-btn-appt-outline:focus {
	background-color: rgba(255, 255, 255, 0.15);
	border-color: #fff;
	color: #fff;
}

/* ---- Responsive ---- */
@media (max-width: 767.98px) {
	.willows-gp-appt-content {
		padding: 3.5rem 0;
	}

	/* Disable parallax on mobile — avoids iOS fixed-bg glitch */
	.willows-gp-appt-bg {
		background-attachment: scroll;
	}
}


/* ==============================================================
   # Accurx / Online Consultation Section
   ============================================================== */

.willows-accurx {
	background: var(--willows-bg-light);
}

/* ---- Left: image ---- */
.willows-accurx-img-wrap {
	position: relative;
	display: inline-block;
	width: 100%;
}

.willows-accurx-img {
	object-fit: cover;
	height: 420px;
	box-shadow: 0 8px 32px rgba(0, 62, 140, 0.13);
	transition: transform 0.3s ease;
}

.willows-accurx-img:hover {
	transform: scale(1.012);
}

/* Floating response-time badge */
.willows-accurx-badge {
	position: absolute;
	bottom: -20px;
	right: -20px;
	background: #fff;
	border-left: 4px solid var(--willows-blue);
	border-radius: 10px;
	padding: 0.7rem 1rem;
	box-shadow: 0 6px 20px rgba(0, 62, 140, 0.15);
	z-index: 2;
}

.willows-accurx-badge-icon {
	color: var(--willows-blue);
	flex-shrink: 0;
}

.willows-accurx-badge-title {
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--willows-muted);
	line-height: 1.2;
}

.willows-accurx-badge-value {
	font-size: 0.95rem;
	font-weight: 800;
	color: var(--willows-blue-dark);
	line-height: 1.2;
}

/* ---- Right: text ---- */
.willows-accurx-text-col {
	padding-left: 1rem;
}

/* Blue top rule */
.willows-accurx-rule {
	display: block;
	width: 52px;
	height: 4px;
	background: var(--willows-blue);
	border-radius: 2px;
	margin-bottom: 0.9rem;
}

/* "Digital Healthcare" label above heading */
.willows-accurx-label {
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--willows-blue);
	margin-bottom: 0.35rem;
}

.willows-accurx-heading {
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
	color: var(--willows-blue-dark);
	line-height: 1.2;
	margin-bottom: 0.4rem;
}

.willows-accurx-subheading {
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--willows-text);
	margin-bottom: 1rem;
}

.willows-accurx-body {
	font-size: 0.9375rem;
	color: #444;
	line-height: 1.75;
	margin-bottom: 1.5rem;
}

.willows-accurx-body strong {
	color: var(--willows-blue-dark);
}

/* Primary CTA button */
.willows-btn-accurx-solid {
	display: inline-flex;
	align-items: center;
	background-color: var(--willows-blue);
	color: #fff;
	border: 2px solid var(--willows-blue);
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.875rem;
	padding: 0.55rem 1.5rem;
	transition: background 0.18s, border-color 0.18s;
	white-space: nowrap;
}

.willows-btn-accurx-solid:hover,
.willows-btn-accurx-solid:focus {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
}

.willows-accurx-or {
	font-style: italic;
}

/* Inline URL link */
.willows-accurx-link {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--willows-blue);
	text-decoration: underline;
	text-underline-offset: 3px;
	word-break: break-all;
	transition: color 0.15s;
}

.willows-accurx-link:hover {
	color: var(--willows-blue-dark);
}

/* Note/info banner */
.willows-accurx-note,
.willows-note {
	background: rgba(0, 94, 184, 0.07);
	border-left: 3px solid var(--willows-blue);
	border-radius: 6px;
	padding: 0.75rem 1rem;
	color: var(--willows-text);
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-size: 0.9rem;
	line-height: 1.6;
}

.willows-accurx-note svg,
.willows-note svg {
	color: var(--willows-blue);
	flex-shrink: 0;
	margin-top: 2px;
}

/* When used inside .willows-cs-content without an SVG, just the box */
.willows-cs-content .willows-note {
	margin-top: 1.25rem;
	margin-bottom: 0.9rem;
}

/* ---- Responsive ---- */
@media (max-width: 991.98px) {
	.willows-accurx-img {
		height: 300px;
	}

	.willows-accurx-badge {
		right: 0;
		bottom: -16px;
	}

	.willows-accurx-text-col {
		padding-left: 0;
		padding-top: 2rem; /* give the badge room */
	}
}

@media (max-width: 575.98px) {
	.willows-accurx-img {
		height: 220px;
	}
}


/* ==============================================================
   # Patient Access Section
   ============================================================== */

.willows-patient-access {
	background: var(--willows-bg-light);
}

/* ---- Section heading ---- */
.willows-pa-main-heading {
	font-size: clamp(1.35rem, 3vw, 1.875rem);
	font-weight: 800;
	color: var(--willows-blue-dark);
	margin-bottom: 0.4rem;
}

.willows-pa-rule {
	width: 50px;
	height: 3px;
	background: var(--willows-blue);
	border-radius: 2px;
}

/* ---- Card ---- */
.willows-pa-card {
	background: #fff;
	border: 1px solid var(--willows-border);
	border-radius: 0.6rem;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
}

.willows-pa-card:hover {
	box-shadow: 0 8px 28px rgba(0, 62, 140, 0.13);
	border-color: var(--willows-blue-light);
	transform: translateY(-4px);
}

/* ---- Square image — full width, fixed aspect ratio ---- */
.willows-pa-card-img-wrap {
	width: 100%;
	aspect-ratio: 1 / 1;       /* perfect square */
	overflow: hidden;
	flex-shrink: 0;
}

.willows-pa-sq-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.willows-pa-card:hover .willows-pa-sq-img {
	transform: scale(1.05);
}

/* ---- Card body ---- */
.willows-pa-card-body {
	padding: 1.1rem 1.1rem 1.25rem;
	display: flex;
	flex-direction: column;
	flex: 1;
	align-items: flex-start;
}

/* ---- Card heading ---- */
.willows-pa-card-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--willows-text);
	line-height: 1.35;
	margin-bottom: 1rem;
	transition: color 0.18s;
}

.willows-pa-card:hover .willows-pa-card-title {
	color: var(--willows-blue);
}

/* ---- Read More button ---- */
.willows-btn-pa-readmore {
	display: inline-block;
	background-color: var(--willows-blue);
	color: #fff;
	border: 2px solid var(--willows-blue);
	border-radius: 50px;
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 0.4rem 1.2rem;
	text-decoration: none;
	transition: background 0.18s, border-color 0.18s, color 0.18s;
	margin-top: auto;
}

.willows-btn-pa-readmore:hover,
.willows-btn-pa-readmore:focus {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
}

/* ---- Responsive ---- */
@media (max-width: 575.98px) {
	/* 2 columns on very small phones */
	.willows-pa-card-title {
		font-size: 0.875rem;
	}

	.willows-btn-pa-readmore {
		font-size: 0.75rem;
		padding: 0.35rem 0.9rem;
	}
}


/* ==============================================================
   # Where to go when practice is closed
   ============================================================== */

/* White background to alternate with the light-blue Patient Access above */
.willows-closed {
	background: #fff;
}


/* ==============================================================
   # NHS App Section
   ============================================================== */

.willows-nhsapp {
	background: #fff;
	overflow: hidden;
}

/* ---- Left: text column ---- */
.willows-nhsapp-text-col {
	background: var(--willows-bg-light);
}

.willows-nhsapp-text {
}

/* Blue top rule */
.willows-nhsapp-rule {
	display: block;
	width: 52px;
	height: 4px;
	background: var(--willows-blue);
	border-radius: 2px;
	margin-bottom: 0.9rem;
}

/* "National Health Service" eyebrow */
.willows-nhsapp-eyebrow {
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--willows-blue);
	margin-bottom: 0.3rem;
}

/* Main heading */
.willows-nhsapp-heading {
	font-size: clamp(1.375rem, 2.5vw, 1.75rem);
	font-weight: 900;
	color: var(--willows-blue-dark);
	line-height: 1.15;
	margin-bottom: 0.25rem;
}

/* Sub-heading */
.willows-nhsapp-subheading {
	font-size: 1rem;
	font-weight: 600;
	color: var(--willows-text);
	margin-bottom: 1rem;
}

/* Body paragraphs */
.willows-nhsapp-body {
	font-size: 0.875rem; /* 14px */
	color: #444;
	line-height: 1.7;
	margin-bottom: 0.85rem;
}

/* ---- Download store buttons ---- */
.willows-btn-store {
	border-radius: 8px;
	font-size: 0.875rem;
	font-weight: 700;
	padding: 0.55rem 1.25rem;
	transition: transform 0.15s, box-shadow 0.15s;
}

.willows-btn-store:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}

/* Apple — black */
.willows-btn-store--apple {
	background-color: #000;
	color: #fff;
	border: 2px solid #000;
}

.willows-btn-store--apple:hover {
	background-color: #222;
	border-color: #222;
	color: #fff;
}

/* Google — white with border */
.willows-btn-store--google {
	background-color: #fff;
	color: var(--willows-text);
	border: 2px solid var(--willows-border);
}

.willows-btn-store--google:hover {
	background-color: var(--willows-bg-light);
	border-color: var(--willows-blue-light);
	color: var(--willows-text);
}

/* ---- Divider ---- */
.willows-nhsapp-hr {
	border-color: var(--willows-border);
	margin: 1.75rem 0;
	opacity: 1;
}

/* ---- Notification sub-heading ---- */
.willows-nhsapp-notif-heading {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--willows-blue-dark);
	margin-bottom: 0.65rem;
}

/* ---- Numbered step list ---- */
.willows-nhsapp-steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.willows-nhsapp-steps li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-size: 0.875rem; /* 14px */
	color: #444;
	line-height: 1.55;
}

.willows-nhsapp-step-num {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--willows-blue);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1px;
}

/* ---- Right: full-height image column ---- */
.willows-nhsapp-img-col {
	position: relative;
	min-height: 500px;
}

.willows-nhsapp-img-wrap {
	position: absolute;
	inset: 0;
}

.willows-nhsapp-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	display: block;
}

/* ---- Responsive ---- */
@media (max-width: 991.98px) {
}


/* ==============================================================
   # Important Notices (replaces Latest News)
   ============================================================== */

/* Date badge */
.willows-notice-date {
	background: var(--willows-blue);
	color: #fff;
	border-radius: 6px;
	padding: 0.35rem 0.6rem;
	min-width: 46px;
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.1;
}

.willows-notice-date-day {
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1;
}

.willows-notice-date-mon {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.willows-notice-date-yr {
	font-size: 0.65rem;
	opacity: 0.8;
}

/* Read more inline link */
.willows-notice-readmore {
	color: var(--willows-blue);
	text-decoration: none;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	transition: color 0.15s, gap 0.15s;
}

.willows-notice-readmore:hover {
	color: var(--willows-blue-dark);
	gap: 0.4rem;
}

/* Ensure long titles don't overflow the flex row */
.min-w-0 {
	min-width: 0;
}
.ft-log img{
	height:130px;
}


/* ==============================================================
   # Services Archive & Single — shared variables reuse site
     --willows-blue, --willows-blue-dark, --willows-bg-light etc.
   ============================================================== */


/* ---------------------------------------------------------------
   ARCHIVE: Full-width banner
   Background image = Services page featured image
   Title = Services page title
   --------------------------------------------------------------- */

.willows-svc-banner {
	position: relative;
	background: var(--willows-blue-dark);   /* solid fallback */
	overflow: hidden;
	min-height: 380px;
	display: flex;
	align-items: center;
}

/* Background image layer */
.willows-svc-banner-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center center;
	z-index: 0;
}

/* Dark gradient overlay — bottom-heavy so title stays readable */
.willows-svc-banner-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 20, 60, 0.45) 0%,
		rgba(0, 30, 80, 0.75) 60%,
		rgba(0, 30, 80, 0.92) 100%
	);
	z-index: 1;
}

/* Content sits above both layers */
.willows-svc-banner-content {
	position: relative;
	z-index: 2;
	padding-top: 3.5rem;
	padding-bottom: 3rem;
	text-align: center;
}

/* Breadcrumb on dark banner */
.willows-svc-banner .breadcrumb {
	justify-content: center;
	background: transparent;
	padding: 0;
}
.willows-svc-banner .breadcrumb-item,
.willows-svc-banner .breadcrumb-item a {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.8125rem;
	text-decoration: none;
}
.willows-svc-banner .breadcrumb-item a:hover {
	color: #fff;
}
.willows-svc-banner .breadcrumb-item.active {
	color: rgba(255, 255, 255, 0.55);
}
.willows-svc-banner .breadcrumb-item + .breadcrumb-item::before {
	color: rgba(255, 255, 255, 0.4);
}

/* Banner title */
.willows-svc-banner-title {
	font-size: clamp(1.75rem, 4.5vw, 3rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 0.5rem;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

/* Subtitle */
.willows-svc-banner-sub {
	font-size: 1.0625rem;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 2rem;
}

/* Solid blue fallback (no image) */
.willows-svc-banner:not(.willows-svc-banner--has-img) {
	padding: 3.5rem 0 3rem;
}
.willows-svc-banner:not(.willows-svc-banner--has-img) .willows-svc-banner-title {
	color: #fff;
}
.willows-svc-banner:not(.willows-svc-banner--has-img) .willows-svc-banner-sub {
	color: rgba(255, 255, 255, 0.85);
}
.willows-svc-banner:not(.willows-svc-banner--has-img) .breadcrumb-item,
.willows-svc-banner:not(.willows-svc-banner--has-img) .breadcrumb-item a {
	color: rgba(255, 255, 255, 0.7);
}

/* ---------------------------------------------------------------
   ARCHIVE: Search bar (inside banner)
   --------------------------------------------------------------- */

.willows-svc-search-form {
	max-width: 580px;
	margin-left: auto;
	margin-right: auto;
}

.willows-svc-search-wrap {
	display: flex;
	align-items: stretch;
}

.willows-svc-search-input {
	flex: 1;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-right: none;
	border-radius: 50px 0 0 50px;
	padding: 0.7rem 1.35rem;
	font-size: 0.9375rem;
	color: var(--willows-text);
	background: #fff;
	outline: none;
	transition: border-color 0.18s, box-shadow 0.18s;
}

.willows-svc-search-input::placeholder {
	color: #aaa;
}

.willows-svc-search-input:focus {
	border-color: var(--willows-blue);
	box-shadow: 0 0 0 3px rgba(0, 94, 184, 0.12);
}

.willows-svc-search-btn {
	background: var(--willows-blue);
	color: #fff;
	border: none;
	border-radius: 0 50px 50px 0;
	padding: 0 1.25rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.18s;
}

.willows-svc-search-btn:hover,
.willows-svc-search-btn:focus {
	background: var(--willows-blue-dark);
	outline: none;
}


/* ---------------------------------------------------------------
   ARCHIVE: Category filter pills
   --------------------------------------------------------------- */

.willows-svc-filter-bar {
	background: #fff;
	border-bottom: 1px solid var(--willows-border);
	padding: 0.85rem 0;
	position: sticky;
	top: 56px;          /* match navbar height */
	z-index: 100;
}

.willows-svc-filter-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.willows-svc-filter-pill {
	display: inline-block;
	padding: 0.35rem 1rem;
	border-radius: 50px;
	border: 1px solid var(--willows-border);
	background: #fff;
	color: var(--willows-text);
	font-size: 0.8125rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.willows-svc-filter-pill:hover {
	background: var(--willows-bg-light);
	border-color: var(--willows-blue-light);
	color: var(--willows-blue);
}

.willows-svc-filter-pill.is-active {
	background: var(--willows-blue);
	border-color: var(--willows-blue);
	color: #fff;
	font-weight: 700;
}


/* ---------------------------------------------------------------
   ARCHIVE: Grid wrapper
   --------------------------------------------------------------- */

.willows-svc-grid-wrap {
	background: var(--willows-bg-light);
	min-height: 400px;
}

.willows-svc-results-count {
	font-size: 0.875rem;
}


/* ---------------------------------------------------------------
   SERVICE CARD  (used on archive + related services on single)
   NHS layout: icon LEFT, text RIGHT, READ MORE at bottom
   --------------------------------------------------------------- */

.willows-svc-card {
	background: #fff;
	border: 1px solid var(--willows-border);
	border-radius: 0.6rem;
	overflow: hidden;
	transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}

.willows-svc-card:hover {
	box-shadow: 0 6px 24px rgba(0, 62, 140, 0.13);
	border-color: var(--willows-blue-light);
	transform: translateY(-3px);
}

.willows-svc-card-inner {
	padding: 0;
}

/* ---- Left: SVG icon column ---- */
.willows-svc-icon-col {
	width: 60px;
	min-width: 60px;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 3px;
}

.willows-svc-svg-icon {
	color: var(--willows-blue);
	flex-shrink: 0;
	transition: transform 0.2s;
}

.willows-svc-card:hover .willows-svc-svg-icon {
	transform: scale(1.08);
}

/* ---- Right: text column ---- */
.willows-svc-text-col {
	flex: 1;
	min-width: 0;
}

/* Card heading */
.willows-svc-card-title {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--willows-text);
	line-height: 1.3;
	margin-bottom: 0.35rem;
	transition: color 0.15s;
}

.willows-svc-card:hover .willows-svc-card-title {
	color: var(--willows-blue-dark);
}

/* Short description */
.willows-svc-card-desc {
	font-size: 0.8125rem;
	color: var(--willows-muted);
	line-height: 1.5;
	margin-bottom: 0;
}

/* Footer: READ MORE link */
.willows-svc-card-footer {
	border-top: 1px solid var(--willows-border);
}

.willows-svc-readmore {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--willows-blue);
	text-decoration: none;
	letter-spacing: 0.06em;
	transition: color 0.15s, gap 0.15s;
}

.willows-svc-readmore:hover {
	color: var(--willows-blue-dark);
	gap: 0.5rem;
}


/* ---------------------------------------------------------------
   ARCHIVE: Pagination
   --------------------------------------------------------------- */

.willows-svc-pagination .page-numbers {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	padding: 0;
	margin: 0;
	justify-content: center;
}

.willows-svc-pagination .page-numbers li a,
.willows-svc-pagination .page-numbers li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 0.75rem;
	border-radius: 6px;
	border: 1px solid var(--willows-border);
	background: #fff;
	color: var(--willows-text);
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.willows-svc-pagination .page-numbers li a:hover {
	background: var(--willows-bg-light);
	border-color: var(--willows-blue-light);
	color: var(--willows-blue);
}

.willows-svc-pagination .page-numbers li span.current {
	background: var(--willows-blue);
	border-color: var(--willows-blue);
	color: #fff;
	font-weight: 700;
}

.willows-svc-pagination .page-numbers li span.dots {
	border-color: transparent;
	background: transparent;
}


/* ---------------------------------------------------------------
   ARCHIVE: Empty state
   --------------------------------------------------------------- */

.willows-svc-empty {
	color: var(--willows-border);
}


/* ---------------------------------------------------------------
   SINGLE: Hero banner
   --------------------------------------------------------------- */

.willows-ss-hero {
	position: relative;
	background: var(--willows-blue-dark);
	overflow: hidden;
}

.willows-ss-hero-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	z-index: 0;
	opacity: 0.35;
}

.willows-ss-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		160deg,
		rgba(0, 30, 80, 0.85) 0%,
		rgba(0, 62, 140, 0.78) 100%
	);
	z-index: 1;
}

/* Breadcrumb on dark hero */
.willows-ss-breadcrumb .breadcrumb {
	background: transparent;
	padding: 0;
}

.willows-ss-breadcrumb .breadcrumb-item,
.willows-ss-breadcrumb .breadcrumb-item a {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.8125rem;
	text-decoration: none;
}

.willows-ss-breadcrumb .breadcrumb-item a:hover {
	color: #fff;
}

.willows-ss-breadcrumb .breadcrumb-item.active {
	color: rgba(255, 255, 255, 0.55);
}

.willows-ss-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
	color: rgba(255, 255, 255, 0.4);
}

/* Icon circle on hero */
.willows-ss-hero-icon {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
	border: 2px solid rgba(255, 255, 255, 0.3);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}

/* Category badge on dark bg */
.willows-ss-cat-badge {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: #fff;
	background: rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50px;
	padding: 0.25rem 0.75rem;
	margin: 0 0.2rem;
	text-decoration: none;
	transition: background 0.15s;
}

.willows-ss-cat-badge:hover {
	background: rgba(255, 255, 255, 0.28);
	color: #fff;
}

/* Title & subtitle on dark hero */
.willows-ss-hero-title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 0.6rem;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.willows-ss-hero-sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.85);
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.6;
}


/* ---------------------------------------------------------------
   SINGLE: Body
   --------------------------------------------------------------- */

.willows-ss-body {
	background: var(--willows-bg-light);
}

/* Featured image */
.willows-ss-featured-img img {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Entry content typography */
.willows-ss-entry-content {
	background: #fff;
	border-radius: 0.6rem;
	padding: 2rem 2rem 1.5rem;
	box-shadow: 0 2px 12px rgba(0, 62, 140, 0.06);
}

.willows-ss-entry-content h2,
.willows-ss-entry-content h3,
.willows-ss-entry-content h4 {
	color: var(--willows-blue-dark);
	font-weight: 700;
	margin-top: 1.5rem;
	margin-bottom: 0.6rem;
}

.willows-ss-entry-content p {
	font-size: 0.9375rem;
	color: #444;
	line-height: 1.75;
}

.willows-ss-entry-content ul,
.willows-ss-entry-content ol {
	font-size: 0.9375rem;
	color: #444;
	line-height: 1.75;
	padding-left: 1.4rem;
}

.willows-ss-entry-content a {
	color: var(--willows-blue);
	text-underline-offset: 3px;
}

/* Prev/Next navigation */
.willows-ss-nav-link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	max-width: 48%;
}

.willows-ss-nav-label {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--willows-muted);
	margin-bottom: 0.2rem;
}

.willows-ss-nav-title {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--willows-blue);
	transition: color 0.15s;
}

.willows-ss-nav-link:hover .willows-ss-nav-title {
	color: var(--willows-blue-dark);
}


/* ---------------------------------------------------------------
   SINGLE: Sidebar cards
   --------------------------------------------------------------- */

.willows-ss-sidebar {
	position: sticky;
	top: 80px;    /* below navbar + filter bar */
}

/* Shared card base */
.willows-ss-info-card,
.willows-ss-appt-card,
.willows-ss-contact-card {
	background: #fff;
	border: 1px solid var(--willows-border);
	border-radius: 0.6rem;
	padding: 1.25rem 1.25rem 1rem;
	box-shadow: 0 2px 10px rgba(0, 62, 140, 0.06);
}

/* Sidebar section heading */
.willows-ss-sidebar-heading {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--willows-blue-dark);
	margin-bottom: 1rem;
	padding-bottom: 0.6rem;
	border-bottom: 2px solid var(--willows-blue);
	display: flex;
	align-items: center;
}

/* Info rows (label / value pairs) */
.willows-ss-info-row {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0.45rem 0;
	border-bottom: 1px solid #f0f0f0;
	font-size: 0.875rem;
}

.willows-ss-info-row:last-child {
	border-bottom: none;
}

.willows-ss-info-label {
	font-weight: 600;
	color: var(--willows-text);
	min-width: 85px;
	flex-shrink: 0;
}

.willows-ss-info-value {
	color: var(--willows-muted);
}

/* Appointment card */
.willows-ss-appt-card {
	background: var(--willows-blue);
	border-color: var(--willows-blue);
	color: #fff;
	text-align: center;
}

.willows-ss-appt-icon {
	color: rgba(255, 255, 255, 0.75);
}

.willows-ss-appt-heading {
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	margin-bottom: 0.4rem;
}

.willows-ss-appt-card .small {
	color: rgba(255, 255, 255, 0.85);
}

/* Buttons inside blue card */
.willows-ss-appt-card .willows-btn-about-primary {
	background: #fff;
	color: var(--willows-blue);
	border-color: #fff;
}

.willows-ss-appt-card .willows-btn-about-primary:hover {
	background: var(--willows-bg-light);
	border-color: var(--willows-bg-light);
	color: var(--willows-blue-dark);
}

.willows-ss-appt-card .willows-btn-about-outline {
	border-color: rgba(255, 255, 255, 0.6);
	color: #fff;
}

.willows-ss-appt-card .willows-btn-about-outline:hover {
	background: rgba(255, 255, 255, 0.15);
	border-color: #fff;
	color: #fff;
}

/* Contact card links */
.willows-ss-contact-card a {
	color: var(--willows-blue);
}

.willows-ss-contact-card a:hover {
	color: var(--willows-blue-dark);
}


/* ---------------------------------------------------------------
   SINGLE: Related services band
   --------------------------------------------------------------- */

.willows-ss-related {
	background: #fff;
	border-top: 1px solid var(--willows-border);
}


/* ---------------------------------------------------------------
   Responsive tweaks
   --------------------------------------------------------------- */

@media (max-width: 991.98px) {
	.willows-svc-filter-bar {
		position: static;   /* un-stick on mobile — filter row scrolls with page */
	}

	.willows-ss-hero {
		text-align: center;
	}

	.willows-ss-sidebar {
		position: static;
	}

	.willows-ss-entry-content {
		padding: 1.25rem;
	}

	.willows-ss-nav-link {
		max-width: 100%;
	}
}

@media (max-width: 575.98px) {
	.willows-svc-hero {
		padding: 2rem 0 1.75rem;
	}

	.willows-svc-search-form {
		max-width: 100%;
	}

	.willows-svc-filter-tabs {
		gap: 0.35rem;
	}

	.willows-svc-filter-pill {
		font-size: 0.75rem;
		padding: 0.3rem 0.75rem;
	}
}


/* ==============================================================
   # Services — featured image inside hero icon circle
   ============================================================== */

.willows-ss-hero-icon {
	overflow: hidden;
}

.willows-ss-hero-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
}


/* ==============================================================
   # Service card — image icon overrides
   ============================================================== */

/* Uploaded icon image */
.willows-svc-icon-img {
	width: 52px;
	height: 52px;
	object-fit: contain;   /* preserve icon aspect ratio */
	display: block;
	transition: transform 0.2s;
}

.willows-svc-card:hover .willows-svc-icon-img {
	transform: scale(1.08);
}

/* SVG fallback wrapper — match image sizing */
.willows-svc-icon-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	color: var(--willows-blue);
	transition: transform 0.2s;
}

.willows-svc-card:hover .willows-svc-icon-fallback {
	transform: scale(1.08);
}

/* Banner responsive */
@media (max-width: 767.98px) {
	.willows-svc-banner {
		min-height: 280px;
	}

	.willows-svc-banner-content {
		padding-top: 2.5rem;
		padding-bottom: 2rem;
	}

	.willows-svc-banner-sub {
		font-size: 0.9375rem;
	}
}

@media (max-width: 575.98px) {
	.willows-svc-banner {
		min-height: 240px;
	}
}


/* ==============================================================
   # Content Sections Page Template  (page-content-sections.php)
   # Simple Page Template             (page.php)
   Both templates share these CSS classes.
   ============================================================== */


/* ---------------------------------------------------------------
   Banner — shared by page.php + page-content-sections.php
   --------------------------------------------------------------- */

.willows-cs-banner {
	position: relative;
	background: var(--willows-blue-dark);
	overflow: hidden;
	min-height: 300px;
	display: flex;
	align-items: flex-end;
}

.willows-cs-banner-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center center;
	z-index: 0;
}

.willows-cs-banner-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(0, 20, 60, 0.25) 0%,
		rgba(0, 30, 80, 0.60) 50%,
		rgba(0, 30, 80, 0.88) 100%
	);
	z-index: 1;
}

.willows-cs-banner-content {
	position: relative;
	z-index: 2;
	padding-top: 3rem;
	padding-bottom: 2.5rem;
}

/* Breadcrumb */
.willows-cs-banner .breadcrumb {
	background: transparent;
	padding: 0;
	margin-bottom: 0.7rem;
}
.willows-cs-banner .breadcrumb-item,
.willows-cs-banner .breadcrumb-item a {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.8125rem;
	text-decoration: none;
	transition: color 0.15s;
}
.willows-cs-banner .breadcrumb-item a:hover    { color: #fff; }
.willows-cs-banner .breadcrumb-item.active     { color: rgba(255,255,255,0.5); }
.willows-cs-banner .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,0.35); }

/* Page title on banner */
.willows-cs-banner-title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.2;
	margin: 0;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

/* Solid-colour fallback (no featured image) */
.willows-cs-banner:not(.willows-cs-banner--has-img) {
	min-height: 0;
	padding: 2.5rem 0 2.25rem;
	align-items: center;
}


/* ---------------------------------------------------------------
   Page body
   --------------------------------------------------------------- */

.willows-cs-body,
.willows-simple-page-body {
	background: var(--willows-bg-light);
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

/* Simple page: white content card */
.willows-simple-page-content {
	background: #fff;
	border-radius: 0.6rem;
	padding: 2.25rem 2.25rem 2rem;
	box-shadow: 0 2px 14px rgba(0, 62, 140, 0.07);
}


/* ---------------------------------------------------------------
   Content sections stack
   --------------------------------------------------------------- */

/* Outer wrapper adds vertical rhythm between sections */
.willows-cs-body .container > .willows-cs-section + .willows-cs-section {
	/* gap handled by margin-bottom on each section */
}

.willows-cs-section {
	background: #fff;
	border-radius: 0.75rem;
	padding: 3rem 2.5rem 2.75rem;
	margin-bottom: 2rem;
	box-shadow: 0 2px 14px rgba(0, 62, 140, 0.06);
	transition: box-shadow 0.2s;
}

.willows-cs-section:last-child {
	margin-bottom: 0;
}

/* Alternating stripe — every odd section gets a light blue-grey tint */
.willows-cs-section--stripe {
	background: var(--willows-bg-light);
	box-shadow: none;
	border: 1px solid var(--willows-border);
}

/* Section heading */
.willows-cs-section-heading {
	font-size: clamp(1.125rem, 2.5vw, 1.375rem);
	font-weight: 800;
	color: var(--willows-blue-dark);
	margin-bottom: 1.1rem;
	padding-bottom: 0.65rem;
	border-bottom: 3px solid var(--willows-blue);
	line-height: 1.25;
}

/* Section image */
.willows-cs-section-img {
	width: 100%;
	height: auto;
	border-radius: 0.6rem;
	box-shadow: 0 4px 20px rgba(0, 62, 140, 0.1);
}

/* Image caption / tagline */
.willows-cs-img-caption {
	font-size: 0.8125rem;
	color: var(--willows-muted);
	text-align: center;
	margin-top: 0.6rem;
	margin-bottom: 0;
	font-style: italic;
	line-height: 1.45;
	padding: 0 0.25rem;
}


/* ---------------------------------------------------------------
   Rich-text content  (shared by both templates)
   --------------------------------------------------------------- */

.willows-cs-content {
	font-size: 0.9375rem;
	color: #3a3a3a;
	line-height: 1.8;
}

.willows-cs-content > *:first-child { margin-top: 0; }
.willows-cs-content > *:last-child  { margin-bottom: 0; }

.willows-cs-content p        { margin-bottom: 0.9rem; }
.willows-cs-content h3       { font-size: 1.0625rem; font-weight: 700; color: var(--willows-blue-dark); margin: 1.5rem 0 0.5rem; }
.willows-cs-content h4       { font-size: 0.9375rem; font-weight: 700; color: var(--willows-text);      margin: 1.2rem 0 0.4rem; }
.willows-cs-content strong,
.willows-cs-content b        { color: var(--willows-text); font-weight: 700; }
.willows-cs-content em,
.willows-cs-content i        { font-style: italic; }
.willows-cs-content a        { color: var(--willows-blue); text-underline-offset: 3px; }
.willows-cs-content a:hover  { color: var(--willows-blue-dark); }

.willows-cs-content ul,
.willows-cs-content ol {
	padding-left: 1.5rem;
	margin-bottom: 0.9rem;
}
.willows-cs-content li          { margin-bottom: 0.35rem; }
.willows-cs-content ul li::marker { color: var(--willows-blue); }

.willows-cs-content hr {
	border-color: var(--willows-border);
	margin: 1.5rem 0;
}

.willows-cs-content blockquote {
	border-left: 4px solid var(--willows-blue);
	padding: 0.75rem 1.25rem;
	margin: 1.25rem 0;
	background: var(--willows-bg-light);
	border-radius: 0 6px 6px 0;
	font-style: italic;
	color: #555;
}


/* ---------------------------------------------------------------
   Section buttons row
   --------------------------------------------------------------- */

.willows-cs-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	align-items: center;
	margin-top: 1.5rem;
}

/* Solid button */
.willows-cs-btn--solid {
	display: inline-flex;
	align-items: center;
	background-color: var(--willows-blue);
	color: #fff;
	border: 2px solid var(--willows-blue);
	border-radius: 50px;
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1.4rem;
	text-decoration: none;
	transition: background 0.18s, border-color 0.18s, transform 0.15s;
	white-space: nowrap;
}

.willows-cs-btn--solid:hover,
.willows-cs-btn--solid:focus {
	background-color: var(--willows-blue-dark);
	border-color: var(--willows-blue-dark);
	color: #fff;
	transform: translateY(-1px);
}

/* Outline button */
.willows-cs-btn--outline {
	display: inline-flex;
	align-items: center;
	background-color: transparent;
	color: var(--willows-blue);
	border: 2px solid var(--willows-blue);
	border-radius: 50px;
	font-weight: 600;
	font-size: 0.875rem;
	padding: 0.5rem 1.4rem;
	text-decoration: none;
	transition: background 0.18s, color 0.18s, transform 0.15s;
	white-space: nowrap;
}

.willows-cs-btn--outline:hover,
.willows-cs-btn--outline:focus {
	background-color: var(--willows-blue);
	color: #fff;
	transform: translateY(-1px);
}


/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */

@media (max-width: 991.98px) {
	.willows-cs-banner {
		min-height: 220px;
		align-items: flex-end;
	}

	.willows-cs-section,
	.willows-simple-page-content {
		padding: 2rem 1.5rem;
	}
}

@media (max-width: 575.98px) {
	.willows-cs-banner-title  { font-size: 1.625rem; }
	.willows-cs-section-heading { font-size: 1.0625rem; }

	.willows-cs-section,
	.willows-simple-page-content {
		padding: 1.5rem 1.1rem;
	}

	.willows-cs-btn-row {
		flex-direction: column;
		align-items: flex-start;
	}

	.willows-cs-btn--solid,
	.willows-cs-btn--outline {
		width: 100%;
		justify-content: center;
	}
}

/* =========================================
   Willows Practice - Contact Form 7
   Form Layout
========================================= */

.willows-form {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

/* Form rows */
.willows-form .form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

/* Three-column row */
.willows-form .form-row.three-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Full-width field */
.willows-form .form-row.full-width {
    grid-template-columns: 1fr;
}

/* Individual field */
.willows-form .form-field {
    min-width: 0;
}

/* Labels */
.willows-form label {
    display: block;
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 500;
}

/* Inputs */
.willows-form input[type="text"],
.willows-form input[type="email"],
.willows-form input[type="tel"],
.willows-form input[type="date"],
.willows-form input[type="number"],
.willows-form select,
.willows-form textarea {
    width: 100%;
    box-sizing: border-box;
    margin-top: 7px;
    padding: 12px 14px;
    border: 1px solid #c8c8c8;
    border-radius: 3px;
    background: #fff;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.4;
    color: #333;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Textarea */
.willows-form textarea {
    height: 50px;
    resize: vertical;
}

/* Focus */
.willows-form input:focus,
.willows-form select:focus,
.willows-form textarea:focus {
    outline: none;
    border-color: #005eb8;
    box-shadow: 0 0 0 2px rgba(0, 94, 184, 0.08);
}

/* Required star */
.willows-form .required {
    color: #d32f2f;
}

/* Radio and checkbox groups */
.willows-form .form-options {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
    margin-top: 8px;
}

.willows-form .form-options label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 400;
    cursor: pointer;
}

.willows-form input[type="radio"],
.willows-form input[type="checkbox"] {
    width: auto;
    margin: 0;
}

/* Section headings */
.willows-form .form-section-title {
    margin: 30px 0 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid #ddd;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 600;
}

/* First heading */
.willows-form .form-section-title:first-child {
    margin-top: 0;
}

/* Submit */
.willows-form input[type="submit"],
.willows-form button[type="submit"] {
    display: inline-block;
    padding: 13px 28px;
    border: 0;
    border-radius: 3px;
    background: #005eb8;
    color: #fff;
    font-family: inherit;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
    transition: background 0.2s ease;
}

.willows-form input[type="submit"]:hover,
.willows-form button[type="submit"]:hover {
    background: #004b93;
}

/* Validation */
.willows-form .wpcf7-not-valid {
    border-color: #d32f2f !important;
}

.willows-form .wpcf7-not-valid-tip {
    margin-top: 4px;
    font-size: 14px;
    color: #d32f2f;
}

.willows-form .wpcf7-response-output {
    margin: 20px 0 0;
    padding: 12px 15px;
}

/* Mobile */
@media (max-width: 767px) {

    .willows-form .form-row,
    .willows-form .form-row.three-columns {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-bottom: 16px;
    }

    .willows-form .form-section-title {
        margin-top: 25px;
        font-size: 20px;
    }

    .willows-form input[type="text"],
    .willows-form input[type="email"],
    .willows-form input[type="tel"],
    .willows-form input[type="date"],
    .willows-form input[type="number"],
    .willows-form select,
    .willows-form textarea {
        font-size: 16px;
        padding: 11px 13px;
    }

    .willows-form input[type="submit"],
    .willows-form button[type="submit"] {
        width: 100%;
    }
}
.willows-form .form-row.two-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.willows-form .form-submit {
    margin-top: 10px;
}

@media (max-width: 767px) {
    .willows-form .form-row.two-columns {
        grid-template-columns: 1fr;
    }
}