/*
Theme Name: Sanctoria
Theme URI: https://sanctoria.com/sanctoria-theme/
Author: Sanctoria
Author URI: https://sanctoria.com/
Description: Sanctoria is a fast, accessible multipurpose theme for business sites, online shops, blogs and portfolios. It pairs a classic PHP template structure with a modern theme.json design system (color palette, fluid type scale, spacing scale and block styles), so it works with the block editor and with page builders. Elementor users get every Theme Builder location (header, footer, single, archive), Canvas and Full Width templates, and the theme color palette in Elementor's global color picker. WooCommerce users get styled shop, product, cart, checkout (classic and block-based) and account pages, a header cart with a live item count and mini-cart, and Customizer options for products per row, products per page and shop sidebars. It also includes block patterns for business, shop, portfolio and blog layouts: hero, services, portfolio grid, shop promo, testimonials, team, pricing, call to action and latest posts. The front end uses one small stylesheet, a small deferred script with no jQuery, and locally bundled fonts (Inter, DM Sans, Playfair Display and Lora) with no external font requests. The Customizer covers the global color palette, typography, container width, per-context sidebar and container layouts, header (layout, sticky, transparent, top bar, colors), footer (widget columns, copyright, colors), blog meta and featured images, button style and an optional dark mode, with live preview.
Version: 0.3.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sanctoria
Tags: blog, e-commerce, portfolio, one-column, two-columns, right-sidebar, custom-background, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, block-patterns, block-styles, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks

Sanctoria WordPress Theme, (C) 2026 Sanctoria.
Sanctoria is distributed under the terms of the GNU GPL v2 or later.
*/

/* 1. Base ------------------------------------------------------------ */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--sanctoria-scroll-offset, 0px); }

body {
	margin: 0;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}

img,
video,
iframe,
embed,
object { max-width: 100%; height: auto; }

a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

hr { border: 0; border-top: 1px solid var(--wp--preset--color--line); margin: 2rem 0; }

table { border-collapse: collapse; width: 100%; }
th, td { padding: 0.6em 0.8em; border-bottom: 1px solid var(--wp--preset--color--line); text-align: start; }

/* 2. Accessibility ---------------------------------------------------- */
.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;
}
.screen-reader-text:focus {
	background: var(--wp--preset--color--base);
	border-radius: 4px;
	box-shadow: var(--wp--preset--shadow--medium);
	clip: auto !important;
	clip-path: none;
	color: var(--wp--preset--color--primary);
	display: block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	height: auto;
	left: 8px;
	padding: 1rem 1.5rem;
	text-decoration: none;
	top: 8px;
	width: auto;
	z-index: 100000;
}
.skip-link:focus { position: fixed !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* 3. Forms ------------------------------------------------------------ */
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"],
input[type="number"], input[type="tel"], input[type="date"], select, textarea {
	background: var(--wp--preset--color--base);
	border: 1px solid #8f8f99;
	border-radius: 4px;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	line-height: 1.4;
	max-width: 100%;
	padding: 0.65em 0.85em;
	transition: border-color 0.15s, box-shadow 0.15s;
}
textarea { width: 100%; }
input:focus, select:focus, textarea:focus {
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(47, 111, 219, 0.25);
	outline: 2px solid transparent;
}
label { font-weight: 600; font-size: var(--wp--preset--font-size--small); }

button, input[type="submit"], input[type="button"], input[type="reset"],
.wp-element-button, .wp-block-button__link {
	cursor: pointer;
}
:where(button:not([class*="toggle"]), input[type="submit"], input[type="button"], input[type="reset"]) {
	background: var(--wp--preset--color--primary);
	border: 0;
	border-radius: var(--sanctoria-button-radius, 4px);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.2;
	padding: var(--sanctoria-button-padding, 0.8em 1.6em);
	text-transform: var(--sanctoria-button-transform, none);
}
:root :where(.wp-element-button, .wp-block-button__link) { padding: var(--sanctoria-button-padding, 0.8em 1.6em); }
:where(button:not([class*="toggle"]), input[type="submit"], input[type="button"], input[type="reset"]):hover { background: var(--wp--preset--color--primary-dark); }

.search-form { display: flex; gap: 0.5rem; }
.search-form .search-field { flex: 1; min-width: 0; }

/* 4. Layout ----------------------------------------------------------- */
.site-header__inner,
.site-content,
.site-footer__widgets,
.site-info {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1200px);
	padding-inline: var(--wp--preset--spacing--30);
}

