/*
Theme Name: Synergie Environ
Theme URI: https://synergie-environ.co.uk
Author: Digital Footprints
Author URI: https://digital-footprints.co.uk
Description: Block theme for Synergie Environ, rebuilt in 2026 from the previous Jupiter site: same navy, Raleway and photo banners, cleaner and lighter.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.1.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: synergie-environ
*/

/* Tokens live in theme.json. This file holds layout and interaction that theme.json can't express. */

:root {
	--se-radius: 6px;
	--se-ease: cubic-bezier(.2, .7, .2, 1);
	--se-shadow: var(--wp--preset--shadow--card);
	--se-shadow-lift: var(--wp--preset--shadow--lift);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--wp--preset--color--navy); color: #fff; }
a { transition: color .2s var(--se-ease); }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.wp-element-button, .wp-block-button__link { transition: background-color .2s var(--se-ease), transform .2s var(--se-ease), box-shadow .2s var(--se-ease); }
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(33, 43, 56, .18); }
.wp-block-button.is-style-outline .wp-block-button__link { border: 2px solid currentColor; background: transparent; color: var(--wp--preset--color--navy); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--navy); color: #fff; }
.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }
.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--navy); }
.wp-block-button.is-style-green .wp-block-button__link { background: var(--wp--preset--color--accent); color: #fff; }
.wp-block-button.is-style-green .wp-block-button__link:hover { background: #5a9230; }

.se-eyebrow, .se-eyebrow a { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--accent) !important; text-decoration: none; }
.se-section-title { margin-bottom: 36px; position: relative; padding-bottom: 16px; }
.se-section-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 48px; height: 3px; background: var(--wp--preset--color--accent); }
.has-text-align-center.se-section-title::after { left: 50%; transform: translateX(-50%); }

/* ---------- header ---------- */
.se-site-header { position: sticky; top: 0; z-index: 50; transition: box-shadow .3s var(--se-ease); }
.admin-bar .se-site-header { top: 32px; }
.se-site-header.is-scrolled { box-shadow: 0 6px 24px rgba(0, 0, 0, .25); }
.se-toolbar { font-size: 13px; }
.se-toolbar a { text-decoration: none; opacity: .85; }
.se-toolbar a:hover { opacity: 1; }
.se-header { border-bottom: 1px solid rgba(255, 255, 255, .08); }
.se-header .wp-block-site-logo img { display: block; width: 200px; height: auto; transition: width .3s var(--se-ease); }
.se-site-header.is-scrolled .wp-block-site-logo img { width: 170px; }

