/*
Theme Name: Altima Web
Theme URI: https://altimaweb.com/
Author: Altima Web Services
Author URI: https://altimaweb.com/
Description: A fast, accessible, conversion-focused dark marketing theme for Altima Web Services, built around the Altima Web dot-ring mark and brand red. Plain-English positioning, outcome-led messaging, SEO-ready markup, on-brand vector artwork, and zero external font or script requests. Ships with editable homepage sections, image slots for your own photography, service cards, proof and FAQ blocks, and full block-editor colour and type controls.
Version: 2.1.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: altimaweb
Tags: business, portfolio, blog, one-column, two-columns, dark, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks, full-width-template
*/

/* ==========================================================================
   1. DESIGN TOKENS
   Single source of truth. The palette is built from the colours measured out
   of the original Altima Web logo: red #E24343, a wine #8B3547, and the
   neutral darks #1B1B1B / #242424 the logo was drawn on.

   Contrast notes (WCAG 2.1):
     body text   #B9B9B9 on #131313  =  9.5:1   AAA
     dim text    #8A8A8A on #131313  =  5.4:1   AA
     red text    #FF6B6B on #1A1A1A  =  6.3:1   AA
     button      #FFFFFF on #D63A3A  =  4.6:1   AA
   The button red is deliberately 6% deeper than the logo red: white on the
   exact #E24343 measures only 4.1:1 and would fail AA at button text size.
   The logo red itself is used for the mark, large numerals and display
   accents, where the 3:1 large-text threshold applies instead.
   ========================================================================== */

:root {
	/* Surfaces — neutral, matching the logo's own grey, never blue-tinted */
	--aw-bg:          #131313;
	--aw-bg-alt:      #1a1a1a;
	--aw-bg-deep:     #0d0d0d;
	--aw-surface:     #1f1f1f;
	--aw-surface-2:   #262626;
	--aw-line:        #2e2e2e;
	--aw-line-2:      #3a3a3a;

	/* Text */
	--aw-heading:     #ffffff;
	--aw-text:        #b9b9b9;
	--aw-text-dim:    #8a8a8a;

	/* Brand red system */
	--aw-red:         #e24343; /* exact logo red — mark, numerals, accents   */
	--aw-red-btn:     #d63a3a; /* button fill, white text passes AA          */
	--aw-red-hover:   #c73030; /* pressed / hover                            */
	--aw-red-text:    #ff6b6b; /* links and eyebrows on dark                 */
	--aw-red-deep:    #8b3547; /* wine tone from the logo, gradients         */
	--aw-red-soft:    rgba(226, 67, 67, 0.14);
	--aw-red-line:    rgba(226, 67, 67, 0.32);

	/* Supporting accents — used sparingly, never for a primary action */
	--aw-mint:        #3ddc97; /* result badges, tick marks                  */
	--aw-amber:       #ffb84d; /* star ratings                               */

	/* Alpha helpers */
	--aw-white-06:    rgba(255, 255, 255, 0.06);
	--aw-white-10:    rgba(255, 255, 255, 0.1);
	--aw-white-16:    rgba(255, 255, 255, 0.16);
	--aw-white-70:    rgba(255, 255, 255, 0.7);
	--aw-black-40:    rgba(0, 0, 0, 0.4);

	/* Typography — system stack: zero network requests, instant text render */
	--aw-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--aw-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--aw-font-display: var(--aw-font-sans);

	/* Fluid type scale — every size adapts between 360px and 1240px */
	--aw-fs-xs:   0.8125rem;                              /* 13px */
	--aw-fs-sm:   0.9375rem;                              /* 15px */
	--aw-fs-base: 1.0625rem;                              /* 17px */
	--aw-fs-lg:   clamp(1.125rem, 0.35vw + 1.04rem, 1.25rem);
	--aw-fs-h4:   clamp(1.1875rem, 0.4vw + 1.09rem, 1.375rem);
	--aw-fs-h3:   clamp(1.375rem, 0.9vw + 1.15rem, 1.75rem);
	--aw-fs-h2:   clamp(1.75rem, 2.2vw + 1.25rem, 2.75rem);
	--aw-fs-h1:   clamp(2.125rem, 4.2vw + 1.1rem, 4rem);
	--aw-fs-stat: clamp(2rem, 3vw + 1.2rem, 3.25rem);

	--aw-lh-tight: 1.12;
	--aw-lh-snug:  1.28;
	--aw-lh-body:  1.7;
	--aw-tracking-tight: -0.022em;
	--aw-tracking-wide:  0.08em;

	/* Spacing */
	--aw-space-1: 0.25rem;
	--aw-space-2: 0.5rem;
	--aw-space-3: 0.75rem;
	--aw-space-4: 1rem;
	--aw-space-5: 1.5rem;
	--aw-space-6: 2rem;
	--aw-space-7: 3rem;
	--aw-space-8: 4rem;
	--aw-section-y: clamp(3.5rem, 7vw, 7rem);
	--aw-container: 1160px;
	--aw-container-narrow: 760px;
	--aw-gutter: clamp(1.25rem, 4vw, 2.5rem);

	/* Radii */
	--aw-radius-sm: 8px;
	--aw-radius:    14px;
	--aw-radius-lg: 22px;
	--aw-radius-pill: 999px;

	/* Elevation — on dark, lift comes from light borders, not heavy shadows */
	--aw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
	--aw-shadow:    0 6px 20px -6px rgba(0, 0, 0, 0.7), 0 2px 6px -2px rgba(0, 0, 0, 0.5);
	--aw-shadow-lg: 0 28px 56px -18px rgba(0, 0, 0, 0.85), 0 10px 20px -10px rgba(0, 0, 0, 0.6);
	--aw-glow:      0 0 0 1px var(--aw-red-line), 0 18px 44px -18px rgba(226, 67, 67, 0.45);

	--aw-transition: 180ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 6rem; /* clears the sticky header on anchor jumps */
	color-scheme: dark;
}