.site-content {
	padding-block: var(--wp--preset--spacing--50);
	display: grid;
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: minmax(0, 1fr);
}
.has-sidebar .site-content { grid-template-columns: minmax(0, 1fr) 300px; }
.no-sidebar .site-content > .site-main { max-width: 100%; }

.site-main--full-width,
.site-main--canvas { display: block; }

.widget-area { font-size: var(--wp--preset--font-size--small); }
.widget { margin-bottom: 2rem; }
.widget-title { font-size: var(--wp--preset--font-size--medium); margin: 0 0 0.75rem; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { padding: 0.35em 0; border-bottom: 1px solid var(--wp--preset--color--line); }

@media (max-width: 960px) {
	.has-sidebar .site-content { grid-template-columns: minmax(0, 1fr); }
}

/* Constrain prose on singular views; let blocks align wide/full. */
.entry-content > :where(:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright)),
.entry-header,
.post-thumbnail,
.entry-footer,
.comments-area,
.post-navigation,
.page-header,
.no-results,
.error-404 {
	margin-inline: auto;
	max-width: var(--wp--style--global--content-size, 800px);
}
.has-sidebar .entry-content > *,
.has-sidebar .entry-header,
.has-sidebar .post-thumbnail,
.has-sidebar .entry-footer,
.has-sidebar .comments-area,
.has-sidebar .post-navigation,
.has-sidebar .page-header { max-width: none; }

.entry-content > .alignwide { margin-inline: auto; max-width: var(--wp--style--global--wide-size, 1200px); }
.entry-content > .alignfull {
	margin-inline: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}
.has-sidebar .entry-content > .alignfull,
.has-sidebar .entry-content > .alignwide { margin-inline: 0; width: 100%; max-width: 100%; }
.site-main--full-width .entry-content { margin-block: 0; }
.site-main--full-width .entry-content > .alignfull { margin-inline: 0; width: 100%; }
.site-main--full-width .entry-content > .alignfull:first-child { margin-block-start: 0; }
.site-main--full-width .entry-content > .alignfull:last-child { margin-block-end: 0; }
.site-main--full-width .entry-content > :where(:not(.alignwide):not(.alignfull)) { padding-inline: 0; }
.site-main--full-width .entry-content > :where(:not(.alignwide):not(.alignfull):not(.elementor)) {
	max-width: var(--wp--style--global--content-size, 800px);
}
.site-main--full-width .entry-content > .elementor,
.site-main--canvas > .elementor { max-width: none; }
body { overflow-x: clip; }

.alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
.alignright { float: right; margin: 0.3em 0 1em 1.5em; }
.aligncenter { margin-inline: auto; display: block; }
.wp-caption, .wp-caption-text, .gallery-caption { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--x-small); }
.sticky .entry-title::before { content: "\2605\00a0"; color: var(--wp--preset--color--secondary); }
.bypostauthor > .comment-body .fn::after { content: ""; }

/* 5. Header ----------------------------------------------------------- */
.site-header {
	background: var(--sanctoria-header-bg, var(--wp--preset--color--base));
	border-bottom: 1px solid var(--wp--preset--color--line);
	color: var(--sanctoria-header-text, var(--wp--preset--color--contrast));
	position: relative;
	z-index: 50;
}
.sanctoria-sticky-header .site-header { position: sticky; top: 0; }
.admin-bar.sanctoria-sticky-header .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar.sanctoria-sticky-header .site-header { top: 0; } }
.sanctoria-sticky-header { --sanctoria-scroll-offset: 90px; }