.se-header .wp-block-navigation .wp-block-navigation-item__content { position: relative; padding: 30px 16px; }
.se-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 16px; right: 16px; bottom: 22px; height: 2px; background: var(--wp--preset--color--accent);
	transform: scaleX(0); transform-origin: left; transition: transform .25s var(--se-ease);
}
.se-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.se-header .wp-block-navigation > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
.se-header .wp-block-navigation > .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content { color: #fff; }
.se-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after,
.se-header .wp-block-navigation > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after,
.se-header .wp-block-navigation > .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.se-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 260px; padding: 10px 0; border: 0; border-radius: var(--se-radius); box-shadow: var(--se-shadow-lift);
	background: #fff; transform: translateY(6px); transition: transform .2s var(--se-ease), opacity .2s var(--se-ease) !important;
}
.se-header .wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-container { transform: translateY(0); }
.se-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 10px 22px; font-size: 13px; font-weight: 500; letter-spacing: .02em; text-transform: none; color: var(--wp--preset--color--navy);
}
.se-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--navy); }
.se-header .wp-block-navigation__submenu-icon { display: none; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 32px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 18px; padding: 10px 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 15px; color: #cecece; }
@media (max-width: 781px) {
	.se-toolbar .se-toolbar__email { display: none; }
	.se-header .wp-block-site-logo img { width: 160px; }
	.se-header { padding-top: 10px !important; padding-bottom: 10px !important; }
}

/* ---------- page banners ---------- */
.se-page-title .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.se-page-title .se-page-title__title { margin: 6px 0 0; text-transform: none; letter-spacing: -.01em; font-size: clamp(30px, 3.4vw, 46px); max-width: 820px; }
.se-page-title .wp-block-post-terms a { color: var(--wp--preset--color--accent); text-decoration: none; }
.se-page-title .wp-block-post-date { margin-top: 10px; }

/* pages open straight onto their first section; plain content gets breathing room instead */
.se-main > .wp-block-post-content > :first-child:not(.alignfull) { margin-top: 60px; }
.se-main > .wp-block-post-content > :last-child:not(.alignfull) { margin-bottom: 70px; }
.se-main > .wp-block-post-content > .alignfull { padding-top: 30px; padding-bottom: 30px; }
.se-main > .wp-block-post-content > .alignfull + .alignfull { padding-top: 10px; }

/* headings sit on the section's colour on dark bands (theme.json sets them navy) */
:is(.has-navy-background-color, .has-navy-deep-background-color, .has-charcoal-background-color) :is(h1, h2, h3, h4, h5, h6) { color: inherit; }
:is(.has-navy-background-color, .has-navy-deep-background-color) p { color: rgba(255, 255, 255, .86); }
:is(.has-navy-background-color, .has-navy-deep-background-color) li { color: rgba(255, 255, 255, .86); }
.wp-block-list li { margin-bottom: 6px; }
.wp-block-list li::marker { color: var(--wp--preset--color--accent); }

/* images in content */
.wp-block-post-content .wp-block-image img, .se-article__image img { border-radius: var(--se-radius); }
.wp-block-post-content .wp-block-gallery img { border-radius: 4px; }
.wp-block-video video { border-radius: var(--se-radius); }

/* ---------- cards (post and project grids, carousels) ---------- */
.se-cards > li, .se-carousel .wp-block-post-template > li {
	background: #fff; border-radius: var(--se-radius); overflow: hidden; box-shadow: var(--se-shadow);
	transition: transform .3s var(--se-ease), box-shadow .3s var(--se-ease); display: flex; flex-direction: column;
}
.se-cards > li:hover, .se-carousel .wp-block-post-template > li:hover { transform: translateY(-4px); box-shadow: var(--se-shadow-lift); }
.se-cards .wp-block-post-featured-image, .se-carousel .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.se-cards .wp-block-post-featured-image img, .se-carousel .wp-block-post-featured-image img { transition: transform .6s var(--se-ease); width: 100%; object-fit: cover; }
.se-cards > li:hover .wp-block-post-featured-image img, .se-carousel li:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.se-card__body { padding: 20px 22px 24px; }
.se-card__body > * { margin-block: 0 8px; }
.se-card__body .wp-block-post-date, .se-card__body .wp-block-post-terms, .se-card__body .wp-block-post-terms a {
	color: var(--wp--preset--color--accent); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; font-size: 11px;
}
.se-card__title, .se-cards .wp-block-post-title { font-family: var(--wp--preset--font-family--raleway); font-size: 17px !important; letter-spacing: 0; text-transform: none; line-height: 1.4; }
.se-card__title a, .se-cards .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--navy); }
.se-card__body .wp-block-post-excerpt { font-size: 14px; line-height: 1.6; }
.se-card__body .wp-block-post-excerpt__more-text { display: none; }
.se-cards { gap: 28px !important; }

