/**
 * Armeria 3S — footer templates (tomei, regina, centered, minimal), light scheme, logo-in-flag, CTA button,
 * partners, language switcher. Loaded after footer-armeria.css for every non-classic style; the
 * "armeria" template only picks up the light scheme and the shared pieces from here.
 * Only transform/opacity/colour motion; reduced motion honoured.
 */

/* ---------- Light scheme: redefine the tokens, then fix every hard-coded #fff of footer-armeria.css ---------- */
.a3s-footer--armeria.a3s-footer--light {
	--a3s-fa-bg: #f4f1ec;
	--a3s-fa-bg-2: #e9e4dc;
	--a3s-fa-text: #231f20; /* 14:1 on #f4f1ec */
	--a3s-fa-muted: #4a4547; /* 8:1 */
	--a3s-fa-line: rgba(35, 31, 32, .16);
	--a3s-fa-orange: #b84a0e; /* 4.6:1 on the light bg: icons + submit */
	--a3s-fa-accent: #231f20; /* focus ring: the dark-scheme yellow vanishes on light */
}

.a3s-footer--light .a3s-fa .a3s-footer__title,
.a3s-footer--light .a3s-fa .widget-title,
.a3s-footer--light .a3s-fnews__title {
	color: var(--a3s-fa-text);
}

@media (hover: hover) {
	.a3s-footer--light .a3s-fa a:hover,
	.a3s-footer--light .a3s-fa .a3s-flinks a:hover {
		color: var(--a3s-fa-text);
	}
}

.a3s-footer--light .a3s-fa .a3s-social--footer a {
	color: var(--a3s-fa-text);
}

@media (hover: hover) {
	.a3s-footer--light .a3s-fa .a3s-social--footer a:hover {
		color: #fff;
	}
}

.a3s-footer--light .a3s-fa .a3s-nl__field input {
	background: #fff;
	color: #231f20;
}

.a3s-footer--light .a3s-fa .a3s-nl__submit {
	background: var(--a3s-fa-orange);
	color: #fff;
}

@media (hover: hover) {
	.a3s-footer--light .a3s-fa .a3s-nl .a3s-nl__submit:hover {
		background: #231f20;
		color: #fff;
	}
}

.a3s-footer--light .a3s-fa .a3s-nl__req,
.a3s-footer--light .a3s-fa .a3s-nl__msg.is-error {
	color: #b3261e;
}

.a3s-footer--light .a3s-fa .a3s-nl__msg.is-ok {
	color: #1a6b35;
}

/* White payment chips would melt into the light bg. */
.a3s-footer--light .a3s-fa .a3s-payments img {
	box-shadow: 0 0 0 1px var(--a3s-fa-line);
}

/* ---------- Logo inside the tricolore flag (green | white | red, logo on the white stripe) ---------- */
.a3s-footer--logoflag {
	--a3s-lflag-w: 220px;
}

.a3s-footer--tpl-tomei {
	--a3s-lflag-w: 300px;
	--a3s-lflag-cols: 1fr 2fr 1fr; /* square white stripe for a round logo */
}

.a3s-footer--tpl-minimal {
	--a3s-lflag-w: 200px;
}

/* Fixed width + aspect ratio: the footer never jumps while the image loads. */
.a3s-fa .a3s-flogo--flag {
	display: block;
	width: var(--a3s-lflag-w, 220px);
	max-width: 100%;
}

.a3s-lflag {
	display: grid;
	grid-template-columns: var(--a3s-lflag-cols, 1fr 3fr 1fr); /* wide white stripe: the logo stays readable */
	width: 100%;
	aspect-ratio: 2 / 1;
	overflow: hidden;
	border-radius: 4px;
	box-shadow: 0 0 0 1px var(--a3s-fa-line); /* keeps the white stripe readable on the light scheme */
}

.a3s-lflag__s--g {
	background: #009246;
}

.a3s-lflag__s--r {
	background: #ce2b37;
}

.a3s-lflag__s--w {
	position: relative;
	min-width: 0;
	background: #fff;
}

.a3s-fa .a3s-lflag .a3s-flogo__img {
	position: absolute;
	inset: 8px;
	width: calc(100% - 16px);
	max-width: none;
	height: calc(100% - 16px);
	max-height: none;
	object-fit: contain;
}

