/*
Theme Name: SmartPDF
Theme URI: https://www.example.com/
Author: SmartPDF
Description: Clean, fast theme for the SmartPDF online PDF editor site. Built for Elementor (all pages are editable with Elementor), with styles for Rank Math breadcrumbs and Contact Form 7. Use it together with the SmartPDF Editor plugin.
Version: 1.1.0
Requires at least: 6.5
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: smartpdf-theme
Tags: one-column, custom-logo, custom-menu, accessibility-ready, translation-ready
*/

:root {
	/* Soft PDF Editor: logo red and ink. */
	--sp-brand: #dc2626;
	--sp-brand-hover: #b91c1c;
	--sp-brand-soft: #fef2f2;
	--sp-brand-tint: #fee2e2;
	--sp-logo-red: #f24244;
	--sp-ink: #1f2130;
	--sp-text: #454956;
	--sp-text-soft: #575b67;
	--sp-muted: #6b6f7b;
	--sp-canvas: #fafafb;
	--sp-surface: #ffffff;
	--sp-line: #ece9ea;
	--sp-danger: #b91c1c;
	--sp-success: #15803d;
	--sp-ring: rgb(220 38 38 / .18);
	--sp-shadow: 0 1px 2px rgb(31 33 48 / .04), 0 8px 24px rgb(31 33 48 / .06);
	--sp-shadow-lift: 0 2px 4px rgb(31 33 48 / .05), 0 18px 40px rgb(31 33 48 / .10);
	--sp-radius: 10px;
	--sp-radius-card: 16px;
	--sp-font: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

/* ---- Base ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 80px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	font-family: var(--sp-font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--sp-text);
	background: var(--sp-canvas);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body.menu-open { overflow: hidden; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--sp-brand); text-underline-offset: 2px; }
a:hover { color: var(--sp-brand-hover); }
h1, h2, h3, h4, h5, h6 { color: var(--sp-ink); line-height: 1.2; margin: 0 0 .5em; font-weight: 800; letter-spacing: -0.02em; text-wrap: balance; }
::selection { background: var(--sp-brand-tint); color: var(--sp-ink); }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--sp-brand); outline-offset: 2px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	left: 8px; top: 8px; z-index: 100001; padding: 8px 12px;
	background: var(--sp-brand); color: #fff; border-radius: var(--sp-radius); text-decoration: none;
}

.container { width: 100%; max-width: 1152px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px) { .container { padding: 0 24px; } }
.container--narrow { max-width: 868px; }

/* ---- Buttons ------------------------------------------------------------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 18px; border-radius: var(--sp-radius);
	font: 600 14px/1 var(--sp-font); text-decoration: none; cursor: pointer;
	border: 1px solid transparent; transition: background-color .15s, color .15s, border-color .15s;
}
.btn-primary { background: var(--sp-brand); color: #fff; box-shadow: 0 1px 2px rgb(185 28 28 / .25), 0 6px 16px -6px rgb(220 38 38 / .55); }
.btn-primary:hover, .btn-primary:focus { background: var(--sp-brand-hover); color: #fff; }
.btn-block { display: flex; width: 100%; }

/* ---- Header -------------------------------------------------------------- */
.site-header {
	position: sticky; top: 0; z-index: 990;
	background: rgba(255, 255, 255, .9);
	-webkit-backdrop-filter: saturate(180%) blur(10px); backdrop-filter: saturate(180%) blur(10px);
	border-bottom: 1px solid var(--sp-line);
	transition: box-shadow .2s, border-color .2s;
}
.site-header.is-scrolled { box-shadow: 0 6px 24px rgb(31 33 48 / .07); border-bottom-color: transparent; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 64px; }
.site-logo { display: inline-flex; align-items: center; gap: 8px; color: var(--sp-ink); text-decoration: none; font-weight: 600; letter-spacing: -0.01em; }
.site-logo:hover { color: var(--sp-ink); }
.site-logo__text { font-size: 18px; }
.brand-accent { color: var(--sp-brand); }
.site-logo img, .custom-logo-link img { display: block; width: auto; max-width: none; }
.site-logo--header img, .site-header .custom-logo-link img { height: 36px; }
.site-logo--footer img, .site-footer .custom-logo-link img { height: 36px; }
@media (max-width: 899px) { .site-logo--header img, .site-header .custom-logo-link img { height: 32px; } }

.site-nav { display: none; align-items: center; gap: 12px; }
.site-nav__menu, .mobile-nav__menu, .footer-menu { list-style: none; margin: 0; padding: 0; }
.site-nav__menu { display: flex; align-items: center; gap: 2px; }
.site-nav__menu > li { position: relative; }
.site-nav__menu a {
	display: block; padding: 8px 12px; border-radius: var(--sp-radius);
	font-size: 14.5px; font-weight: 500; color: var(--sp-text-soft); text-decoration: none; transition: background-color .15s, color .15s;
}
.site-nav__menu a:hover { background: var(--sp-brand-soft); color: var(--sp-brand-hover); }
.site-nav__menu .current-menu-item > a { color: var(--sp-ink); font-weight: 600; box-shadow: inset 0 -2px 0 var(--sp-brand); border-radius: var(--sp-radius) var(--sp-radius) 0 0; }
.site-nav__menu .current-menu-item > a[href*="#"]:not(:hover) { color: var(--sp-text-soft); font-weight: 500; box-shadow: none; }
.site-nav__menu .sub-menu {
	display: none; position: absolute; top: 100%; left: 0; min-width: 220px; list-style: none; margin: 0; padding: 6px;
	background: #fff; border: 1px solid var(--sp-line); border-radius: var(--sp-radius-card); box-shadow: 0 10px 30px rgb(15 23 42 / .14);
}
.site-nav__menu li:hover > .sub-menu, .site-nav__menu li:focus-within > .sub-menu { display: block; }
.site-nav__cta { min-height: 42px; padding: 0 18px; margin-left: 8px; }

.menu-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
	border: 0; border-radius: var(--sp-radius); background: transparent; color: var(--sp-ink); cursor: pointer;
}
.menu-toggle:hover { background: var(--sp-canvas); }
.menu-toggle__close, .menu-toggle[aria-expanded="true"] .menu-toggle__open { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle__close { display: block; }
.mobile-nav { border-top: 1px solid var(--sp-line); background: #fff; padding: 8px 0 16px; max-height: calc(100vh - 64px); overflow-y: auto; }
.mobile-nav__menu a { display: block; padding: 12px; border-radius: var(--sp-radius); color: var(--sp-ink); font-weight: 500; text-decoration: none; }
.mobile-nav__menu a:hover { background: var(--sp-brand-soft); color: var(--sp-brand-hover); }
.mobile-nav__menu .sub-menu { list-style: none; padding-left: 16px; }
.mobile-nav .btn { margin-top: 8px; }
@media (min-width: 900px) {
	.site-nav { display: flex; }
	.menu-toggle, .mobile-nav { display: none !important; }
}

/* ---- Main / pages -------------------------------------------------------- */
.site-main { display: block; min-height: 50vh; }
.smartpdf-elementor-page .site-main { background: var(--sp-canvas); }
.page-article { padding-top: 48px; padding-bottom: 72px; }
.page-title { font-size: clamp(30px, 4vw, 40px); }
.entry-meta { color: var(--sp-muted); font-size: 14px; }
.eyebrow { color: var(--sp-brand); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; }
.entry-thumb img { border-radius: var(--sp-radius-card); margin: 8px 0 24px; }
.nav-links { display: flex; justify-content: space-between; gap: 16px; margin: 32px 0; }

/* ---- Article text (theme pages and Elementor "Text Editor" widgets with class smartpdf-prose) */
.smartpdf-prose { color: var(--sp-text); font-size: 16px; line-height: 1.75; }
.smartpdf-prose h2 { font-size: 24px; margin: 1.8em 0 .6em; }
.smartpdf-prose h3 { font-size: 19px; margin: 1.5em 0 .5em; }
.smartpdf-prose h4 { font-size: 16px; margin: 1.4em 0 .4em; }
.smartpdf-prose > :first-child, .smartpdf-prose .elementor-widget-container > :first-child { margin-top: 0; }
.smartpdf-prose ul, .smartpdf-prose ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.smartpdf-prose li { margin: .35em 0; }
.smartpdf-prose li::marker { color: var(--sp-brand); }
.smartpdf-prose a { color: var(--sp-brand); text-decoration: underline; }
.smartpdf-prose strong { color: var(--sp-ink); }
.smartpdf-prose blockquote { margin: 1.4em 0; padding: 12px 20px; border-left: 4px solid var(--sp-brand); background: var(--sp-brand-soft); border-radius: 0 var(--sp-radius) var(--sp-radius) 0; }
.smartpdf-prose code { background: var(--sp-canvas); border: 1px solid var(--sp-line); padding: 1px 6px; border-radius: 4px; font-size: .9em; }
.smartpdf-prose table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: 15px; display: block; overflow-x: auto; }
.smartpdf-prose th, .smartpdf-prose td { border: 1px solid var(--sp-line); padding: 8px 12px; text-align: left; vertical-align: top; }
.smartpdf-prose th { background: var(--sp-canvas); color: var(--sp-ink); font-weight: 600; }

/* ---- Elementor page design (classes set on the Elementor sections) ------ */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-smartpdf_editor .smartpdf-editor-host { width: 100%; }
.sp-accent { color: var(--sp-brand); }
.sp-eyebrow { display: inline-block; color: var(--sp-brand); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sp-pill {
	display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 10px; border-radius: 999px;
	background: #fff; border: 1px solid var(--sp-brand-tint); color: var(--sp-ink); font-size: 13px; font-weight: 500;
	box-shadow: 0 1px 2px rgb(31 33 48 / .04);
}
.sp-pill::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--sp-brand); box-shadow: 0 0 0 4px var(--sp-brand-tint); }