.se-carousel .wp-block-post-template { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 4px 22px; margin: 0; scrollbar-width: thin; }
.se-carousel .wp-block-post-template > li { flex: 0 0 280px; scroll-snap-align: start; margin: 0; }
.se-carousel .wp-block-post-featured-image img { height: 190px; }
.se-carousel .wp-block-post-title { font-size: 15px !important; padding: 14px 18px 0; margin: 0; text-transform: none; }
.se-carousel .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.se-carousel .wp-block-post-terms { padding: 4px 18px 18px; margin: 0; }
.se-carousel .wp-block-post-terms a { color: var(--wp--preset--color--accent); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.se-carousel .se-card__body { padding: 16px 18px 20px; }

.wp-block-query-pagination { margin-top: 48px; gap: 6px; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { display: inline-block; min-width: 40px; padding: 8px 12px; border-radius: 4px; text-align: center; text-decoration: none; background: #fff; box-shadow: var(--se-shadow); }
.wp-block-query-pagination .current { background: var(--wp--preset--color--navy); color: #fff; }

/* ---------- home ---------- */
.se-hero { min-height: 520px; }
.se-hero h1 { max-width: 880px; font-weight: 600; font-size: clamp(32px, 3.8vw, 52px) !important; line-height: 1.15; }
.se-hero .se-hero__lede { max-width: 640px; font-size: 18px; color: rgba(255, 255, 255, .85); }


.se-tile { position: relative; border-radius: var(--se-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--wp--preset--color--navy-deep); box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
.se-tile .wp-block-image { margin: 0; height: 100%; }
.se-tile .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--se-ease), opacity .3s; opacity: .85; }
.se-tile:hover .wp-block-image img { transform: scale(1.06); opacity: .7; }
.se-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 34, 45, 0) 35%, rgba(26, 34, 45, .92) 100%); pointer-events: none; }
.se-tile h3 { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 1; margin: 0; font-family: var(--wp--preset--font-family--raleway); font-size: 18px; letter-spacing: 0; text-transform: none; color: #fff; }
.se-tile h3 a { color: #fff; text-decoration: none; }
.se-tile h3 a::before { content: ""; position: absolute; inset: -400px -30px -30px; }   /* whole tile clickable */
.se-tile h3 a::after { content: " →"; display: inline-block; transition: transform .25s var(--se-ease); }
.se-tile:hover h3 a::after { transform: translateX(4px); }

.se-intro p { font-size: 17px; }

/* ---------- inner page pieces ---------- */
.se-cta { border-radius: var(--se-radius); box-shadow: var(--se-shadow-lift); border-top: 4px solid var(--wp--preset--color--accent); }
.se-cta h2 { color: var(--wp--preset--color--navy) !important; font-size: 22px !important; }
.se-cta p { color: var(--wp--preset--color--body-text) !important; }

.se-box { background: #fff; border-radius: var(--se-radius); padding: 26px 28px; box-shadow: var(--se-shadow); border-left: 4px solid var(--wp--preset--color--accent); margin-block: 0 24px; }
.has-navy-background-color .se-box { color: var(--wp--preset--color--body-text); }
.has-navy-background-color .se-box p, .has-navy-background-color .se-box li { color: var(--wp--preset--color--body-text); }
.se-box h4 { margin-top: 0; color: var(--wp--preset--color--navy) !important; }
.se-contact-card { background: var(--wp--preset--color--mist); border-radius: var(--se-radius); padding: 18px 22px; margin-block: 0 16px; }
.has-navy-background-color .se-contact-card { background: rgba(255, 255, 255, .06); }

.se-testimonials { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 24px; padding-bottom: 12px; }
.se-testimonials > .se-testimonial { flex: 0 0 100%; scroll-snap-align: start; position: relative; padding: 46px 60px 34px; background: var(--wp--preset--color--mist); border-radius: var(--se-radius); }
.se-testimonial::before { content: "\201C"; position: absolute; left: 24px; top: 6px; font: 700 90px/1 Georgia, serif; color: var(--wp--preset--color--accent); opacity: .35; }
.se-testimonial p:first-child { font-size: 15px; line-height: 1.9; }
.se-testimonial__company { font-size: 12px; color: var(--wp--preset--color--muted); }

.se-people { gap: 30px !important; }
.se-people .wp-block-image img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--se-radius); filter: grayscale(.2); transition: filter .3s; }
.se-people .wp-block-column:hover .wp-block-image img { filter: none; }
.se-people h5 { margin-top: 14px; }
.se-people h5 a { text-decoration: none; }
.se-read-bio a { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--accent); text-decoration: none; }

.wp-block-separator.se-sep-left { width: 48px; margin-left: calc((100% - min(100%, var(--wp--style--global--content-size))) / 2) !important; margin-right: auto !important; border: 0; border-top: 3px solid var(--wp--preset--color--accent); opacity: 1; }
.se-map iframe { display: block; width: 100%; border-radius: var(--se-radius); }