.a3s-fa .a3s-flogo--flag:focus-visible {
	border-radius: 4px;
}

/* Plain logo: the SVG variants carry only a viewBox (a ratio, no size), so a shrink-to-fit link collapses them
   to 0 px. A block link with a definite width gives the image something to resolve against. */
.a3s-fa[class*="a3s-fa--"] .a3s-flogo:not(.a3s-flogo--flag) { /* the plain Armeria template keeps its 1.4.3 sizing */
	display: block;
	width: var(--a3s-flogo-w, 150px);
	max-width: 100%;
}

.a3s-fa[class*="a3s-fa--"] .a3s-flogo:not(.a3s-flogo--flag) img {
	width: 100%;
	max-width: none;
	height: auto;
	max-height: none;
}

/* An uploaded raster logo carries real dimensions: do not upscale it. */
.a3s-fa[class*="a3s-fa--"] .a3s-flogo:not(.a3s-flogo--flag) img.custom-logo {
	width: auto;
	max-width: 100%;
}

.a3s-fa--tomei {
	--a3s-flogo-w: 240px;
}

.a3s-fa--regina,
.a3s-fa--centered {
	--a3s-flogo-w: 170px;
}

.a3s-fa--minimal {
	--a3s-flogo-w: 100px;
}

/* ---------- Zones: flex so a missing zone never leaves a hole ---------- */
.a3s-fz-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 40px 48px;
}

.a3s-fz {
	flex: 1 1 0;
	min-width: 0;
}

.a3s-fz .a3s-fabout {
	margin: 0;
}

.a3s-fz .a3s-contact-list:last-child {
	margin-bottom: 0;
}

.a3s-fz--newsletter {
	container-type: inline-size; /* stack field + button when the column is narrow */
}

.a3s-fz.a3s-fz--newsletter > p,
.a3s-fz--newsletter .a3s-fw > p,
.a3s-fz--newsletter .a3s-fnews__text {
	margin: 0 0 20px;
	color: var(--a3s-fa-muted);
	max-width: 46ch;
}

@container (max-width: 420px) {
	.a3s-fa .a3s-nl__form {
		grid-template-columns: 1fr;
	}

	.a3s-fa .a3s-nl__fields,
	.a3s-fa .a3s-nl__submit {
		grid-column: 1;
		grid-row: auto;
	}

	.a3s-fa .a3s-nl__submit {
		align-self: stretch;
	}
}

/* ---------- Tomei: big logo | contacts + social | partners | newsletter + CTA ---------- */
.a3s-fa--tomei .a3s-fz--logo .a3s-flogo {
	margin-bottom: 20px;
}

.a3s-fa--tomei .a3s-fz--contacts .a3s-social--footer {
	margin-top: 24px;
}

.a3s-fz--partners {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.a3s-fpartner {
	display: block;
	max-width: 220px;
	line-height: 0;
}

.a3s-fpartner img,
img.a3s-fpartner {
	display: block;
	width: auto; /* never upscale a small partner logo */
	max-width: min(100%, 220px);
	height: auto;
}

.a3s-fa--tomei .a3s-fz--newsletter .a3s-fbtn {
	margin-top: 24px;
}

/* ---------- Regina: logo + contacts + hours | links | categories | newsletter; then a social/CTA/language row ---------- */
.a3s-fa--regina .a3s-fz--logo .a3s-contact-list {
	margin-bottom: 18px;
}

.a3s-frow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--a3s-fa-line);
}

.a3s-flang {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.a3s-flang a,
.a3s-flang span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--a3s-fa-line);
	border-radius: 4px;
	color: var(--a3s-fa-text);
	font-size: .875rem;
	font-weight: 600;
}

.a3s-fa .a3s-flang :is(a, span)[aria-current] { /* element-level specificity beats the light-scheme a:hover */
	border-color: var(--a3s-fa-text);
	background: var(--a3s-fa-text);
	color: var(--a3s-fa-bg);
}

/* ---------- Centered: one centred stack ---------- */
.a3s-fa--centered .a3s-fz-grid {
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 28px;
	text-align: center;
}

.a3s-fa--centered .a3s-fz {
	flex: 0 0 auto;
}