body {
	margin: 0;
	background-color: var(--aw-bg);
	color: var(--aw-text);
	font-family: var(--aw-font-sans);
	font-size: var(--aw-fs-base);
	line-height: var(--aw-lh-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--aw-space-4);
	color: var(--aw-heading);
	font-family: var(--aw-font-display);
	font-weight: 700;
	line-height: var(--aw-lh-snug);
	letter-spacing: var(--aw-tracking-tight);
	text-wrap: balance;
}

h1 { font-size: var(--aw-fs-h1); line-height: var(--aw-lh-tight); }
h2 { font-size: var(--aw-fs-h2); }
h3 { font-size: var(--aw-fs-h3); }
h4 { font-size: var(--aw-fs-h4); }
h5, h6 { font-size: var(--aw-fs-base); }

p { margin: 0 0 var(--aw-space-4); }
p:last-child { margin-bottom: 0; }

a {
	color: var(--aw-red-text);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
	transition: color var(--aw-transition);
}
a:hover { color: var(--aw-heading); }

img, svg, video, canvas {
	max-width: 100%;
	height: auto;
	display: block;
}

ul, ol { margin: 0 0 var(--aw-space-4); padding-left: 1.25rem; }
li { margin-bottom: var(--aw-space-2); }

strong, b { color: var(--aw-heading); font-weight: 650; }
hr { border: 0; border-top: 1px solid var(--aw-line); margin: var(--aw-space-7) 0; }

::selection { background: var(--aw-red); color: #fff; }

blockquote {
	margin: var(--aw-space-6) 0;
	padding: var(--aw-space-5) var(--aw-space-6);
	background: var(--aw-surface);
	border-left: 4px solid var(--aw-red);
	border-radius: 0 var(--aw-radius) var(--aw-radius) 0;
	color: var(--aw-heading);
	font-size: var(--aw-fs-lg);
}
blockquote p:last-child { margin-bottom: 0; }

code, pre, kbd { font-family: var(--aw-font-mono); font-size: 0.9em; }
code {
	background: var(--aw-surface-2);
	padding: 0.15em 0.4em;
	border-radius: 5px;
	color: var(--aw-heading);
}
pre {
	background: var(--aw-bg-deep);
	border: 1px solid var(--aw-line);
	padding: var(--aw-space-5);
	border-radius: var(--aw-radius);
	overflow-x: auto;
	color: #e6e6e6;
}
pre code { background: none; color: inherit; padding: 0; }

table { width: 100%; border-collapse: collapse; margin-bottom: var(--aw-space-5); }
th, td { padding: var(--aw-space-3) var(--aw-space-4); border-bottom: 1px solid var(--aw-line); text-align: left; }
th { color: var(--aw-heading); font-weight: 650; }

/* Visible, consistent focus ring for keyboard users only */
:focus-visible {
	outline: 3px solid var(--aw-red);
	outline-offset: 2px;
	border-radius: 4px;
}
:focus:not(:focus-visible) { outline: none; }

/* ==========================================================================
   3. ACCESSIBILITY HELPERS
   ========================================================================== */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	white-space: nowrap;
	word-wrap: normal;
}
.screen-reader-text:focus {
	clip-path: none;
	height: auto;
	width: auto;
	left: var(--aw-space-5);
	top: var(--aw-space-5);
	z-index: 100000;
	display: block;
	padding: var(--aw-space-3) var(--aw-space-5);
	background: var(--aw-surface-2);
	color: var(--aw-heading);
	font-size: var(--aw-fs-sm);
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--aw-radius-sm);
	box-shadow: var(--aw-shadow-lg);
}

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { position: fixed; left: var(--aw-space-5); top: var(--aw-space-5); z-index: 100000;
	padding: var(--aw-space-3) var(--aw-space-5); background: var(--aw-surface-2);
	color: var(--aw-heading); font-weight: 600; border-radius: var(--aw-radius-sm);
	box-shadow: var(--aw-shadow-lg); text-decoration: none; }

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

/* ==========================================================================
   4. LAYOUT PRIMITIVES
   ========================================================================== */

.aw-container {
	width: 100%;
	max-width: var(--aw-container);
	margin-inline: auto;
	padding-inline: var(--aw-gutter);
}
.aw-container--narrow { max-width: var(--aw-container-narrow); }
.aw-container--wide { max-width: 1360px; }

.aw-section { padding-block: var(--aw-section-y); position: relative; }
.aw-section--tight { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.aw-section--alt { background: var(--aw-bg-alt); }
.aw-section--deep { background: var(--aw-bg-deep); }
.aw-section--line { border-top: 1px solid var(--aw-line); }

/* Backwards-compatible aliases for the v1 section classes. */
.aw-section--mist { background: var(--aw-bg-alt); }
.aw-section--ink { background: var(--aw-bg-deep); color: var(--aw-text); }
.aw-section--ink a { color: var(--aw-red-text); }
.aw-section--ink a:hover { color: var(--aw-heading); }

.aw-grid { display: grid; gap: var(--aw-space-5); }
.aw-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.aw-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); }
.aw-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }

.aw-stack > * + * { margin-top: var(--aw-space-4); }
.aw-center { text-align: center; }
.aw-center .aw-section-head { margin-inline: auto; }

/* ==========================================================================
   5. ON-BRAND VECTOR ARTWORK
   These are the generated SVGs in assets/img/. They give the dark theme depth
   and a recognisable identity without a single external request, and without
   pretending to be photography. Replace them with real photos any time via
   the Customizer image fields.
   ========================================================================== */

/* A large, faint dot-ring echoing the logo mark. */
.aw-art-ring::before {
	content: "";
	position: absolute;
	top: -18%;
	right: -14%;
	width: min(760px, 78vw);
	height: min(760px, 78vw);
	background: url(assets/img/decor-ring.svg) no-repeat center / contain;
	opacity: 0.5;
	pointer-events: none;
	z-index: 0;
}

/* A soft red light source, placed where it will not sit under text. */
.aw-art-glow::after {
	content: "";
	position: absolute;
	top: -30%;
	left: -12%;
	width: min(820px, 90vw);
	height: min(820px, 90vw);
	background: url(assets/img/decor-glow.svg) no-repeat center / contain;
	pointer-events: none;
	z-index: 0;
}