/* WPForms on the contact page */
.wpforms-container .wpforms-field input, .wpforms-container .wpforms-field textarea, .wpforms-container .wpforms-field select { border: 1px solid #d5d8de !important; border-radius: 4px !important; padding: 12px 14px !important; }
.wpforms-container .wpforms-submit { background: var(--wp--preset--color--navy) !important; color: #fff !important; border-radius: 4px !important; padding: 14px 30px !important; letter-spacing: 1.5px; text-transform: uppercase; font-size: 13px !important; }

/* ---------- single pages ---------- */
.se-article .wp-block-post-content > p:first-of-type { font-size: 18px; color: var(--wp--preset--color--navy); }
.se-tags a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 12px; border-radius: 30px; background: var(--wp--preset--color--mist); font-size: 12px; text-decoration: none; }
.se-aside { background: #fff; border-radius: var(--se-radius); box-shadow: var(--se-shadow); overflow: hidden; position: sticky; top: 140px; }
.se-aside .wp-block-post-featured-image { margin: 0; }
.se-aside__body { padding: 24px 26px 28px; }
.se-aside__body h4 { margin: 0; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.se-aside__body .wp-block-post-terms a { color: var(--wp--preset--color--navy); font-weight: 600; text-decoration: none; }
.se-portrait img { border-radius: var(--se-radius); box-shadow: var(--se-shadow-lift); }

/* ---------- footer ---------- */
.se-footer a { text-decoration: none; }
.se-footer a:hover { color: var(--wp--preset--color--accent); }
.se-footer .se-footer__title { margin: 0 0 20px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #fff; }
.se-footer p, .se-footer li { color: rgba(255, 255, 255, .78); }
.se-footer .se-contact { list-style: none; padding: 0; margin: 0; }
.se-footer .se-contact li { position: relative; padding-left: 28px; margin-bottom: 12px; line-height: 1.6; }
.se-footer .se-contact li::before { content: ""; position: absolute; left: 0; top: 4px; width: 15px; height: 15px; background: var(--wp--preset--color--accent); -webkit-mask: var(--se-icon) center / contain no-repeat; mask: var(--se-icon) center / contain no-repeat; }
.se-footer .se-contact .se-i-building { --se-icon: url("assets/icons/building.svg"); }
.se-footer .se-contact .se-i-pin { --se-icon: url("assets/icons/pin.svg"); }
.se-footer .se-contact .se-i-none::before { display: none; }
.se-footer .se-contact .se-i-phone { --se-icon: url("assets/icons/phone.svg"); }
.se-footer .se-contact .se-i-mail { --se-icon: url("assets/icons/mail.svg"); }
.se-footer .se-links { list-style: none; padding: 0; margin: 0; }
.se-footer .se-links li { margin-bottom: 8px; }
.se-footer .se-news .wp-block-post-template li { margin-bottom: 20px; }
.se-footer .se-news .wp-block-post-title { font-size: 14px; font-weight: 500; line-height: 1.5; margin: 0; text-transform: none; letter-spacing: 0; }
.se-footer .se-news .wp-block-post-title a { color: #fff; }
.se-footer .se-news .wp-block-post-date { font-size: 11px; color: var(--wp--preset--color--muted); }
.se-footer .se-news .wp-block-post-featured-image img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; }
.se-footer .wp-block-social-links .wp-social-link { transition: transform .2s var(--se-ease); }
.se-footer .wp-block-social-links .wp-social-link:hover { transform: translateY(-2px); }

/* floating contact button (the old site's quick-contact envelope) */
.se-fab { position: fixed; right: 22px; bottom: 22px; z-index: 60; display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-radius: 40px;
	background: var(--wp--preset--color--accent); color: #fff !important; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
	box-shadow: 0 10px 28px rgba(0, 0, 0, .25); transition: transform .2s var(--se-ease), background-color .2s; }
.se-fab:hover { transform: translateY(-2px); background: #5a9230; }
.se-fab svg { width: 18px; height: 18px; fill: currentColor; }
@media (max-width: 600px) { .se-fab span { display: none; } .se-fab { padding: 14px; } }

/* ---------- motion: sections fade up as they enter ---------- */
@media (prefers-reduced-motion: no-preference) {
	.se-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--se-ease), transform .7s var(--se-ease); }
	.se-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

@media (max-width: 781px) {
	.se-hero { min-height: 420px; }
	.se-testimonials > .se-testimonial { padding: 40px 24px 26px; }
	.se-aside { position: static; }
}

/* cards whose post has no featured image get a branded panel instead of an empty top */
.se-cards > li:not(:has(.wp-block-post-featured-image))::before,
.se-carousel .wp-block-post-template > li:not(:has(.wp-block-post-featured-image))::before {
	content: ""; display: block; aspect-ratio: 3 / 2;
	background: url("assets/icons/mark.svg") center / 64px no-repeat, linear-gradient(135deg, var(--wp--preset--color--navy) 0%, var(--wp--preset--color--navy-deep) 100%);
}
.se-carousel .wp-block-post-template > li:not(:has(.wp-block-post-featured-image))::before { aspect-ratio: auto; height: 190px; }

/* services overview cards */
.se-service-card { background: #fff; border-radius: var(--se-radius); overflow: hidden; box-shadow: var(--se-shadow); transition: transform .3s var(--se-ease), box-shadow .3s var(--se-ease); display: flex; flex-direction: column; }
.se-service-card:hover { transform: translateY(-4px); box-shadow: var(--se-shadow-lift); }
.se-service-card .wp-block-image { margin: 0; overflow: hidden; aspect-ratio: 3 / 2; }
.se-service-card .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--se-ease); }
.se-service-card:hover .wp-block-image img { transform: scale(1.05); }
.se-service-card .se-card__body p { font-size: 14px; line-height: 1.65; }
.se-intro-text { max-width: 760px; font-size: 18px; }

/* ---------- alignment: everything sits on the same 1140px content column ---------- */
/* full-width covers (hero, page banners): their text block follows the content column, left-aligned */
.wp-block-cover.alignfull > .wp-block-cover__inner-container { width: 100% !important; max-width: var(--wp--style--global--content-size) !important; margin-inline: auto !important; }
.wp-block-cover.alignfull > .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: auto !important; }
.wp-block-cover.alignfull.se-page-title--article > .wp-block-cover__inner-container { max-width: 780px !important; }
.se-page-title--article .se-page-title__title { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.25; }

/* banners butt straight onto the first section (no white block gap) */
.se-page-title + main, .se-page-title + .se-main, main.se-main { margin-top: 0 !important; }
.se-main > .wp-block-post-content { margin-top: 0; }
footer.wp-block-template-part { margin-top: 0; }

/* dropdown: white panel, navy links (the navigation's overlay colours would otherwise paint it navy) */
.se-header .wp-block-navigation .wp-block-navigation__submenu-container { background: #fff !important; color: var(--wp--preset--color--navy) !important; }
.se-header .wp-block-navigation .wp-block-navigation__submenu-container a { color: var(--wp--preset--color--navy) !important; }
/* mobile menu overlay: white panel with navy links */
.wp-block-navigation__responsive-container.is-menu-open { background: #fff !important; color: var(--wp--preset--color--navy) !important; }
.wp-block-navigation__responsive-container.is-menu-open a { color: var(--wp--preset--color--navy) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--wp--preset--color--body-text) !important; }

/* section headings: left-aligned with the content column everywhere */
.se-services .se-eyebrow, .se-services .se-section-title { text-align: left !important; }
.se-services .se-section-title::after { left: 0 !important; transform: none !important; }

/* focus ring: keyboard only, and quieter */
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
:focus-visible { outline: 2px solid rgba(109, 171, 60, .8); outline-offset: 2px; border-radius: 2px; }
.wp-block-button__link:focus-visible { outline-offset: 3px; }
/* mobile menu: left-aligned list, sub-items indented under Services */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 4px !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 8px 16px !important; border-left: 2px solid var(--wp--preset--color--accent); margin-left: 2px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow: none !important; border-radius: 0 !important; transform: none !important; min-width: 0 !important; background: transparent !important; }

/* light cards inside navy bands (e.g. the contact form card) keep dark text: the white-on-navy
   paragraph/list rule above would otherwise turn their text (and WPForms' checkbox labels) white */
:is(.has-navy-background-color, .has-navy-deep-background-color) :is(.has-mist-background-color, .has-white-background-color) :is(p, li, label, span) { color: var(--wp--preset--color--body-text); }
.wpforms-container, .wpforms-container :is(p, li, label, span, legend, .wpforms-field-label, .wpforms-field-sublabel, .wpforms-field-description) { color: var(--wp--preset--color--body-text) !important; }
.wpforms-container .wpforms-field-label { color: var(--wp--preset--color--navy) !important; font-weight: 600; }
.wpforms-container a { color: var(--wp--preset--color--navy) !important; text-decoration: underline; }
.wpforms-container .wpforms-required-label { color: #c0392b !important; }
.wpforms-container .wpforms-error { color: #c0392b !important; }
/* the "thanks" message WPForms shows after sending (replaces the form, so needs its own colours) */
.wpforms-confirmation-container-full, .wpforms-confirmation-container-full p, div[id^="wpforms-confirmation-"] p {
	color: #2f5d17 !important; background: #eef7e6 !important; border-color: var(--wp--preset--color--accent) !important;
}
.wpforms-confirmation-container-full { border-radius: 4px; padding: 18px 22px !important; }