.site-header__inner {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	min-height: 76px;
	padding-block: 0.75rem;
}
.site-branding { align-items: center; display: flex; gap: 0.75rem; margin-inline-end: auto; }
.sanctoria-header-inline .site-branding { margin-inline-end: 0; }
.sanctoria-header-inline .main-navigation { margin-inline-end: auto; }
.site-title { font-size: var(--wp--preset--font-size--large); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin: 0; }
.site-title a { color: inherit; text-decoration: none; }
.site-description { color: inherit; opacity: 0.8; font-size: var(--wp--preset--font-size--x-small); margin: 0.15rem 0 0; }
.site-branding .custom-logo { display: block; max-height: 60px; width: auto; }
.site-header__actions { align-items: center; display: flex; gap: 0.75rem; }
.site-header__actions:empty { display: none; }

.sanctoria-header-centered .site-header__inner { flex-direction: column; justify-content: center; text-align: center; }
.sanctoria-header-centered .site-branding { margin-inline: auto; flex-direction: column; }
.sanctoria-header-centered .main-navigation .menu { justify-content: center; }

/* Navigation */
.main-navigation ul { list-style: none; margin: 0; padding: 0; }
.main-navigation .menu { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; align-items: center; }
.main-navigation li { position: relative; display: flex; align-items: center; flex-wrap: wrap; }
.main-navigation a {
	border-radius: 4px;
	color: inherit;
	display: block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	padding: 0.5em 0.7em;
	text-decoration: none;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a { text-decoration: underline; text-underline-offset: 0.35em; }

.submenu-toggle,
.menu-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 4px;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	gap: 0.5rem;
	justify-content: center;
	padding: 0.4rem;
}
.submenu-toggle { height: 32px; margin-inline-start: -0.4rem; width: 28px; }
.submenu-toggle__icon {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	height: 8px;
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.15s;
	width: 8px;
}
.is-open > .submenu-toggle .submenu-toggle__icon { transform: translateY(2px) rotate(-135deg); }

.main-navigation .sub-menu {
	background: var(--sanctoria-header-bg, var(--wp--preset--color--base));
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	box-shadow: var(--wp--preset--shadow--medium);
	color: var(--sanctoria-header-text, var(--wp--preset--color--contrast));
	display: none;
	inset-inline-start: 0;
	min-width: 220px;
	padding: 0.4rem;
	position: absolute;
	top: 100%;
	z-index: 60;
}
.main-navigation .sub-menu .sub-menu { inset-inline-start: 100%; top: 0; }
.main-navigation .sub-menu li { width: 100%; }
.main-navigation .sub-menu a { flex: 1; }
.no-js .main-navigation li:hover > .sub-menu,
.no-js .main-navigation li:focus-within > .sub-menu,
.main-navigation li.is-open > .sub-menu { display: block; }
@media (hover: hover) and (min-width: 901px) {
	.main-navigation li:hover > .sub-menu { display: block; }
}