/* A fading halftone field, for texture behind the closing call to action. */
.aw-art-halftone::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url(assets/img/decor-halftone.svg) no-repeat bottom right / min(520px, 70vw);
	opacity: 0.35;
	pointer-events: none;
	z-index: 0;
}

/* Keep real content above the decoration. */
.aw-section > .aw-container { position: relative; z-index: 1; }

/* ==========================================================================
   6. TYPOGRAPHIC COMPONENTS
   ========================================================================== */

.aw-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--aw-space-2);
	margin: 0 0 var(--aw-space-4);
	color: var(--aw-red-text);
	font-size: var(--aw-fs-xs);
	font-weight: 700;
	letter-spacing: var(--aw-tracking-wide);
	text-transform: uppercase;
	line-height: 1.4;
}
.aw-eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	flex: none;
}

.aw-section-head { max-width: 62ch; margin-bottom: var(--aw-space-6); }
.aw-section-head p {
	font-size: var(--aw-fs-lg);
	color: var(--aw-text);
	margin-bottom: 0;
}

.aw-lede { font-size: var(--aw-fs-lg); color: var(--aw-text); }
.aw-muted { color: var(--aw-text-dim); font-size: var(--aw-fs-sm); }

/* ==========================================================================
   7. BUTTONS
   ========================================================================== */

.aw-btn,
.wp-block-button__link,
input[type="submit"],
button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--aw-space-2);
	padding: 0.85em 1.6em;
	border: 2px solid transparent;
	border-radius: var(--aw-radius-pill);
	background: var(--aw-red-btn);
	color: #fff;
	font-family: inherit;
	font-size: var(--aw-fs-sm);
	font-weight: 650;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--aw-transition), color var(--aw-transition),
		border-color var(--aw-transition), transform var(--aw-transition),
		box-shadow var(--aw-transition);
}
.aw-btn:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
	background: var(--aw-red-hover);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 10px 24px -8px rgba(226, 67, 67, 0.6);
}
.aw-btn:active,
.wp-block-button__link:active { transform: translateY(0); box-shadow: none; }

.aw-btn--secondary {
	background: transparent;
	border-color: var(--aw-line-2);
	color: var(--aw-heading);
}
.aw-btn--secondary:hover {
	background: var(--aw-heading);
	border-color: var(--aw-heading);
	color: var(--aw-bg);
	box-shadow: none;
}

.aw-btn--ghost {
	background: transparent;
	border-color: var(--aw-white-16);
	color: var(--aw-heading);
}
.aw-btn--ghost:hover { background: var(--aw-heading); border-color: var(--aw-heading); color: var(--aw-bg); box-shadow: none; }

.aw-btn--lg { padding: 1.05em 2em; font-size: var(--aw-fs-base); }
.aw-btn--block { width: 100%; }

.aw-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--aw-space-3);
	align-items: center;
}
.aw-center .aw-btn-row { justify-content: center; }

/* Inline text link with a subtle arrow */
.aw-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 650;
	text-decoration: none;
}
.aw-link-arrow::after {
	content: "\2192";
	transition: transform var(--aw-transition);
}
.aw-link-arrow:hover::after { transform: translateX(3px); }

/* ==========================================================================
   8. HEADER & NAVIGATION
   ========================================================================== */

.aw-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(19, 19, 19, 0.88);
	backdrop-filter: saturate(180%) blur(14px);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	border-bottom: 1px solid var(--aw-line);
}

.aw-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--aw-space-5);
	min-height: 76px;
}

.aw-brand { display: flex; align-items: center; gap: var(--aw-space-3); text-decoration: none; flex: none; }
.aw-brand:hover { text-decoration: none; }

/* The dot-ring mark, straight from the logo. Inherits the brand red. */
.aw-brand__mark {
	display: block;
	width: 42px;
	height: 42px;
	flex: none;
	color: var(--aw-red);
	transition: transform var(--aw-transition);
}
.aw-brand:hover .aw-brand__mark { transform: rotate(24deg); }
.aw-brand__mark svg { width: 100%; height: 100%; display: block; }

.aw-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.aw-brand__name {
	color: var(--aw-heading);
	font-size: 1.25rem;
	font-weight: 750;
	letter-spacing: -0.02em;
}
.aw-brand__tag {
	color: var(--aw-text-dim);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.aw-brand__logo { max-height: 46px; width: auto; }

.aw-nav { display: flex; align-items: center; gap: var(--aw-space-5); }

.aw-nav__menu {
	display: flex;
	align-items: center;
	gap: var(--aw-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}
.aw-nav__menu li { margin: 0; position: relative; }

.aw-nav__menu a {
	display: block;
	padding: 0.5rem 0.8rem;
	border-radius: var(--aw-radius-sm);
	color: var(--aw-text);
	font-size: var(--aw-fs-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--aw-transition), color var(--aw-transition);
}
.aw-nav__menu a:hover { background: var(--aw-white-06); color: var(--aw-heading); }

.aw-nav__menu .current-menu-item > a,
.aw-nav__menu .current_page_item > a,
.aw-nav__menu .current-menu-ancestor > a {
	color: var(--aw-red-text);
	background: var(--aw-red-soft);
}

/* Dropdowns */
.aw-nav__menu .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 230px;
	margin: 0;
	padding: var(--aw-space-2);
	list-style: none;
	background: var(--aw-surface);
	border: 1px solid var(--aw-line-2);
	border-radius: var(--aw-radius);
	box-shadow: var(--aw-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--aw-transition), transform var(--aw-transition), visibility var(--aw-transition);
}
.aw-nav__menu li:hover > .sub-menu,
.aw-nav__menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.aw-nav__menu .sub-menu a { padding: 0.5rem 0.75rem; font-weight: 500; }
.aw-nav__menu .sub-menu .sub-menu { top: -0.5rem; left: 100%; }

.aw-header__cta { flex: none; }

/* Mobile toggle — a real button, not a link */
.aw-nav-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--aw-line-2);
	border-radius: var(--aw-radius-sm);
	color: var(--aw-heading);
	cursor: pointer;
}
.aw-nav-toggle:hover { background: var(--aw-surface); }
.aw-nav-toggle__bars { position: relative; width: 18px; height: 2px; background: currentColor; border-radius: 2px; }
.aw-nav-toggle__bars::before,
.aw-nav-toggle__bars::after {
	content: "";
	position: absolute;
	left: 0;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform var(--aw-transition);
}
.aw-nav-toggle__bars::before { top: -6px; }
.aw-nav-toggle__bars::after { top: 6px; }
.aw-nav-toggle[aria-expanded="true"] .aw-nav-toggle__bars { background: transparent; }
.aw-nav-toggle[aria-expanded="true"] .aw-nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.aw-nav-toggle[aria-expanded="true"] .aw-nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 960px) {
	.aw-nav-toggle { display: inline-flex; }

	.aw-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		max-height: calc(100vh - 76px);
		overflow-y: auto;
		padding: var(--aw-space-4) var(--aw-gutter) var(--aw-space-6);
		background: var(--aw-bg-alt);
		border-bottom: 1px solid var(--aw-line);
		box-shadow: var(--aw-shadow-lg);
	}
	.aw-nav.is-open { display: flex; }

	.aw-nav__menu { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
	.aw-nav__menu a { padding: 0.85rem 0.5rem; font-size: var(--aw-fs-base); border-radius: 0; border-bottom: 1px solid var(--aw-line); }
	.aw-nav__menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		padding: 0 0 0 var(--aw-space-4);
		min-width: 0;
	}
	.aw-nav__menu .sub-menu a { border-bottom: 1px solid var(--aw-line); }

	.aw-header__cta { margin-top: var(--aw-space-5); }
	.aw-header__cta .aw-btn { width: 100%; }
}