.a3s-fa--centered .a3s-flogo,
.a3s-fa--centered .a3s-flogo img {
	margin-bottom: 0;
}

.a3s-fa--centered .a3s-flogo {
	margin-inline: auto;
}

.a3s-fa--centered .a3s-fabout {
	margin-inline: auto;
}

.a3s-fa--centered .a3s-flinks--inline,
.a3s-fa--centered .a3s-social--footer {
	justify-content: center;
}

.a3s-fa--centered .a3s-fz--newsletter {
	width: 100%;
	max-width: 640px;
	margin-inline: auto;
}

.a3s-fa--centered .a3s-fz--newsletter > p,
.a3s-fa--centered .a3s-fz--newsletter .a3s-fw > p,
.a3s-fa--centered .a3s-fz--newsletter .a3s-fnews__text {
	margin-inline: auto;
}

.a3s-fa--centered .a3s-nl {
	text-align: left;
}

/* ---------- Minimal: one row ---------- */
.a3s-fa--minimal .a3s-fa__inner {
	padding-top: 28px;
	padding-bottom: 28px;
}

.a3s-fa--minimal .a3s-fz-grid {
	align-items: center;
	justify-content: space-between;
	gap: 20px 40px;
}

.a3s-fa--minimal .a3s-fz {
	flex: 0 1 auto;
}

.a3s-fa--minimal .a3s-flogo {
	margin-bottom: 0;
}

/* ---------- Shared: inline menu, CTA button ---------- */
.a3s-fa .a3s-flinks--inline {
	display: flex;
	flex-wrap: wrap;
	gap: 0 28px;
}

.a3s-fa .a3s-flinks--inline li + li {
	margin-top: 0;
}

.a3s-fa .a3s-flinks--inline a {
	display: inline-flex;
	align-items: center;
	min-height: 44px; /* touch target */
}

/* Dark: solid white. Light: outline in the text colour. footer.css (classic) defines the base .a3s-fbtn. */
.a3s-fa .a3s-fbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px; /* touch target */
	padding: 8px 24px;
	text-align: center; /* a long label that wraps stays centred */
	border: 2px solid #fff;
	border-radius: 4px;
	background: #fff;
	color: #231f20;
	font-weight: 600;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .16s var(--a3s-fa-ease, ease-out);
}

.a3s-fa .a3s-fbtn:active {
	transform: scale(.97);
}

@media (hover: hover) {
	.a3s-fa .a3s-fbtn:hover {
		border-color: var(--a3s-fa-orange);
		background: var(--a3s-fa-orange);
		color: #231f20;
		text-decoration: none;
	}
}

.a3s-footer--light .a3s-fa .a3s-fbtn {
	border-color: var(--a3s-fa-text);
	background: transparent;
	color: var(--a3s-fa-text);
}

@media (hover: hover) {
	.a3s-footer--light .a3s-fa .a3s-fbtn:hover {
		border-color: var(--a3s-fa-text);
		background: var(--a3s-fa-text);
		color: var(--a3s-fa-bg);
	}
}

/* 44 px targets for contact links on touch (footer.css only covers the classic .a3s-fmain). */
@media (pointer: coarse) {
	.a3s-fz .a3s-contact-list__text a {
		display: inline-block;
		padding: 12px 0;
		margin: -12px 0;
	}
}

/* ---------- Widgets in zones (sidebars footer-{tpl}-{zone}): <div class="a3s-fw widget widget_x"> ---------- */
.a3s-fa .a3s-fw {
	--a3s-fw-hover: #fff;
	min-width: 0;
	overflow-wrap: anywhere; /* a long URL in a Text widget never widens the column */
}

.a3s-footer--light .a3s-fa .a3s-fw {
	--a3s-fw-hover: var(--a3s-fa-text);
}

/* Several widgets in one zone stack with one gap; the element margins of all but the last widget are dropped. */
.a3s-fz > .a3s-fw + .a3s-fw {
	margin-top: 22px; /* = the default margin of logo, text and contact list: a seeded zone looks like the default one */
}

.a3s-fz > .a3s-fw:not(:last-child) > :last-child { /* the last widget keeps the default trailing margin, so seeded and default zones have the same height */
	margin-bottom: 0;
}