.menu-toggle { display: none; border: 1px solid var(--wp--preset--color--line); padding: 0.5rem 0.8rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.menu-toggle__icon,
.menu-toggle__icon::before,
.menu-toggle__icon::after {
	background: currentColor;
	display: block;
	height: 2px;
	position: relative;
	transition: transform 0.2s, background 0.2s;
	width: 18px;
}
.menu-toggle__icon::before,
.menu-toggle__icon::after { content: ""; position: absolute; }
.menu-toggle__icon::before { top: -6px; }
.menu-toggle__icon::after { top: 6px; }
.is-open .menu-toggle__icon { background: transparent; }
.is-open .menu-toggle__icon::before { transform: translateY(6px) rotate(45deg); }
.is-open .menu-toggle__icon::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 900px) {
	.site-header__inner { flex-direction: row !important; text-align: start !important; }
	.sanctoria-header-centered .site-branding { margin-inline: 0 auto; align-items: flex-start; }
	.main-navigation { order: 3; width: 100%; }
	.sanctoria-header-inline .main-navigation { margin-inline-end: 0; }
	.js .menu-toggle { display: inline-flex; position: absolute; inset-inline-end: var(--wp--preset--spacing--30); top: 1.25rem; }
	.js .main-navigation .menu { display: none; }
	.js .main-navigation.is-open .menu { display: flex; }
	.main-navigation .menu { flex-direction: column; align-items: stretch; padding-block: 0.5rem; }
	.main-navigation li { justify-content: space-between; border-top: 1px solid var(--wp--preset--color--line); }
	.main-navigation a { padding: 0.8em 0.25em; flex: 1; }
	.submenu-toggle { width: 44px; height: 44px; }
	.main-navigation .sub-menu,
	.main-navigation .sub-menu .sub-menu {
		border: 0;
		box-shadow: none;
		padding: 0 0 0 1rem;
		position: static;
		width: 100%;
	}
	.js .site-branding { max-width: calc(100% - 7rem); }
	.site-header__actions { margin-inline-end: 6.5rem; }
	.no-js .site-header__actions { margin-inline-end: 0; }
}