/* ==========================================================================
   9. HERO
   ========================================================================== */

.aw-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(3rem, 7vw, 6.5rem);
	background: var(--aw-bg);
}

/* When the owner uploads a hero photograph, it sits behind a scrim so the
   headline always keeps its contrast. This replaces the old site's raw
   background image, which had no overlay and made the text unreadable. */
.aw-hero--image { background-color: var(--aw-bg-deep); }
.aw-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	z-index: 0;
}
.aw-hero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Two stops: a strong left-to-right wash behind the headline, plus a
	   flat floor so nothing gets lost at the bottom edge. */
	background:
		linear-gradient(100deg, rgba(13, 13, 13, 0.96) 0%, rgba(13, 13, 13, 0.82) 45%, rgba(13, 13, 13, 0.55) 100%),
		linear-gradient(180deg, rgba(13, 13, 13, 0.35) 0%, rgba(13, 13, 13, 0.75) 100%);
}
@media (max-width: 899px) {
	/* On phones the text covers the whole image, so the scrim goes flat. */
	.aw-hero__bg::after { background: rgba(13, 13, 13, 0.9); }
}

.aw-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	grid-template-columns: 1fr;
}
@media (min-width: 900px) {
	.aw-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
	.aw-hero--no-media .aw-hero__grid { grid-template-columns: minmax(0, 1fr); max-width: 62ch; }
}

.aw-hero__title { margin-bottom: var(--aw-space-5); }
.aw-hero__title em { font-style: normal; color: var(--aw-red); }

.aw-hero__lede { font-size: var(--aw-fs-lg); max-width: 54ch; margin-bottom: var(--aw-space-6); }

.aw-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: var(--aw-space-4) var(--aw-space-6);
	margin-top: var(--aw-space-6);
	padding-top: var(--aw-space-5);
	border-top: 1px solid var(--aw-line);
}
.aw-hero__trust-item { display: flex; align-items: center; gap: var(--aw-space-2); font-size: var(--aw-fs-sm); font-weight: 600; color: var(--aw-heading); }
.aw-hero__trust-item svg { flex: none; color: var(--aw-mint); }

/* Floating "result" card used beside the hero copy */
.aw-hero__media { position: relative; }
.aw-hero-card {
	background: var(--aw-surface);
	border: 1px solid var(--aw-line-2);
	border-radius: var(--aw-radius-lg);
	box-shadow: var(--aw-shadow-lg);
	padding: var(--aw-space-5);
}
.aw-hero-card__row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--aw-space-4); padding-block: var(--aw-space-3); border-bottom: 1px solid var(--aw-line); }
.aw-hero-card__row:last-child { border-bottom: 0; padding-bottom: 0; }
.aw-hero-card__row:first-child { padding-top: 0; }
.aw-hero-card__label { font-size: var(--aw-fs-sm); font-weight: 600; color: var(--aw-text); }
.aw-hero-card__value { font-size: 1.25rem; font-weight: 750; color: var(--aw-heading); letter-spacing: -0.02em; white-space: nowrap; }
.aw-hero-card__value--up { color: var(--aw-mint); }

/* An optional real photograph inside the hero, under the results card. */
.aw-hero__shot {
	margin-top: var(--aw-space-4);
	border-radius: var(--aw-radius-lg);
	overflow: hidden;
	border: 1px solid var(--aw-line-2);
	box-shadow: var(--aw-shadow-lg);
}
.aw-hero__shot img { width: 100%; display: block; }

/* ==========================================================================
   10. CARDS
   ========================================================================== */

.aw-card {
	display: flex;
	flex-direction: column;
	padding: var(--aw-space-6);
	background: var(--aw-surface);
	border: 1px solid var(--aw-line);
	border-radius: var(--aw-radius-lg);
	transition: transform var(--aw-transition), box-shadow var(--aw-transition),
		border-color var(--aw-transition), background-color var(--aw-transition);
}
.aw-card--hover:hover {
	transform: translateY(-3px);
	box-shadow: var(--aw-shadow-lg);
	border-color: var(--aw-red-line);
	background: var(--aw-surface-2);
}
.aw-card--flush { padding: 0; overflow: hidden; }
.aw-card--ink { background: var(--aw-surface-2); border-color: var(--aw-line-2); }
.aw-card--ink h3 { color: var(--aw-heading); }

.aw-card__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-bottom: var(--aw-space-5);
	border-radius: 13px;
	background: var(--aw-red-soft);
	color: var(--aw-red-text);
	flex: none;
}