/* Hero: soft dotted texture behind the gradient. */
.sp-hero { position: relative; overflow: hidden; }
.sp-hero::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(rgb(220 38 38 / .10) 1px, transparent 1px); background-size: 22px 22px;
	-webkit-mask-image: radial-gradient(ellipse 70% 70% at 80% 30%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse 70% 70% at 80% 30%, #000 20%, transparent 75%);
}
.sp-hero > .elementor-container { position: relative; }
/* Shadow on the upload card itself (a filter on a parent would trap the full-screen editor inside it). */
.sp-hero [data-testid="upload-zone"], .sp-hero .smartpdf-placeholder { box-shadow: 0 24px 48px -12px rgb(220 38 38 / .16), 0 2px 6px rgb(31 33 48 / .04); }
.sp-hero .elementor-icon-list-text { font-weight: 500; }
.sp-link-button .elementor-button { box-shadow: none !important; }
.sp-link-button .elementor-button:hover .elementor-button-text { text-decoration: underline; text-underline-offset: 4px; }

/* Buttons from the layouts. */
.sp-button:not(.sp-link-button) .elementor-button { box-shadow: 0 1px 2px rgb(185 28 28 / .25), 0 8px 20px -8px rgb(220 38 38 / .6); transition: transform .15s, box-shadow .15s, background-color .15s; }
.sp-button:not(.sp-link-button) .elementor-button:hover { transform: translateY(-1px); }