/* Top bar, transparent header, dark mode toggle */
.top-bar { background: var(--sanctoria-topbar-bg, var(--wp--preset--color--primary-dark)); color: var(--sanctoria-topbar-text, #fff); font-size: var(--wp--preset--font-size--x-small); }
.top-bar a { color: inherit; }
.top-bar__inner { margin-inline: auto; max-width: var(--wp--style--global--wide-size, 1200px); padding: 0.45rem var(--wp--preset--spacing--30); text-align: center; }
.sanctoria-transparent-header .site-header {
	--sanctoria-header-bg: transparent;
	--sanctoria-header-text: #fff;
	border-bottom-color: rgba(255, 255, 255, 0.18);
	inset-inline: 0;
	position: absolute;
	top: 0;
	transition: background 0.2s, color 0.2s;
}
.admin-bar.sanctoria-transparent-header .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.sanctoria-transparent-header.sanctoria-sticky-header .site-header { position: fixed; }
.sanctoria-transparent-header .site-header.is-scrolled { --sanctoria-header-bg: var(--wp--preset--color--base); --sanctoria-header-text: var(--wp--preset--color--contrast); border-bottom-color: var(--wp--preset--color--line); box-shadow: var(--wp--preset--shadow--soft); }
.sanctoria-transparent-header .main-navigation .sub-menu { --sanctoria-header-bg: var(--wp--preset--color--base); --sanctoria-header-text: var(--wp--preset--color--contrast); }
.sanctoria-transparent-header .site-main > :first-child,
.sanctoria-transparent-header .site-main .entry-content > .alignfull:first-child { margin-top: 0; }
@media (max-width: 900px) {
	.sanctoria-transparent-header .main-navigation.is-open .menu { background: var(--wp--preset--color--base); border-radius: 6px; color: var(--wp--preset--color--contrast); padding-inline: 0.75rem; }
}
.dark-toggle { align-items: center; background: transparent; border: 1px solid currentColor; border-radius: 999px; color: inherit; cursor: pointer; display: inline-flex; height: 36px; justify-content: center; opacity: 0.85; padding: 0; width: 36px; }
.dark-toggle:hover { opacity: 1; }
.dark-toggle__sun,
[data-theme="dark"] .dark-toggle__moon { display: none; }
[data-theme="dark"] .dark-toggle__sun { display: block; }
[data-theme="dark"] img:not([src*=".svg"]) { filter: brightness(0.92); }

/* Sidebar position and container styles */
.sidebar-left .site-content { grid-template-columns: 300px minmax(0, 1fr); }
.sidebar-left .site-content > .widget-area { grid-column: 1; grid-row: 1; }
.sidebar-left .site-content--shop { grid-template-columns: 260px minmax(0, 1fr); }
.sidebar-right .site-content--shop { grid-template-columns: minmax(0, 1fr) 260px; }
@media (max-width: 960px) {
	.sidebar-left .site-content,
	.sidebar-left .site-content--shop,
	.sidebar-right .site-content--shop { grid-template-columns: minmax(0, 1fr); }
	.sidebar-left .site-content > .widget-area { grid-row: auto; }
}
.sanctoria-container-boxed { background-color: var(--wp--preset--color--base-2); }
.sanctoria-container-boxed .site-content > .site-main,
.sanctoria-container-boxed .site-content > .widget-area {
	align-self: start;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--40);
}
.sanctoria-container-full .site-content { max-width: none; }

/* Block widget headings stay compact */
.widget-area h2, .site-footer h2 { font-size: var(--wp--preset--font-size--medium); }

/* Post list style */
.sanctoria-posts-list .posts-list { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) {
	.sanctoria-posts-list .entry-card { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
	.sanctoria-posts-list .entry-card:not(:has(.post-thumbnail)) { display: flex; }
	.sanctoria-posts-list .entry-card .post-thumbnail img { aspect-ratio: auto; height: 100%; }
}
.entry-meta > * + *::before { content: "\00b7"; margin-inline-end: 0.35em; }

/* 6. Content ---------------------------------------------------------- */
.page-header { margin-bottom: var(--wp--preset--spacing--40); }
.page-title, .entry-title { margin: 0 0 0.5rem; }
.archive-description { color: var(--wp--preset--color--contrast-2); }
.entry-meta, .entry-footer { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--x-small); }
.entry-meta a, .entry-footer a { color: inherit; }
.entry-footer { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.post-thumbnail { display: block; margin-bottom: 1.5rem; }
.post-thumbnail img { border-radius: 6px; display: block; width: 100%; }
.entry-content { margin-block: 1.5rem; }
.entry-content::after { clear: both; content: ""; display: table; }

.posts-list { display: grid; gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.entry-card { background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: 8px; display: flex; flex-direction: column; overflow: hidden; }
.entry-card .post-thumbnail { margin: 0; }
.entry-card .post-thumbnail img { aspect-ratio: 16 / 10; border-radius: 0; object-fit: cover; }
.entry-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.25rem 1.5rem 1.5rem; }
.entry-card .entry-title { font-size: var(--wp--preset--font-size--large); }
.entry-card .entry-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.entry-card .entry-title a:hover { color: var(--wp--preset--color--primary); text-decoration: underline; }
.entry-card .entry-summary { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--small); flex: 1; }
.entry-card__more { font-size: var(--wp--preset--font-size--small); font-weight: 600; }

.navigation.pagination, .post-navigation, .comment-navigation { margin-top: var(--wp--preset--spacing--40); }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: space-between; }
.pagination .nav-links { justify-content: center; }
.page-numbers { border: 1px solid var(--wp--preset--color--line); border-radius: 4px; display: inline-block; min-width: 2.5em; padding: 0.4em 0.8em; text-align: center; text-decoration: none; }
.page-numbers.current { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.nav-subtitle { color: var(--wp--preset--color--contrast-2); display: block; font-size: var(--wp--preset--font-size--x-small); }

/* Comments */
.comments-area { margin-top: var(--wp--preset--spacing--50); }
.comment-list, .comment-list .children { list-style: none; padding: 0; }
.comment-list .children { padding-inline-start: 1.5rem; }
.comment-body { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1.25rem 0; }
.comment-meta { font-size: var(--wp--preset--font-size--small); }
.comment-author .avatar { border-radius: 50%; float: left; margin-inline-end: 0.75rem; }
.comment-metadata { color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--x-small); }
.comment-metadata a { color: inherit; display: inline-block; min-height: 24px; padding-block: 2px; }
.comment-form p { margin: 0 0 1rem; }
.comment-form input:not([type="checkbox"]):not([type="submit"]) { width: 100%; }
.comment-form label { display: block; margin-bottom: 0.25rem; }
.comment-form-cookies-consent label { display: inline; font-weight: 400; }