.aw-card__title { margin-bottom: var(--aw-space-3); font-size: var(--aw-fs-h4); }
.aw-card__body { color: var(--aw-text); font-size: var(--aw-fs-sm); flex: 1 1 auto; }
.aw-card__foot { margin-top: var(--aw-space-5); padding-top: var(--aw-space-4); border-top: 1px solid var(--aw-line); font-size: var(--aw-fs-sm); }

/* Deliverable list inside a service card */
.aw-tick-list { list-style: none; margin: var(--aw-space-4) 0 0; padding: 0; font-size: var(--aw-fs-sm); }
.aw-tick-list li { position: relative; padding-left: 1.6rem; margin-bottom: var(--aw-space-2); }
.aw-tick-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.42em;
	width: 0.85rem;
	height: 0.45rem;
	border-left: 2px solid var(--aw-mint);
	border-bottom: 2px solid var(--aw-mint);
	transform: rotate(-45deg);
}

/* ==========================================================================
   11. PROOF / STATS
   ========================================================================== */

.aw-stat { text-align: center; padding: var(--aw-space-4); }
.aw-stat__value {
	display: block;
	font-size: var(--aw-fs-stat);
	font-weight: 750;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--aw-red);
	margin-bottom: var(--aw-space-2);
}
.aw-stat__label { font-size: var(--aw-fs-sm); font-weight: 600; color: var(--aw-text); }

/* Logo / client strip */
.aw-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--aw-space-5) clamp(1.5rem, 4vw, 3.5rem);
}
.aw-logos img {
	max-height: 40px;
	width: auto;
	filter: grayscale(1) brightness(1.6);
	opacity: 0.55;
	transition: filter var(--aw-transition), opacity var(--aw-transition);
}
.aw-logos img:hover { filter: none; opacity: 1; }
.aw-logos__text {
	font-size: var(--aw-fs-sm);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--aw-text-dim);
}

/* ==========================================================================
   12. PROCESS STEPS
   ========================================================================== */

.aw-steps { counter-reset: aw-step; list-style: none; margin: 0; padding: 0; }
.aw-step { position: relative; padding-left: 4rem; margin-bottom: var(--aw-space-6); }
.aw-step:last-child { margin-bottom: 0; }
.aw-step::before {
	counter-increment: aw-step;
	content: counter(aw-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: -0.25rem;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--aw-red-soft);
	border: 1px solid var(--aw-red-line);
	color: var(--aw-red-text);
	font-size: var(--aw-fs-sm);
	font-weight: 750;
	letter-spacing: -0.02em;
}
/* Vertical connector between steps */
.aw-step:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 1.375rem;
	top: 2.75rem;
	bottom: calc(-1 * var(--aw-space-6));
	width: 2px;
	background: var(--aw-line);
}
.aw-step__title { margin-bottom: var(--aw-space-2); font-size: var(--aw-fs-h4); }
.aw-step__body { margin-bottom: 0; font-size: var(--aw-fs-sm); }

/* ==========================================================================
   13. TESTIMONIALS
   ========================================================================== */

.aw-quote { display: flex; flex-direction: column; height: 100%; }
.aw-quote__mark { font-size: 2.5rem; line-height: 1; color: var(--aw-red); opacity: 0.5; margin-bottom: var(--aw-space-2); }
.aw-quote__stars { color: var(--aw-amber); letter-spacing: 0.15em; font-size: var(--aw-fs-sm); margin-bottom: var(--aw-space-4); }
.aw-quote__text { font-size: var(--aw-fs-base); color: var(--aw-heading); flex: 1 1 auto; margin-bottom: var(--aw-space-5); }
.aw-quote__text p:last-child { margin-bottom: 0; }
.aw-quote__author { display: flex; align-items: center; gap: var(--aw-space-3); margin-top: auto; padding-top: var(--aw-space-4); border-top: 1px solid var(--aw-line); }
.aw-quote__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: none; }
.aw-quote__name { display: block; font-size: var(--aw-fs-sm); font-weight: 700; color: var(--aw-heading); }
.aw-quote__role { display: block; font-size: var(--aw-fs-xs); color: var(--aw-text-dim); }

/* ==========================================================================
   14. WORK / PORTFOLIO
   ========================================================================== */

.aw-work-card { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.aw-work-card:hover { text-decoration: none; }
.aw-work-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--aw-bg-deep);
	border-bottom: 1px solid var(--aw-line);
}
.aw-work-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1); }
.aw-work-card:hover .aw-work-card__media img { transform: scale(1.04); }
.aw-work-card__body { padding: var(--aw-space-5); display: flex; flex-direction: column; flex: 1 1 auto; }
.aw-work-card__title { margin-bottom: var(--aw-space-2); font-size: var(--aw-fs-h4); }
.aw-work-card__excerpt { font-size: var(--aw-fs-sm); margin-bottom: var(--aw-space-4); flex: 1 1 auto; }
.aw-work-card__meta { display: flex; flex-wrap: wrap; gap: var(--aw-space-2); }

.aw-tag {
	display: inline-block;
	padding: 0.25em 0.7em;
	border-radius: var(--aw-radius-pill);
	background: var(--aw-red-soft);
	color: var(--aw-red-text);
	font-size: var(--aw-fs-xs);
	font-weight: 650;
	text-decoration: none;
}
.aw-tag:hover { background: var(--aw-red-btn); color: #fff; text-decoration: none; }
.aw-tag--ink { background: var(--aw-white-10); color: var(--aw-text); }

/* Result metric line on a case-study card */
.aw-work-card__result {
	display: inline-flex;
	align-items: center;
	gap: var(--aw-space-2);
	font-size: var(--aw-fs-xs);
	font-weight: 700;
	color: var(--aw-mint);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: var(--aw-space-3);
}

/* ==========================================================================
   15. FAQ (native <details>, no JS required)
   ========================================================================== */

.aw-faq { border-top: 1px solid var(--aw-line); }
.aw-faq__item { border-bottom: 1px solid var(--aw-line); }
.aw-faq__q {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--aw-space-5);
	padding: var(--aw-space-5) 0;
	color: var(--aw-heading);
	font-size: var(--aw-fs-h4);
	font-weight: 650;
	line-height: var(--aw-lh-snug);
	cursor: pointer;
	list-style: none;
}
.aw-faq__q::-webkit-details-marker { display: none; }
.aw-faq__q:hover { color: var(--aw-red-text); }
.aw-faq__q::after {
	content: "";
	flex: none;
	width: 0.7rem;
	height: 0.7rem;
	margin-top: 0.45em;
	border-right: 2.5px solid var(--aw-red);
	border-bottom: 2.5px solid var(--aw-red);
	transform: rotate(45deg);
	transition: transform var(--aw-transition);
}
.aw-faq__item[open] .aw-faq__q::after { transform: rotate(-135deg); }
.aw-faq__a { padding-bottom: var(--aw-space-5); max-width: 72ch; color: var(--aw-text); }
.aw-faq__a p:last-child { margin-bottom: 0; }