/* Benefit strip and feature cards. */
.sp-benefits .elementor-icon-box-title { margin-bottom: 4px !important; }
.sp-card { transition: transform .2s, box-shadow .2s, border-color .2s; }
.sp-card:hover { transform: translateY(-4px); box-shadow: var(--sp-shadow-lift); border-color: var(--sp-brand-tint) !important; }
.sp-feature .elementor-icon { border-radius: 14px !important; }
.sp-feature .elementor-icon-box-title { margin-bottom: 6px !important; }
@media (prefers-reduced-motion: reduce) { .sp-card, .sp-card:hover, .sp-button .elementor-button:hover { transition: none; transform: none; } }

/* How it works: a dashed line joins the three steps on wide screens. */
@media (min-width: 768px) {
	.sp-steps .elementor-column { position: relative; }
	.sp-steps .elementor-column:not(:last-child)::after {
		content: ''; position: absolute; top: 56px; left: calc(50% + 46px); right: calc(-50% + 46px);
		border-top: 2px dashed var(--sp-brand-tint);
	}
}
.sp-steps .elementor-icon { box-shadow: 0 0 0 8px var(--sp-brand-soft); }

/* FAQ as separate rounded cards. */
.smartpdf-faq .elementor-accordion { display: grid; gap: 12px; }
.smartpdf-faq .elementor-accordion-item { background: #fff; border: 1px solid var(--sp-line) !important; border-radius: 14px; overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.smartpdf-faq .elementor-accordion-item + .elementor-accordion-item { border-top: 1px solid var(--sp-line) !important; }
.smartpdf-faq .elementor-accordion-item:hover { border-color: var(--sp-brand-tint) !important; }
.smartpdf-faq .elementor-accordion-item:has(.elementor-active) { border-color: var(--sp-brand-tint) !important; box-shadow: var(--sp-shadow); }
.smartpdf-faq .elementor-tab-title { padding: 18px 22px !important; border: 0 !important; }
.smartpdf-faq .elementor-tab-content { padding: 0 22px 20px !important; border-top: 0 !important; line-height: 1.75; }
.smartpdf-faq .elementor-tab-content p:last-child { margin-bottom: 0; }

/* Dark call-to-action band with a red glow. */
.sp-cta > .elementor-element-populated, .sp-cta > .elementor-widget-wrap {
	background-image: radial-gradient(40rem 18rem at 85% -20%, rgb(242 66 68 / .45), transparent 60%), radial-gradient(30rem 16rem at 0% 120%, rgb(242 66 68 / .22), transparent 60%) !important;
}

/* Inner page header band. */
.sp-band .rank-math-breadcrumb { margin-bottom: 18px; }
.sp-band .elementor-widget-heading .elementor-heading-title { text-wrap: balance; }

/* Call-to-action box inside articles and guides. */
.sp-cta-box {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px;
	margin: 40px 0 0; padding: 26px 28px; border-radius: var(--sp-radius-card);
	background: radial-gradient(28rem 12rem at 100% 0%, rgb(242 66 68 / .35), transparent 60%), var(--sp-ink); color: #d6d7dd;
}
.sp-cta-box p { margin: 0; }
.sp-cta-box__title { color: #fff; font-weight: 800; font-size: 19px; letter-spacing: -0.01em; }
.smartpdf-prose a.sp-btn, .sp-btn {
	display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: var(--sp-radius);
	background: var(--sp-brand); color: #fff; font-weight: 600; text-decoration: none; white-space: nowrap;
	box-shadow: 0 8px 20px -8px rgb(220 38 38 / .7); transition: background-color .15s;
}
.smartpdf-prose a.sp-btn:hover, .sp-btn:hover { background: var(--sp-brand-hover); color: #fff; }

/* ---- Blog ---------------------------------------------------------------- */
.pill {
	display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--sp-brand-soft);
	color: var(--sp-brand); font-size: 12px; font-weight: 600; text-decoration: none; line-height: 1.6;
}
.pill:hover { background: var(--sp-brand-tint); color: var(--sp-brand-hover); }
.blog-hero { background: linear-gradient(160deg, #fff 0%, var(--sp-brand-soft) 100%); border-bottom: 1px solid var(--sp-line); padding: 48px 0 32px; }
.blog-hero .page-title { margin-bottom: 8px; }
.blog-hero__intro { max-width: 640px; font-size: 18px; color: var(--sp-text); margin: 0; }
.category-nav ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 24px 0 0; padding: 0; }
.category-nav a {
	display: inline-block; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--sp-line); background: #fff;
	font-size: 14px; font-weight: 500; color: var(--sp-text-soft); text-decoration: none; transition: border-color .15s, color .15s;
}
.category-nav a:hover { border-color: var(--sp-brand); color: var(--sp-brand); }
.category-nav a[aria-current="page"] { background: var(--sp-brand); border-color: var(--sp-brand); color: #fff; }
.blog-list { padding-top: 40px; padding-bottom: 72px; }
.post-grid { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .post-grid { grid-template-columns: repeat(3, 1fr); } }
.post-card {
	display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--sp-line);
	border-radius: var(--sp-radius-card); box-shadow: var(--sp-shadow);
	transition: box-shadow .2s, transform .2s;
}
.post-card:hover { box-shadow: var(--sp-shadow-lift); transform: translateY(-3px); border-color: var(--sp-brand-tint); }
@media (prefers-reduced-motion: reduce) { .post-card, .post-card:hover { transition: none; transform: none; } }
.post-card__media { display: block; aspect-ratio: 16 / 9; background: var(--sp-brand-soft); overflow: hidden; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-card__placeholder {
	display: grid; place-items: center; width: 100%; height: 100%; color: var(--sp-brand);
	background: radial-gradient(circle at 30% 20%, var(--sp-brand-tint) 0, transparent 55%), linear-gradient(135deg, var(--sp-brand-soft), #ffe4e6);
}
.post-card__placeholder--1 { color: #7c3aed; background: radial-gradient(circle at 70% 25%, #ede9fe 0, transparent 55%), linear-gradient(135deg, #f5f3ff, #e0e7ff); }
.post-card__placeholder--2 { color: #0f766e; background: radial-gradient(circle at 30% 70%, #ccfbf1 0, transparent 55%), linear-gradient(135deg, #f0fdfa, #e0f2fe); }
.post-card__placeholder--3 { color: #c2410c; background: radial-gradient(circle at 70% 70%, #ffedd5 0, transparent 55%), linear-gradient(135deg, #fff7ed, #fef3c7); }
.post-card__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 20px 22px 18px; }
.post-card__body .pill { align-self: flex-start; }
.post-card__title { font-size: 19px; line-height: 1.35; margin: 0; }
.post-card__title a { color: var(--sp-ink); text-decoration: none; }
.post-card__title a:hover { color: var(--sp-brand); }
.post-card__excerpt { margin: 0; font-size: 15px; color: var(--sp-muted); line-height: 1.6; }
.post-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 8px; }
.post-card__foot .entry-meta { margin: 0; font-size: 13px; }
.post-card__more { font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.pagination { margin-top: 40px; }
.pagination .nav-links { justify-content: center; gap: 6px; flex-wrap: wrap; }
.pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px;
	border: 1px solid var(--sp-line); border-radius: var(--sp-radius); background: #fff; color: var(--sp-ink); text-decoration: none; font-size: 14px;
}
.pagination .page-numbers.current { background: var(--sp-brand); border-color: var(--sp-brand); color: #fff; }
.pagination a.page-numbers:hover { border-color: var(--sp-brand); color: var(--sp-brand); }
.empty-state { text-align: center; padding: 48px 0; }
.empty-state .search-form { max-width: 420px; margin: 0 auto; }

.container--article { max-width: 768px; }
.article__header { background: linear-gradient(160deg, #fff 0%, var(--sp-brand-soft) 100%); border-bottom: 1px solid var(--sp-line); padding: 40px 0 28px; margin-bottom: 40px; }
.article__title { font-size: clamp(30px, 4.4vw, 44px); line-height: 1.15; margin: 14px 0 12px; }
.article__lead { font-size: 19px; line-height: 1.6; color: var(--sp-text); margin: 0 0 14px; }
.article__header .entry-meta { margin: 0; }
.article__thumb img { border-radius: var(--sp-radius-card); margin-bottom: 32px; width: 100%; }
.article-cta {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
	margin: 40px 0 24px; padding: 22px 24px; border-radius: var(--sp-radius-card); background: var(--sp-ink); color: #d6d7dd; border: 0;
}
.article-cta p { margin: 0; }
.article-cta__title { font-weight: 800; color: #fff; font-size: 18px; }
.article-share { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 20px 0 48px; border-top: 1px solid var(--sp-line); font-size: 14px; font-weight: 600; color: var(--sp-ink); }
.article-share .social__list { margin: 0; }
.related { background: #fff; border-top: 1px solid var(--sp-line); padding: 56px 0 72px; }
.related__title { font-size: 24px; margin-bottom: 24px; }

/* ---- Rank Math breadcrumbs ---------------------------------------------- */
.rank-math-breadcrumb { font-size: 13px; color: var(--sp-muted); margin-bottom: 16px; }
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb a { color: var(--sp-muted); text-decoration: none; }
.rank-math-breadcrumb a:hover { color: var(--sp-brand); text-decoration: underline; }
.rank-math-breadcrumb .separator { margin: 0 6px; color: #9ca3af; }
.rank-math-breadcrumb .last { color: var(--sp-ink); }

/* ---- Forms (Contact Form 7 and WordPress forms) ------------------------- */
.smartpdf-contact-form, .wpcf7 { margin: 24px 0; }
.wpcf7-form {
	background: #fff; border: 1px solid var(--sp-line); border-radius: var(--sp-radius-card);
	padding: 24px; box-shadow: var(--sp-shadow);
}
@media (min-width: 640px) { .wpcf7-form { padding: 32px; } }
.wpcf7-form p { margin: 0 0 18px; }
.wpcf7-form label { display: block; font-size: 14px; font-weight: 600; color: var(--sp-ink); }
.wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="url"], .wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"], .wpcf7-form textarea, .wpcf7-form select,
.search-form .search-field, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; min-height: 44px; padding: 10px 12px; font: 400 16px/1.5 var(--sp-font); color: var(--sp-ink);
	background: #fff; border: 1px solid #dcd8d9; border-radius: var(--sp-radius); transition: border-color .15s, box-shadow .15s;
}
.wpcf7-form textarea { min-height: 160px; resize: vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus, .wpcf7-form select:focus, .search-form .search-field:focus, .comment-form textarea:focus {
	outline: none; border-color: var(--sp-brand); box-shadow: 0 0 0 4px var(--sp-ring);
}
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; color: var(--sp-text); line-height: 1.5; }
.wpcf7-acceptance input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--sp-brand); flex: none; }
.wpcf7-submit, .search-form .search-submit, .comment-form .submit {
	min-height: 46px; padding: 0 24px; border: 0; border-radius: var(--sp-radius);
	background: var(--sp-brand); color: #fff; font: 600 15px/1 var(--sp-font); cursor: pointer; transition: background-color .15s;
}
.wpcf7-submit:hover, .search-form .search-submit:hover, .comment-form .submit:hover { background: var(--sp-brand-hover); }
.wpcf7-submit:disabled { opacity: .5; cursor: not-allowed; }
.wpcf7-spinner { vertical-align: middle; }
.wpcf7-not-valid-tip { color: var(--sp-danger); font-size: 13px; font-weight: 500; margin-top: 4px; }
.wpcf7-form .wpcf7-not-valid { border-color: var(--sp-danger) !important; }
.wpcf7 form .wpcf7-response-output { margin: 8px 0 0; padding: 12px 14px; border-radius: var(--sp-radius); font-size: 14px; border-width: 1px; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #86efac; background: #f0fdf4; color: var(--sp-success); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output { border-color: #fcd34d; background: #fffbeb; color: #92400e; }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-color: #fca5a5; background: #fef2f2; color: #991b1b; }
.smartpdf-contact-fallback { font-size: 18px; }
.search-form { display: flex; gap: 8px; }

/* ---- Footer -------------------------------------------------------------- */
.site-footer { background: var(--sp-canvas); border-top: 1px solid var(--sp-line); margin-top: 0; position: relative; }
.site-footer::before { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 3px; background: linear-gradient(90deg, var(--sp-logo-red), var(--sp-brand) 40%, var(--sp-ink)); }
.site-footer__grid { display: grid; gap: 40px; padding-top: 48px; padding-bottom: 48px; }
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: repeat(3, 1fr); } .site-footer__about { grid-column: 1 / -1; } }
@media (min-width: 1000px) { .site-footer__grid { grid-template-columns: 1.4fr repeat(3, 1fr); } .site-footer__about { grid-column: auto; } }
.site-footer__about > p { margin: 12px 0 0; max-width: 320px; font-size: 14px; color: var(--sp-muted); }
.footer-title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--sp-ink); margin: 0; letter-spacing: 0; }
.footer-menu { margin-top: 12px; }
.footer-menu li { margin: 0 0 8px; }
.footer-menu a { font-size: 14px; color: var(--sp-muted); text-decoration: none; }
.footer-menu a:hover { color: var(--sp-brand); }
.social { display: flex; flex-wrap: wrap; gap: 16px 40px; margin-top: 20px; }
.social__list { display: flex; gap: 8px; list-style: none; margin: 12px 0 0; padding: 0; }
.social__btn {
	display: grid; place-items: center; width: 36px; height: 36px; border-radius: 999px;
	border: 1px solid var(--sp-line); background: #fff; color: var(--sp-text-soft); transition: border-color .15s, color .15s, background-color .15s;
}
.social__btn:hover { border-color: var(--sp-brand); color: #fff; background: var(--sp-brand); }
.site-footer__bottom { border-top: 1px solid var(--sp-line); }
.site-footer__bottom-inner { display: flex; flex-direction: column; gap: 4px; padding-top: 20px; padding-bottom: 20px; font-size: 12px; color: var(--sp-muted); }
.site-footer__bottom-inner p { margin: 0; }
@media (min-width: 640px) { .site-footer__bottom-inner { flex-direction: row; justify-content: space-between; align-items: center; } }

/* ---- WordPress core classes --------------------------------------------- */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text, figcaption { font-size: 14px; color: var(--sp-muted); }

/* Same dotted texture on blog and article headers. */
.blog-hero, .article__header { position: relative; overflow: hidden; }
.blog-hero::before, .article__header::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(rgb(220 38 38 / .09) 1px, transparent 1px); background-size: 22px 22px;
	-webkit-mask-image: radial-gradient(ellipse 60% 90% at 85% 20%, #000 15%, transparent 70%); mask-image: radial-gradient(ellipse 60% 90% at 85% 20%, #000 15%, transparent 70%);
}
.blog-hero > .container, .article__header > .container { position: relative; }