/* 7. Footer ----------------------------------------------------------- */
.site-footer { background: var(--sanctoria-footer-bg, var(--wp--preset--color--primary-dark)); color: var(--sanctoria-footer-text, #d9dde6); font-size: var(--wp--preset--font-size--small); }
.site-footer a { color: var(--sanctoria-footer-link, #fff); }
.site-footer .widget-title { color: inherit; }
.site-footer .widget li { border-color: rgba(255, 255, 255, 0.12); }
.site-footer__widgets { display: grid; gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(var(--sanctoria-footer-columns, 3), minmax(0, 1fr)); padding-block: var(--wp--preset--spacing--50) 0; }
@media (max-width: 900px) { .site-footer__widgets { grid-template-columns: repeat(min(2, var(--sanctoria-footer-columns, 3)), minmax(0, 1fr)); } }
@media (max-width: 600px) { .site-footer__widgets { grid-template-columns: minmax(0, 1fr); } }
.site-info { align-items: center; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; justify-content: space-between; padding-block: 1.5rem; }
.site-footer__widgets + .site-info { border-top: 1px solid rgba(255, 255, 255, 0.12); margin-top: var(--wp--preset--spacing--40); }
.site-info p { margin: 0; }
.footer-navigation ul { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.site-footer :focus-visible { outline-color: currentColor; }

/* 8. Block styles ----------------------------------------------------- */
.is-style-sanctoria-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	box-shadow: var(--wp--preset--shadow--soft);
	padding: var(--wp--preset--spacing--40);
}
.is-style-sanctoria-shadow img { border-radius: 8px; box-shadow: var(--wp--preset--shadow--medium); }
ul.is-style-sanctoria-check { list-style: none; padding-inline-start: 0; }
ul.is-style-sanctoria-check li { padding-inline-start: 1.75em; position: relative; margin-bottom: 0.5em; }
ul.is-style-sanctoria-check li::before {
	border-bottom: 2px solid var(--wp--preset--color--secondary);
	border-right: 2px solid var(--wp--preset--color--secondary);
	content: "";
	height: 0.75em;
	inset-inline-start: 0.3em;
	position: absolute;
	top: 0.3em;
	transform: rotate(45deg);
	width: 0.4em;
}
.wp-block-separator.is-style-sanctoria-short { border-top: 3px solid var(--wp--preset--color--secondary) !important; max-width: 64px !important; margin-inline: 0; }
.has-text-align-center .wp-block-separator.is-style-sanctoria-short,
.wp-block-separator.is-style-sanctoria-short.aligncenter { margin-inline: auto; }
.is-style-sanctoria-eyebrow {
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.has-base-color .is-style-sanctoria-eyebrow,
.has-primary-background-color .is-style-sanctoria-eyebrow,
.has-primary-dark-background-color .is-style-sanctoria-eyebrow,
.wp-block-cover .is-style-sanctoria-eyebrow { color: #e7c983; }

/* 9. Integrations ----------------------------------------------------- */
/* Elementor: let its sections control width inside theme templates. */
.elementor-page .site-main--full-width .entry-content { margin: 0; }
.elementor-template-full-width .site-content { display: block; max-width: none; padding: 0; }

/* Porta Pro front-end login form. */
form#porta-login-front-form {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	box-shadow: var(--wp--preset--shadow--soft);
	margin-inline: auto;
	max-width: 420px;
	padding: var(--wp--preset--spacing--40);
}
#porta-login-front-form p { margin: 0 0 1rem; }
#porta-login-front-form label { display: block; margin-bottom: 0.35rem; }
#porta-login-front-form input[type="text"],
#porta-login-front-form input[type="password"],
#porta-login-front-form input[type="email"] { width: 100%; }
#porta-login-front-form .login-remember label { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 400; }
#porta-login-front-form input[type="submit"] { width: 100%; padding-block: 0.9em; }
p.porta-login-already {
	background: var(--wp--preset--color--base-2);
	border-inline-start: 4px solid var(--wp--preset--color--primary);
	border-radius: 4px;
	margin-inline: auto;
	max-width: 420px;
	padding: 1rem 1.25rem;
}