/* ==========================================================================
   16. CTA BANNER
   ========================================================================== */

.aw-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(2.5rem, 5vw, 4rem);
	border-radius: var(--aw-radius-lg);
	background: linear-gradient(135deg, var(--aw-red-deep) 0%, #5c1f2b 45%, var(--aw-bg-deep) 100%);
	border: 1px solid var(--aw-red-line);
	text-align: center;
}
.aw-cta > * { position: relative; z-index: 1; }
.aw-cta h2 { color: var(--aw-heading); margin-bottom: var(--aw-space-4); }
.aw-cta p { font-size: var(--aw-fs-lg); max-width: 56ch; margin-inline: auto; margin-bottom: var(--aw-space-6); color: rgba(255, 255, 255, 0.82); }
.aw-cta .aw-btn-row { justify-content: center; }
.aw-cta__note { margin-top: var(--aw-space-5); font-size: var(--aw-fs-sm); color: rgba(255, 255, 255, 0.65); }

/* An optional real photograph behind the closing call to action. */
.aw-cta--image { background-size: cover; background-position: center; }
.aw-cta--image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(13, 13, 13, 0.88) 0%, rgba(92, 31, 43, 0.78) 60%, rgba(13, 13, 13, 0.9) 100%);
}

/* ==========================================================================
   17. FORMS
   ========================================================================== */

.aw-field { margin-bottom: var(--aw-space-4); }
.aw-field label,
.aw-label {
	display: block;
	margin-bottom: var(--aw-space-2);
	color: var(--aw-heading);
	font-size: var(--aw-fs-sm);
	font-weight: 650;
}
.aw-field .aw-required { color: var(--aw-red-text); }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="password"],
input[type="date"],
select,
textarea {
	width: 100%;
	padding: 0.8rem 1rem;
	background: var(--aw-bg-alt);
	border: 1.5px solid var(--aw-line-2);
	border-radius: var(--aw-radius-sm);
	color: var(--aw-heading);
	font-family: inherit;
	font-size: var(--aw-fs-base);
	line-height: 1.5;
	transition: border-color var(--aw-transition), box-shadow var(--aw-transition);
}
input::placeholder, textarea::placeholder { color: #6f6f6f; }
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--aw-red);
	box-shadow: 0 0 0 3px var(--aw-red-soft);
}
textarea { min-height: 150px; resize: vertical; }

.aw-field--invalid input,
.aw-field--invalid textarea,
.aw-field--invalid select { border-color: var(--aw-red); }
.aw-field__error { display: block; margin-top: var(--aw-space-2); color: var(--aw-red-text); font-size: var(--aw-fs-xs); font-weight: 600; }
.aw-field--hp { position: absolute !important; left: -9999px !important; opacity: 0; height: 0; width: 0; overflow: hidden; }

.aw-form__row { display: grid; gap: var(--aw-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }

.aw-notice {
	padding: var(--aw-space-4) var(--aw-space-5);
	border-radius: var(--aw-radius);
	border: 1px solid;
	font-size: var(--aw-fs-sm);
	margin-bottom: var(--aw-space-5);
}
.aw-notice--ok { background: rgba(61, 220, 151, 0.12); border-color: rgba(61, 220, 151, 0.4); color: #8df0c2; }
.aw-notice--err { background: var(--aw-red-soft); border-color: var(--aw-red-line); color: #ffb3b3; }

.aw-form__check { display: flex; gap: var(--aw-space-3); align-items: flex-start; font-size: var(--aw-fs-xs); color: var(--aw-text); }
.aw-form__check input { width: auto; margin-top: 0.25rem; flex: none; }

/* ==========================================================================
   17b. CONTACT FORM 7
   CF7's own stylesheet is kept, because it carries state logic we do not want
   to reimplement (hiding the response box until submission, revealing the
   spinner). Every rule below is scoped under .aw-form-wrap, which gives it one
   more class than CF7's own selectors - so the theme always wins without
   needing !important.
   ========================================================================== */

.aw-form-wrap .wpcf7 { width: 100%; }

/* CF7's default form template wraps each field in a <p> and separates tags
   with <br>. Our own template uses .aw-field divs, so both are supported. */
.aw-form-wrap .wpcf7-form p { margin: 0 0 var(--aw-space-4); }
.aw-form-wrap .wpcf7-form > br { display: none; }

/* The span CF7 wraps around every control */
.aw-form-wrap .wpcf7-form-control-wrap { display: block; width: 100%; }

/* Labels */
.aw-form-wrap .wpcf7-form label {
	display: block;
	margin-bottom: var(--aw-space-2);
	color: var(--aw-heading);
	font-size: var(--aw-fs-sm);
	font-weight: 650;
}

/* Controls: the theme's bare input styles already apply, this fixes widths */
.aw-form-wrap .wpcf7-form-control:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) {
	width: 100%;
}
.aw-form-wrap textarea.wpcf7-form-control { min-height: 150px; resize: vertical; }
.aw-form-wrap select.wpcf7-form-control { width: 100%; }
.aw-form-wrap .wpcf7-submit { margin-top: var(--aw-space-2); }

/* Inline validation */
.aw-form-wrap .wpcf7-not-valid-tip {
	display: block;
	margin-top: var(--aw-space-2);
	color: var(--aw-red-text);
	font-size: var(--aw-fs-xs);
	font-weight: 600;
}
.aw-form-wrap .wpcf7-not-valid { border-color: var(--aw-red); }

/* The response box is styled to match the theme's own notices */
.aw-form-wrap .wpcf7 form .wpcf7-response-output {
	margin: var(--aw-space-5) 0 0;
	padding: var(--aw-space-4) var(--aw-space-5);
	border: 1px solid var(--aw-red-line);
	border-radius: var(--aw-radius);
	background: var(--aw-red-soft);
	color: #ffb3b3;
	font-size: var(--aw-fs-sm);
}
.aw-form-wrap .wpcf7 form.sent .wpcf7-response-output {
	border-color: rgba(61, 220, 151, 0.4);
	background: rgba(61, 220, 151, 0.12);
	color: #8df0c2;
}

/* Spinner picks up the brand red instead of CF7's dark grey */
.aw-form-wrap .wpcf7-spinner { background-color: var(--aw-red); opacity: 0.9; }

/* Acceptance, checkbox and radio rows */
.aw-form-wrap .wpcf7-list-item { display: block; margin: 0 0 var(--aw-space-2); }
.aw-form-wrap .wpcf7-list-item label {
	display: flex;
	gap: var(--aw-space-3);
	align-items: flex-start;
	margin: 0;
	color: var(--aw-text);
	font-size: var(--aw-fs-xs);
	font-weight: 400;
}
.aw-form-wrap .wpcf7-list-item input[type="checkbox"],
.aw-form-wrap .wpcf7-list-item input[type="radio"] {
	width: auto;
	margin-top: 0.3rem;
	flex: none;
}
.aw-form-wrap .wpcf7-list-item-label { font-weight: 400; }

/* CF7's required marker, kept on brand */
.aw-form-wrap .wpcf7-required,
.aw-form-wrap abbr.wpcf7-required { color: var(--aw-red-text); text-decoration: none; border: 0; }

/* ==========================================================================
   18. CONTACT / INFO BLOCKS
   ========================================================================== */

.aw-contact-grid { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: 1fr; }
@media (min-width: 880px) { .aw-contact-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); } }