.a3s-fz--partners > .a3s-fw + .a3s-fw { /* the partners zone already spaces its children with a flex gap */
	margin-top: 0;
}

/* Zone-level spacers above assume content + button/social share one zone; as separate widgets the stack gap does it (24px as in the default Tomei). */
.a3s-fa--tomei .a3s-fz--newsletter .a3s-fw .a3s-fbtn,
.a3s-fa--tomei .a3s-fz--contacts .a3s-fw > .a3s-social--footer:first-child {
	margin-top: 0;
}

.a3s-fa--tomei .a3s-fz--newsletter > .a3s-fw + .a3s-fw {
	margin-top: 24px;
}

/* Regina bottom row: widgets sit side by side (.a3s-frow is the flex container); a wrapper zone inside it takes the full width. */
.a3s-frow > .a3s-fz--row {
	display: flex;
	flex: 1 1 100%;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
}

.a3s-frow .a3s-fw + .a3s-fw {
	margin-top: 0;
}

/* Core widgets users may drop in: text, images, search, lists. */
.a3s-fa .a3s-fw:is(.widget_text, .widget_custom_html, .widget_block, .widget_media_image, .widget_media_gallery) {
	color: var(--a3s-fa-muted);
	line-height: 1.65;
}

.a3s-fa .a3s-fw:is(.widget_text, .widget_custom_html, .widget_block) p {
	margin: 0 0 14px;
	max-width: 42ch; /* same measure as the default brand text (.a3s-fabout) */
}

.a3s-fa .a3s-fw .textwidget > :last-child {
	margin-bottom: 0;
}

.a3s-fa--centered .a3s-fw:is(.widget_text, .widget_custom_html, .widget_block) p {
	margin-inline: auto;
}

.a3s-fa .a3s-fw:is(.widget_text, .widget_custom_html, .widget_block) p a {
	text-decoration: underline; /* inline links in prose stay recognisable */
	text-underline-offset: 3px;
}

.a3s-fa .a3s-fw :is(h1, h2, h3, h4, h5, h6):not(.widget-title, .a3s-footer__title) {
	margin: 0 0 12px;
	color: var(--a3s-fa-text);
	line-height: 1.3;
}

.a3s-fa .a3s-fw :is(img, video, iframe):not(.a3s-flogo__img, .custom-logo) {
	max-width: 100%;
}

.a3s-fa .a3s-fw :is(img, video):not(.a3s-flogo__img, .custom-logo) {
	height: auto;
}

/* An iframe has no intrinsic ratio: embeds keep 16:9 when the width shrinks. */
.a3s-fa .a3s-fw iframe {
	aspect-ratio: 16 / 9;
	height: auto;
}

.a3s-fa .a3s-fw :is(.widget_media_image, .wp-block-image) img,
.a3s-fa .a3s-fw.widget_media_image img {
	display: block;
}

/* Partners: keep the 220px cap of the default partner logos on core Image widgets. */
.a3s-fz--partners .a3s-fw.widget_media_image img {
	width: auto;
	max-width: min(100%, 220px);
}

.a3s-fa .a3s-fw :is(.wp-caption-text, figcaption) {
	margin-top: 8px;
	color: var(--a3s-fa-muted);
	font-size: .875rem;
}

/* Lists of core widgets look like .a3s-flinks (the theme's own widgets keep their own list rules). */
.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block, .widget_text, .widget_custom_html) :is(ul, ol) {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.5;
}

.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block, .widget_text, .widget_custom_html) li + li {
	margin-top: 10px;
}

.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block, .widget_text, .widget_custom_html) :is(ul, ol) :is(ul, ol) {
	margin-top: 10px;
	padding-left: 16px; /* sub-menus and child categories */
}

.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block) li > a {
	color: var(--a3s-fa-muted);
}

@media (hover: hover) {
	.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block) li > a:hover {
		color: var(--a3s-fw-hover);
	}
}

.a3s-fa .a3s-fw :is(.post-date, .rss-date) {
	display: block;
	color: var(--a3s-fa-muted);
	font-size: .875rem;
}

.a3s-fa .a3s-fw :is(.current-menu-item, .current-cat) > a {
	color: var(--a3s-fa-text);
	font-weight: 600;
}