.aw-info-list { list-style: none; margin: 0; padding: 0; }
.aw-info-list li { display: flex; gap: var(--aw-space-4); padding: var(--aw-space-4) 0; border-bottom: 1px solid var(--aw-line); margin: 0; }
.aw-info-list li:last-child { border-bottom: 0; }
.aw-info-list svg { flex: none; color: var(--aw-red); margin-top: 0.2em; }
.aw-info-list strong { display: block; color: var(--aw-heading); font-size: var(--aw-fs-sm); }
.aw-info-list span, .aw-info-list a { font-size: var(--aw-fs-sm); }

/* ==========================================================================
   19. WORDPRESS CORE CLASSES & BLOCK SUPPORT
   ========================================================================== */

.alignleft { float: left; margin: 0 var(--aw-space-5) var(--aw-space-4) 0; }
.alignright { float: right; margin: 0 0 var(--aw-space-4) var(--aw-space-5); }
.aligncenter { margin-inline: auto; display: block; }
.alignwide { width: min(100vw - (2 * var(--aw-gutter)), 1360px); margin-inline: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption { max-width: 100%; }
.wp-caption-text, figcaption { font-size: var(--aw-fs-xs); color: var(--aw-text-dim); margin-top: var(--aw-space-2); }
.sticky .aw-card__title::after { content: " \2605"; color: var(--aw-amber); }
.bypostauthor > .comment-body .comment-author::after { content: " (author)"; font-size: var(--aw-fs-xs); color: var(--aw-text-dim); }

.wp-block-image img { border-radius: var(--aw-radius); }
.wp-block-table { overflow-x: auto; }
.wp-block-quote { border-left: 4px solid var(--aw-red); padding-left: var(--aw-space-5); }
.wp-block-separator { border-top: 1px solid var(--aw-line); }
.wp-block-button__link { text-decoration: none; }
.wp-block-cover { border-radius: var(--aw-radius-lg); overflow: hidden; }

/* ==========================================================================
   20. ARCHIVE, SINGLE, PAGINATION, COMMENTS, WIDGETS
   ========================================================================== */

.aw-page-head {
	padding-block: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem);
	background: var(--aw-bg-alt);
	border-bottom: 1px solid var(--aw-line);
	position: relative;
	overflow: hidden;
}
.aw-page-head h1 { margin-bottom: var(--aw-space-3); }
.aw-page-head p { max-width: 62ch; margin-bottom: 0; font-size: var(--aw-fs-lg); }
.aw-page-head > .aw-container { position: relative; z-index: 1; }

/* A compact page head, for pages whose only job is to get a form or a list in
   front of the visitor. On the contact page the default page-head padding plus
   the default section padding stacked to roughly 150px of empty space and
   pushed the first field below the fold on a laptop. */
.aw-page-head--compact {
	padding-block: clamp(1.25rem, 2.5vw, 2rem) clamp(0.75rem, 1.5vw, 1.25rem);
}
.aw-page-head--compact h1 {
	font-size: var(--aw-fs-h2);
	margin-bottom: var(--aw-space-2);
}
.aw-page-head--compact p { font-size: var(--aw-fs-base); }
.aw-page-head--compact .aw-breadcrumbs { margin-bottom: var(--aw-space-3); }

/* Drop the top half of a section's padding, for the block that follows a
   compact page head. */
.aw-section--tight-top { padding-block-start: clamp(1.5rem, 3vw, 2.5rem); }

/* The contact page's own intro, tightened so the first field arrives sooner. */
.aw-contact-intro__title { margin-bottom: var(--aw-space-2); }
.aw-contact-intro__lede { margin-bottom: var(--aw-space-5); font-size: var(--aw-fs-base); }

.aw-breadcrumbs { font-size: var(--aw-fs-xs); color: var(--aw-text-dim); margin-bottom: var(--aw-space-4); }
.aw-breadcrumbs a { color: var(--aw-text-dim); text-decoration: none; }
.aw-breadcrumbs a:hover { color: var(--aw-red-text); text-decoration: underline; }

.aw-entry { max-width: var(--aw-container-narrow); margin-inline: auto; }
.aw-entry__meta { display: flex; flex-wrap: wrap; gap: var(--aw-space-3); align-items: center; font-size: var(--aw-fs-xs); color: var(--aw-text-dim); margin-bottom: var(--aw-space-5); }
.aw-entry__thumb { margin-bottom: var(--aw-space-6); border-radius: var(--aw-radius-lg); overflow: hidden; }
.aw-entry__content > * + * { margin-top: var(--aw-space-5); }
.aw-entry__content h2 { margin-top: var(--aw-space-7); }

.aw-pagination { margin-top: var(--aw-space-7); }
.aw-pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--aw-space-2); justify-content: center; }
.aw-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 var(--aw-space-3);
	border: 1px solid var(--aw-line-2);
	border-radius: var(--aw-radius-sm);
	color: var(--aw-text);
	font-size: var(--aw-fs-sm);
	font-weight: 650;
	text-decoration: none;
}
.aw-pagination .page-numbers:hover { border-color: var(--aw-red); color: var(--aw-red-text); }
.aw-pagination .page-numbers.current { background: var(--aw-red-btn); border-color: var(--aw-red-btn); color: #fff; }
.aw-pagination .page-numbers.dots { border-color: transparent; }

.aw-widget-area { display: grid; gap: var(--aw-space-5); }
.aw-widget { font-size: var(--aw-fs-sm); }
.aw-widget__title { font-size: var(--aw-fs-h4); margin-bottom: var(--aw-space-4); }
.aw-widget ul { list-style: none; padding: 0; margin: 0; }
.aw-widget ul li { padding: var(--aw-space-2) 0; border-bottom: 1px solid var(--aw-line); margin: 0; }

/* Two-column layout when the blog sidebar has widgets. Collapses to one column
   below 1000px so the content keeps a comfortable measure on tablets. */
.aw-with-sidebar { display: grid; gap: var(--aw-space-7); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) {
	.aw-with-sidebar { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
}

/* Footer legal links: a real list, laid out inline. */
.aw-footer__legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--aw-space-4);
	list-style: none;
	margin: 0;
	padding: 0;
}
.aw-footer__legal-menu li { margin: 0; padding: 0; border: 0; }

.aw-comments { max-width: var(--aw-container-narrow); margin: var(--aw-space-8) auto 0; }
.aw-comments__title { font-size: var(--aw-fs-h3); }
.aw-comment-list { list-style: none; padding: 0; margin: 0 0 var(--aw-space-7); }
.aw-comment-list .children { list-style: none; padding-left: var(--aw-space-5); }
.comment-body { padding: var(--aw-space-5) 0; border-bottom: 1px solid var(--aw-line); }
.comment-meta { font-size: var(--aw-fs-xs); color: var(--aw-text-dim); margin-bottom: var(--aw-space-3); }
.comment-author img { border-radius: 50%; margin-right: var(--aw-space-2); vertical-align: middle; }
.comment-author .fn { font-weight: 700; color: var(--aw-heading); font-style: normal; }

.aw-empty { text-align: center; padding: var(--aw-space-8) var(--aw-space-5); }
.aw-empty h2 { margin-bottom: var(--aw-space-4); }
.aw-empty p { max-width: 48ch; margin-inline: auto; margin-bottom: var(--aw-space-5); }

/* ==========================================================================
   21. FOOTER
   ========================================================================== */

.aw-footer { background: var(--aw-bg-deep); color: var(--aw-text); font-size: var(--aw-fs-sm); border-top: 1px solid var(--aw-line); }
.aw-footer__top { padding-block: clamp(2.5rem, 5vw, 4rem); display: grid; gap: clamp(1.75rem, 4vw, 3rem); grid-template-columns: 1fr; }
@media (min-width: 760px) { .aw-footer__top { grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .aw-footer__top { grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); } }

.aw-footer h2, .aw-footer h3, .aw-footer h4 { color: var(--aw-heading); font-size: var(--aw-fs-sm); text-transform: uppercase; letter-spacing: var(--aw-tracking-wide); margin-bottom: var(--aw-space-4); }
.aw-footer a { color: var(--aw-text); text-decoration: none; }
.aw-footer a:hover { color: var(--aw-red-text); text-decoration: underline; }
.aw-footer .aw-brand__name { color: var(--aw-heading); }
.aw-footer__about { margin-top: var(--aw-space-4); max-width: 38ch; }
.aw-footer ul { list-style: none; margin: 0; padding: 0; }
.aw-footer ul li { padding: var(--aw-space-2) 0; border: 0; margin: 0; }
.aw-footer__bottom {
	padding-block: var(--aw-space-5);
	border-top: 1px solid var(--aw-line);
	display: flex;
	flex-wrap: wrap;
	gap: var(--aw-space-4);
	align-items: center;
	justify-content: space-between;
	font-size: var(--aw-fs-xs);
}
.aw-footer__bottom p { margin: 0; }
.aw-footer__legal { display: flex; flex-wrap: wrap; gap: var(--aw-space-4); align-items: center; }

.aw-totop {
	display: inline-flex;
	align-items: center;
	gap: var(--aw-space-2);
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--aw-line-2);
	border-radius: var(--aw-radius-pill);
	color: var(--aw-heading);
	font-size: var(--aw-fs-xs);
	font-weight: 600;
	text-decoration: none;
	background: transparent;
	cursor: pointer;
}
.aw-totop:hover { background: var(--aw-red-btn); border-color: var(--aw-red-btn); color: #fff; text-decoration: none; }

/* ==========================================================================
   22. PRINT
   ========================================================================== */

@media print {
	.aw-header, .aw-footer, .aw-nav-toggle, .aw-cta, .aw-totop, .comment-respond { display: none !important; }
	body { background: #fff; color: #000; font-size: 12pt; }
	h1, h2, h3, h4 { color: #000; }
	.aw-art-ring::before, .aw-art-glow::after, .aw-art-halftone::after,
	.aw-hero__bg, .aw-cta--image::before { display: none !important; }
	.aw-card, .aw-section--alt, .aw-section--deep { background: #fff; border-color: #ccc; }
	a { color: #000; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
	.aw-section { padding-block: 1rem; }
}