/* Centered and minimal are inline rows: a menu / category list flows horizontally like .a3s-flinks--inline. */
.a3s-fa--centered .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_categories, .widget_product_categories) :is(ul, ol):not(.sub-menu, .children),
.a3s-fa--minimal .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_categories, .widget_product_categories) :is(ul, ol):not(.sub-menu, .children) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0 28px;
}

.a3s-fa--centered .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_categories, .widget_product_categories) li + li,
.a3s-fa--minimal .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_categories, .widget_product_categories) li + li {
	margin-top: 0;
}

/* A one-row list shows the top level only (the theme's own footer menus are one level deep too). */
.a3s-fa--centered .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_categories, .widget_product_categories) :is(.sub-menu, .children),
.a3s-fa--minimal .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_categories, .widget_product_categories) :is(.sub-menu, .children) {
	display: none;
}

/* Centered template: images dropped into a zone sit on the centre line like the logo. */
.a3s-fa--centered .a3s-fw :is(.widget_media_image, .wp-block-image) img,
.a3s-fa--centered .a3s-fw.widget_media_image img {
	margin-inline: auto;
}

/* Search (classic widget + block): field and button share a row; legible in both schemes. */
.a3s-fa .a3s-fw :is(.search-form, .wp-block-search__inside-wrapper) {
	display: flex;
	gap: 8px;
}

.a3s-fa .a3s-fw .search-form label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}

.a3s-fa .a3s-fw .search-form .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.a3s-fa .a3s-fw :is(.search-field, .wp-block-search__input, input[type="search"]) {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid #6d6667; /* control edge needs 3:1 on the dark bg (same as the newsletter input) */
	border-radius: 4px;
	background: var(--a3s-fa-bg-2);
	color: var(--a3s-fa-text);
	font: inherit;
}

.a3s-footer--light .a3s-fa .a3s-fw :is(.search-field, .wp-block-search__input, input[type="search"], select) {
	border-color: rgba(35, 31, 32, .4); /* the field edge needs 3:1 on the light bg */
	background: #fff;
}

.a3s-fa .a3s-fw :is(.search-field, .wp-block-search__input)::placeholder {
	color: var(--a3s-fa-muted);
	opacity: 1;
}

.a3s-fa .a3s-fw :is(.search-submit, .wp-block-search__button) {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 8px 18px;
	border: 0;
	border-radius: 4px;
	background: var(--a3s-fa-orange);
	color: #231f20; /* 4.7:1 on the dark-scheme orange */
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.a3s-footer--light .a3s-fa .a3s-fw :is(.search-submit, .wp-block-search__button) {
	color: #fff; /* 5.2:1 on the light-scheme orange */
}

@media (hover: hover) {
	.a3s-fa .a3s-fw :is(.search-submit, .wp-block-search__button):hover {
		background: #fff;
		color: #231f20;
	}

	.a3s-footer--light .a3s-fa .a3s-fw :is(.search-submit, .wp-block-search__button):hover {
		background: #231f20;
		color: #fff;
	}
}

.a3s-fa .a3s-fw :is(.search-field, .wp-block-search__input, .search-submit, .wp-block-search__button):focus-visible {
	outline: 2px solid var(--a3s-fa-accent);
	outline-offset: 2px;
}

/* Centered / minimal stacks are narrow centred columns: the search form does not stretch across the row. */
.a3s-fa--centered .a3s-fw .search-form,
.a3s-fa--minimal .a3s-fw .search-form {
	max-width: 420px;
	margin-inline: auto;
}

/* Dropdown widgets (categories, archives): the select inherits the field look. */
.a3s-fa .a3s-fw select {
	box-sizing: border-box;
	max-width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid #6d6667;
	border-radius: 4px;
	background: var(--a3s-fa-bg-2);
	color: var(--a3s-fa-text);
	font: inherit;
}

/* ---------- Desktop: weights per template ---------- */
@media (min-width: 1100px) {
	.a3s-footer--tpl-tomei .a3s-fz--logo { flex: 1.1 1 200px; }
	.a3s-footer--tpl-tomei .a3s-fz--contacts { flex: 1.3 1 220px; }
	.a3s-footer--tpl-tomei .a3s-fz--partners { flex: .7 1 150px; }
	.a3s-footer--tpl-tomei .a3s-fz--newsletter { flex: 1.3 1 240px; }

	.a3s-footer--tpl-regina .a3s-fz--logo { flex: 1.3 1 260px; }
	.a3s-footer--tpl-regina .a3s-fz--menu1,
	.a3s-footer--tpl-regina .a3s-fz--links,
	.a3s-footer--tpl-regina .a3s-fz--categories { flex: .8 1 150px; }
	.a3s-footer--tpl-regina .a3s-fz--newsletter { flex: 1.6 1 300px; }
}

/* Narrow desktop: four tomei columns are cramped (partners squeeze the newsletter), so the partners drop to their own row. */
@media (min-width: 1100px) and (max-width: 1279.98px) {
	.a3s-footer--tpl-tomei .a3s-fz--partners {
		order: 1;
		flex: 1 1 100%;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		gap: 20px 32px;
	}
}

/* ---------- Tablet: two columns ---------- */
@media (min-width: 768px) and (max-width: 1099.98px) {
	.a3s-footer--tpl-tomei .a3s-fz,
	.a3s-footer--tpl-regina .a3s-fz {
		flex: 1 1 calc(50% - 24px);
	}
}

/* ---------- Phone: single column; regina link columns keep their accordions ---------- */
@media (max-width: 767.98px) {
	.a3s-footer--tpl-tomei .a3s-fz-grid,
	.a3s-footer--tpl-regina .a3s-fz-grid {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
	}

	.a3s-footer--tpl-tomei .a3s-fz,
	.a3s-footer--tpl-regina .a3s-fz {
		flex: 0 0 auto;
	}

	.a3s-footer--tpl-tomei .a3s-fz,
	.a3s-footer--tpl-regina .a3s-fz--logo {
		padding-bottom: 28px;
	}

	.a3s-footer--tpl-tomei .a3s-fz--newsletter {
		padding-bottom: 0;
	}

	.a3s-footer--tpl-regina .a3s-fz--newsletter {
		padding-top: 28px;
	}

	/* One continuous accordion list: the pair shares its outer borders. */
	.a3s-fa .a3s-fz--menu1 .a3s-facc,
	.a3s-fa .a3s-fz--links .a3s-facc,
	.a3s-fa .a3s-fz--categories .a3s-facc {
		border-bottom: 1px solid var(--a3s-fa-line);
	}

	.a3s-fa .a3s-fz--categories .a3s-facc {
		border-top: 0;
	}

	.a3s-frow {
		flex-direction: column;
		align-items: flex-start;
		margin-top: 32px;
	}

	.a3s-frow .a3s-fbtn {
		align-self: stretch;
	}

	.a3s-frow .a3s-fw .a3s-fbtn { /* the button widget sits one level deeper: stretch it the same way */
		display: flex;
		justify-content: center;
		width: 100%;
	}

	.a3s-fa--minimal .a3s-fz-grid {
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}

	.a3s-fa--minimal .a3s-flinks--inline,
	.a3s-fa--minimal .a3s-social--footer {
		justify-content: center;
	}

	.a3s-fa--minimal .a3s-flogo {
		margin-inline: auto;
	}

	.a3s-fa--centered .a3s-fz-grid {
		gap: 24px;
	}
}

/* Widget lists: 44 px touch targets (phones and any coarse pointer). */
@media (max-width: 767.98px), (pointer: coarse) {
	.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block) li + li {
		margin-top: 0;
	}

	.a3s-fa .a3s-fw:is(.widget_nav_menu, .widget_pages, .widget_meta, .widget_archive, .widget_categories, .widget_recent_entries, .widget_recent_comments, .widget_rss, .widget_product_categories, .widget_block) li > a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

@media (max-width: 767.98px) {
	.a3s-fa .a3s-fw :is(.search-form, .wp-block-search__inside-wrapper) {
		flex-wrap: wrap;
	}

	.a3s-fa .a3s-fw :is(.search-submit, .wp-block-search__button) {
		flex: 1 1 100%;
	}

	.a3s-frow .a3s-fw {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.a3s-fa .a3s-fbtn {
		transition: color .15s ease, background-color .15s ease, border-color .15s ease;
	}

	.a3s-fa .a3s-fbtn:active {
		transform: none;
	}
}
