/*
Theme Name: DSR99 Core Theme
Theme URI: https://example.com/dsr99-core-theme
Author: Daniel
Author URI: https://example.com
Description: Tema base personalizado y autónomo para WordPress con soporte para WooCommerce.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
Text Domain: dsr99-core-theme
*/

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

:root {
	--font-family-heading: "Manrope", sans-serif;
	--font-family-body: "Plus Jakarta Sans", sans-serif;

	--color-background: #f7f9f8;
	--color-surface: #ffffff;
	--color-surface-soft: #f0f4f4;
	--color-surface-soft-alt: #ecf2f1;
	--color-surface-mint: #ebf6ef;
	--color-surface-blue: #eef0ff;
	--color-surface-contact: #eef2f1;
	--color-surface-footer: #f3f5f4;
	--color-border: rgba(45, 52, 53, 0.08);
	--color-text: #2d3435;
	--color-heading: #253033;
	--color-muted: #6f7a7d;
	--color-muted-soft: #687173;
	--color-accent: #366673;
	--color-accent-strong: #295967;
	--color-accent-soft: rgba(54, 102, 115, 0.12);
	--color-accent-soft-strong: rgba(54, 102, 115, 0.14);
	--color-accent-glass: rgba(247, 249, 248, 0.9);
	--color-accent-shadow: rgba(54, 102, 115, 0.16);
	--color-accent-shadow-soft: rgba(45, 52, 53, 0.08);
	--color-white-soft: #f0fbff;
	--color-placeholder-one: #b7c4c9;
	--color-placeholder-two: #d5dee2;
	--color-placeholder-three: #93a9b1;
	--color-footer-link: #9ba5a8;
	--color-footer-copy: #92a0a4;
	--color-footer-note: #b4bbbe;
	--color-quote-mark: rgba(54, 102, 115, 0.05);
	--color-shape-highlight: rgba(255, 255, 255, 0.76);
	--color-shape-line: rgba(255, 255, 255, 0.44);
	--color-avatar-head: rgba(54, 102, 115, 0.56);
	--color-avatar-body-start: rgba(54, 102, 115, 0.5);
	--color-avatar-body-end: rgba(54, 102, 115, 0.18);
	--color-avatar-bg-start: rgba(54, 102, 115, 0.24);
	--color-avatar-bg-end: rgba(54, 102, 115, 0.08);
	--color-shape-bg-start: rgba(54, 102, 115, 0.16);
	--color-shape-bg-end: rgba(54, 102, 115, 0.05);

	--shadow-soft: 0 24px 60px var(--color-accent-shadow-soft);
	--shadow-avatar: 0 12px 28px var(--color-accent-shadow);

	--layout-max: 70rem;
	--layout-shell-padding-inline: 1.5rem;

	--space-2xs: 0.35rem;
	--space-xs: 0.5rem;
	--space-sm: 0.75rem;
	--space-md: 1rem;
	--space-lg: 1.5rem;
	--space-xl: 2rem;
	--space-2xl: 3rem;
	--space-3xl: 4rem;
	--space-4xl: 4.5rem;
	--space-5xl: 5.5rem;
	--space-6xl: 6.5rem;
	--space-7xl: 7rem;
	--space-8xl: 7.5rem;

	--radius-sm: 0.625rem;
	--radius-md: 0.75rem;
	--radius-lg: 1.25rem;
	--radius-xl: 1.5rem;
	--radius-pill: 999px;
	--radius-arch: 6rem;

	--text-2xs: 0.62rem;
	--text-xs: 0.72rem;
	--text-sm: 0.78rem;
	--text-md: 0.82rem;
	--text-base: 0.88rem;
	--text-body: 1rem;
	--text-body-lg: 1.08rem;
	--text-card-title: 1rem;
	--text-section-title: 1.9rem;
	--text-contact-title: 3.2rem;
	--text-quote: 3rem;
	--text-hero-title: 5.4rem;

	--line-height-tight: 0.95;
	--line-height-snug: 1.08;
	--line-height-body: 1.5;
	--line-height-relaxed: 1.7;
	--line-height-loose: 1.8;
	--line-height-quote: 1.24;

	--letter-spacing-tight: -0.05em;
	--letter-spacing-snug: -0.03em;
	--letter-spacing-wide: 0.08em;
	--letter-spacing-wider: 0.12em;
	--letter-spacing-widest: 0.18em;

	--header-padding-block: 1.125rem;
	--header-backdrop-blur: 12px;
	--header-brand-font-size: 0.8rem;
	--header-brand-letter-spacing: var(--letter-spacing-wider);
	--header-nav-gap: 1.5rem;
	--header-nav-display: flex;
	--header-link-font-size: var(--text-md);
	--header-cta-font-size: var(--text-sm);
	--header-cta-padding-block: 0.8rem;
	--header-cta-padding-inline: 1.1rem;

	--hero-padding-top: var(--space-5xl);
	--hero-padding-bottom: var(--space-7xl);
	--hero-min-height: 28rem;
	--hero-inner-align: center;
	--hero-inner-justify: center;
	--hero-text-align: center;
	--hero-content-max: 40rem;
	--hero-avatar-size: 4.5rem;
	--hero-avatar-margin-bottom: var(--space-xl);
	--hero-avatar-head-size: 1.4rem;
	--hero-avatar-head-left: 1.55rem;
	--hero-avatar-head-top: 0.95rem;
	--hero-avatar-body-height: 1.65rem;
	--hero-avatar-body-width: 2.4rem;
	--hero-avatar-body-left: 1.05rem;
	--hero-avatar-body-bottom: 0.7rem;
	--hero-title-font-size: clamp(2.9rem, 5.4vw, var(--text-hero-title));
	--hero-title-margin-bottom: var(--space-md);
	--hero-subtitle-font-size: clamp(0.95rem, 1.4vw, var(--text-body-lg));
	--hero-subtitle-max: 31rem;
	--hero-actions-justify: center;
	--hero-actions-width: auto;
	--hero-cta-min-height: 3.2rem;
	--hero-cta-min-width: 9.8rem;
	--hero-cta-padding-block: 1rem;
	--hero-cta-padding-inline: 1.45rem;

	--section-heading-max: 32rem;
	--section-heading-margin-bottom: var(--space-xl);
	--section-title-font-size: clamp(1.45rem, 2vw, var(--text-section-title));
	--section-title-letter-spacing: var(--letter-spacing-snug);
	--section-title-line-height: var(--line-height-snug);
	--section-title-transform: none;
	--section-heading-text-align: inherit;
	--section-subtitle-font-size: var(--text-md);
	--section-subtitle-line-height: var(--line-height-relaxed);

	--expertise-padding-bottom: var(--space-8xl);
	--expertise-columns: repeat(12, minmax(0, 1fr));
	--card-span-1: span 5;
	--card-span-2: span 3;
	--card-span-3: span 4;
	--card-span-4: span 4;
	--card-span-5: span 4;
	--card-span-6: span 4;
	--card-gap: var(--space-md);
	--card-display: block;
	--card-flex-direction: column;
	--card-align-items: stretch;
	--card-min-height: 12.75rem;
	--card-padding: var(--space-lg);
	--card-title-font-size: var(--text-card-title);
	--card-text-font-size: var(--text-md);
	--card-text-max: 17rem;
	--card-visual-display: block;
	--card-icon-margin-bottom: var(--space-lg);
	--card-shape-size: 13.5rem;
	--card-shape-line-width: 7.6rem;
	--card-shape-line-left: 2.8rem;
	--card-shape-line-top: 5.9rem;
	--card-shape-arch-width: 8rem;
	--card-shape-arch-height: 15rem;
	--card-shape-arch-offset: -2rem;

	--contact-padding-block: var(--space-6xl);
	--contact-columns: minmax(0, 1.2fr) minmax(18rem, 22rem);
	--contact-gap: var(--space-4xl);
	--contact-text-align: left;
	--contact-title-font-size: clamp(2rem, 3.4vw, var(--text-contact-title));
	--contact-title-max: 18rem;
	--contact-text-font-size: var(--text-body);
	--contact-text-max: 28rem;
	--contact-meta-justify: flex-start;
	--contact-copy-margin-inline: 0;
	--contact-bubble-size: 1.8rem;
	--contact-bubble-border: 2px;
	--contact-bubble-overlap: -0.35rem;
	--contact-meta-font-size: var(--text-md);

	--form-padding: var(--space-lg);
	--form-radius: var(--radius-xl);
	--form-label-font-size: 0.75rem;
	--form-label-letter-spacing: normal;
	--form-label-margin-bottom: 0.45rem;
	--form-label-transform: none;
	--form-field-gap: var(--space-md);
	--form-input-height: 2.9rem;
	--form-button-font-size: var(--text-base);
	--form-button-height: 3.2rem;
	--form-button-margin-top: var(--space-lg);

	--quote-padding-block: var(--space-8xl);
	--quote-mark-size: clamp(12rem, 28vw, 24rem);
	--quote-mark-top: 0;
	--quote-font-size: clamp(1.9rem, 3.3vw, var(--text-quote));
	--quote-max: 48rem;
	--quote-margin-bottom: var(--space-xl);
	--quote-name-font-size: var(--text-xs);
	--quote-role-font-size: var(--text-sm);

	--footer-padding-top: 4rem;
	--footer-padding-bottom: 4.5rem;
	--footer-nav-gap-row: 1rem;
	--footer-nav-gap-column: 2rem;
	--footer-link-font-size: var(--text-xs);
	--footer-copy-font-size: var(--text-xs);
	--footer-note-font-size: 0.68rem;

	--fallback-padding-block: 6rem;

	--shop-layout-padding-block: var(--space-5xl);
	--shop-layout-columns: minmax(0, 1fr) 18.75rem;
	--shop-layout-gap: var(--space-xl);
	--shop-content-gap: var(--space-xl);
	--shop-sidebar-order: 0;
	--shop-sidebar-gap: var(--space-lg);
	--shop-sidebar-position: sticky;
	--shop-sidebar-top: calc(var(--space-5xl) + var(--space-lg));
	--shop-widget-padding: var(--space-lg);
	--shop-widget-radius: var(--radius-xl);
	--shop-widget-title-size: var(--text-body);
	--shop-widget-title-spacing: var(--letter-spacing-snug);
	--shop-widget-list-gap: var(--space-sm);
	--shop-input-height: 3rem;
	--shop-input-padding-inline: var(--space-md);
	--shop-button-height: 3rem;
	--shop-button-padding-inline: var(--space-lg);
	--shop-product-grid-gap: var(--space-lg);
	--shop-product-card-padding: var(--space-md);
	--shop-product-card-radius: var(--radius-xl);
	--shop-product-title-size: var(--text-body);
	--shop-product-price-size: var(--text-base);
	--shop-notice-padding: var(--space-md);

	--page-layout-max: 50rem;
	--page-layout-padding-block: var(--space-5xl);
	--page-layout-gap: var(--space-xl);
	--page-title-size: clamp(2rem, 4vw, var(--text-contact-title));
	--page-title-margin-bottom: var(--space-lg);
	--page-content-font-size: var(--text-body);
	--page-content-line-height: var(--line-height-loose);
	--blog-list-gap: var(--space-lg);
	--blog-card-padding: var(--space-xl);
	--blog-card-radius: var(--radius-xl);
	--blog-meta-font-size: var(--text-md);
	--blog-title-size: clamp(1.35rem, 2.4vw, var(--text-section-title));
}

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

html {
	scroll-behavior: smooth;
}

body {
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-family-body);
	line-height: var(--line-height-body);
	margin: 0;
}

a {
	color: inherit;
}

img {
	display: block;
	max-width: 100%;
}

.container,
.layout-shell {
	margin: 0 auto;
	max-width: var(--layout-max);
	padding-left: var(--layout-shell-padding-inline);
	padding-right: var(--layout-shell-padding-inline);
	width: 100%;
}

.u-flex-center {
	align-items: center;
	display: flex;
	justify-content: center;
}

.u-stack-sm > * + * {
	margin-top: var(--space-sm);
}

.u-stack-md > * + * {
	margin-top: var(--space-md);
}

.u-stack-lg > * + * {
	margin-top: var(--space-lg);
}

.site-header {
	background: var(--color-accent-glass);
	backdrop-filter: blur(var(--header-backdrop-blur));
	left: 0;
	padding: var(--header-padding-block) 0;
	position: sticky;
	right: 0;
	top: 0;
	z-index: 20;
}

.site-header__inner {
	align-items: center;
	display: flex;
	gap: var(--space-lg);
	justify-content: space-between;
}

.site-header__brand {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--header-brand-font-size);
	font-weight: 800;
	letter-spacing: var(--header-brand-letter-spacing);
	text-decoration: none;
	text-transform: uppercase;
}

.site-header__nav {
	align-items: center;
	display: var(--header-nav-display);
	gap: var(--header-nav-gap);
}

.site-header__menu {
	align-items: center;
	display: flex;
	gap: var(--header-nav-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__item {
	display: flex;
}

.site-header__link {
	color: var(--color-muted);
	font-size: var(--header-link-font-size);
	font-weight: 600;
	text-decoration: none;
}

.site-header__link:hover,
.site-header__link:focus,
.site-header__item.current-menu-item .site-header__link,
.site-header__item.current-menu-ancestor .site-header__link {
	color: var(--color-accent);
}

.site-header__cta {
	align-items: center;
	background: var(--color-accent);
	border-radius: var(--radius-pill);
	color: var(--color-white-soft);
	display: inline-flex;
	font-size: var(--header-cta-font-size);
	font-weight: 700;
	justify-content: center;
	padding: var(--header-cta-padding-block) var(--header-cta-padding-inline);
	text-decoration: none;
}

.site-header__cta:hover,
.site-header__cta:focus,
.site-header__item.current-menu-item .site-header__cta,
.site-header__item.current-menu-ancestor .site-header__cta {
	background: var(--color-accent-strong);
	color: var(--color-white-soft);
}

.site-main {
	overflow: clip;
}

.home-page {
	width: 100%;
}

.home-hero {
	padding: var(--hero-padding-top) 0 var(--hero-padding-bottom);
}

.home-hero__inner {
	align-items: var(--hero-inner-align);
	display: flex;
	flex-direction: column;
	justify-content: var(--hero-inner-justify);
	min-height: var(--hero-min-height);
	text-align: var(--hero-text-align);
}

.home-hero__avatar {
	background:
		linear-gradient(135deg, var(--color-avatar-bg-start), var(--color-avatar-bg-end)),
		var(--color-surface);
	border: 1px solid var(--color-accent-soft-strong);
	border-radius: 50%;
	box-shadow: var(--shadow-avatar);
	height: var(--hero-avatar-size);
	margin-bottom: var(--hero-avatar-margin-bottom);
	position: relative;
	width: var(--hero-avatar-size);
}

.home-hero__avatar::before {
	background: var(--color-avatar-head);
	border-radius: 50%;
	content: "";
	height: var(--hero-avatar-head-size);
	left: var(--hero-avatar-head-left);
	position: absolute;
	top: var(--hero-avatar-head-top);
	width: var(--hero-avatar-head-size);
}

.home-hero__avatar::after {
	background: linear-gradient(180deg, var(--color-avatar-body-start), var(--color-avatar-body-end));
	border-radius: var(--radius-pill) var(--radius-pill) 0 0;
	bottom: var(--hero-avatar-body-bottom);
	content: "";
	height: var(--hero-avatar-body-height);
	left: var(--hero-avatar-body-left);
	position: absolute;
	width: var(--hero-avatar-body-width);
}

.home-hero__content {
	max-width: var(--hero-content-max);
}

.home-hero__title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--hero-title-font-size);
	font-weight: 800;
	letter-spacing: var(--letter-spacing-tight);
	line-height: var(--line-height-tight);
	margin: 0 0 var(--hero-title-margin-bottom);
}

.home-hero__title-accent {
	color: var(--color-accent);
	display: block;
}

.home-hero__subtitle {
	color: var(--color-muted);
	font-size: var(--hero-subtitle-font-size);
	line-height: var(--line-height-loose);
	margin: 0 auto;
	max-width: var(--hero-subtitle-max);
}

.home-hero__actions {
	display: flex;
	justify-content: var(--hero-actions-justify);
	margin-top: var(--space-xl);
	width: var(--hero-actions-width);
}

.home-hero__cta {
	align-items: center;
	background: var(--color-accent);
	border-radius: var(--radius-pill);
	color: var(--color-white-soft);
	display: inline-flex;
	font-size: var(--text-base);
	font-weight: 700;
	justify-content: center;
	min-height: var(--hero-cta-min-height);
	min-width: var(--hero-cta-min-width);
	padding: var(--hero-cta-padding-block) var(--hero-cta-padding-inline);
	text-decoration: none;
}

.home-hero__cta:hover,
.home-hero__cta:focus {
	background: var(--color-accent-strong);
}

.home-section-heading {
	margin-bottom: var(--section-heading-margin-bottom);
	max-width: var(--section-heading-max);
}

.home-section-heading__title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--section-title-font-size);
	font-weight: 800;
	letter-spacing: var(--section-title-letter-spacing);
	line-height: var(--section-title-line-height);
	margin: 0 0 var(--space-sm);
	text-align: var(--section-heading-text-align);
	text-transform: var(--section-title-transform);
}

.home-section-heading__subtitle {
	color: var(--color-muted);
	font-size: var(--section-subtitle-font-size);
	line-height: var(--section-subtitle-line-height);
	margin: 0;
	text-align: var(--section-heading-text-align);
}

.home-expertise {
	padding: 0 0 var(--expertise-padding-bottom);
}

.home-expertise__grid {
	display: grid;
	gap: var(--card-gap);
	grid-template-columns: var(--expertise-columns);
}

.home-card {
	align-items: var(--card-align-items);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	display: var(--card-display);
	flex-direction: var(--card-flex-direction);
	min-height: var(--card-min-height);
	overflow: hidden;
	padding: var(--card-padding);
	position: relative;
}

.home-card--neutral {
	background: var(--color-surface-soft);
}

.home-card--mint {
	background: var(--color-surface-mint);
}

.home-card--blue {
	background: var(--color-surface-blue);
}

.home-card--visual {
	background: var(--color-surface-soft-alt);
	display: var(--card-visual-display);
}

.home-card:nth-child(1) {
	grid-column: var(--card-span-1);
}

.home-card:nth-child(2) {
	grid-column: var(--card-span-2);
}

.home-card:nth-child(3) {
	grid-column: var(--card-span-3);
}

.home-card:nth-child(4) {
	grid-column: var(--card-span-4);
}

.home-card:nth-child(5) {
	grid-column: var(--card-span-5);
}

.home-card:nth-child(6) {
	grid-column: var(--card-span-6);
}

.home-card__icon {
	background: var(--color-accent-soft);
	border-radius: var(--radius-sm);
	height: var(--space-md);
	margin-bottom: var(--card-icon-margin-bottom);
	width: var(--space-md);
}

.home-card__title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--card-title-font-size);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0 0 var(--space-sm);
}

.home-card__text {
	color: var(--color-muted);
	font-size: var(--card-text-font-size);
	line-height: var(--line-height-relaxed);
	margin: 0;
	max-width: var(--card-text-max);
}

.home-card__shape {
	background:
		radial-gradient(circle at 30% 24%, var(--color-shape-highlight), transparent 18%),
		linear-gradient(180deg, var(--color-shape-bg-start), var(--color-shape-bg-end));
	border-radius: 50%;
	height: var(--card-shape-size);
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: var(--card-shape-size);
}

.home-card__shape::after {
	background: var(--color-shape-line);
	border-radius: var(--radius-pill);
	content: "";
	height: 0.7rem;
	left: var(--card-shape-line-left);
	position: absolute;
	top: var(--card-shape-line-top);
	width: var(--card-shape-line-width);
}

.home-card__shape--arch {
	border-radius: var(--radius-arch) var(--radius-arch) 0 0;
	bottom: var(--card-shape-arch-offset);
	height: var(--card-shape-arch-height);
	top: auto;
	transform: translateX(-50%);
	width: var(--card-shape-arch-width);
}

.home-contact {
	background: var(--color-surface-contact);
	padding: var(--contact-padding-block) 0;
}

.home-contact__inner {
	align-items: center;
	display: grid;
	gap: var(--contact-gap);
	grid-template-columns: var(--contact-columns);
}

.home-contact__content {
	text-align: var(--contact-text-align);
}

.home-contact__title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--contact-title-font-size);
	font-weight: 800;
	letter-spacing: var(--letter-spacing-tight);
	line-height: 0.96;
	margin: 0 0 var(--space-md);
	margin-inline: var(--contact-copy-margin-inline);
	max-width: var(--contact-title-max);
}

.home-contact__text {
	color: var(--color-muted);
	font-size: var(--contact-text-font-size);
	line-height: var(--line-height-loose);
	margin: 0 0 var(--space-lg);
	margin-inline: var(--contact-copy-margin-inline);
	max-width: var(--contact-text-max);
}

.home-contact__meta {
	align-items: center;
	display: flex;
	gap: var(--space-xs);
	justify-content: var(--contact-meta-justify);
}

.home-contact__stack {
	display: flex;
	margin-right: var(--space-sm);
}

.home-contact__bubble {
	border: var(--contact-bubble-border) solid var(--color-surface-contact);
	border-radius: 50%;
	display: block;
	height: var(--contact-bubble-size);
	margin-left: var(--contact-bubble-overlap);
	width: var(--contact-bubble-size);
}

.home-contact__bubble:first-child {
	margin-left: 0;
}

.home-contact__bubble--one {
	background: var(--color-placeholder-one);
}

.home-contact__bubble--two {
	background: var(--color-placeholder-two);
}

.home-contact__bubble--three {
	background: var(--color-placeholder-three);
}

.home-contact__meta-text {
	color: var(--color-muted);
	font-size: var(--contact-meta-font-size);
}

.home-form {
	background: var(--color-surface);
	border-radius: var(--form-radius);
	box-shadow: var(--shadow-soft);
	padding: var(--form-padding);
}

.home-form__field + .home-form__field {
	margin-top: var(--form-field-gap);
}

.home-form__label {
	color: var(--color-muted);
	display: block;
	font-size: var(--form-label-font-size);
	font-weight: 600;
	letter-spacing: var(--form-label-letter-spacing);
	margin-bottom: var(--form-label-margin-bottom);
	text-transform: var(--form-label-transform);
}

.home-form__input {
	background: var(--color-surface-soft);
	border-radius: var(--radius-sm);
	height: var(--form-input-height);
	width: 100%;
}

.home-form__button {
	align-items: center;
	background: var(--color-accent);
	border-radius: var(--radius-md);
	color: var(--color-white-soft);
	display: inline-flex;
	font-size: var(--form-button-font-size);
	font-weight: 700;
	height: var(--form-button-height);
	justify-content: center;
	margin-top: var(--form-button-margin-top);
	text-decoration: none;
	width: 100%;
}

.home-form__button:hover,
.home-form__button:focus {
	background: var(--color-accent-strong);
}

.home-quote {
	padding: var(--quote-padding-block) 0;
	position: relative;
}

.home-quote::before {
	color: var(--color-quote-mark);
	content: "“";
	font-family: var(--font-family-heading);
	font-size: var(--quote-mark-size);
	font-weight: 800;
	inset: 0;
	line-height: 1;
	margin: auto;
	position: absolute;
	text-align: center;
	top: var(--quote-mark-top);
	width: 100%;
}

.home-quote__inner {
	max-width: 56rem;
	position: relative;
	text-align: center;
}

.home-quote__text {
	color: var(--color-muted-soft);
	font-family: var(--font-family-heading);
	font-size: var(--quote-font-size);
	font-style: italic;
	font-weight: 400;
	letter-spacing: var(--letter-spacing-snug);
	line-height: var(--line-height-quote);
	margin: 0 auto var(--quote-margin-bottom);
	max-width: var(--quote-max);
}

.home-quote__author {
	display: grid;
	gap: var(--space-2xs);
	justify-content: center;
}

.home-quote__name {
	color: var(--color-heading);
	font-size: var(--quote-name-font-size);
	font-weight: 800;
	letter-spacing: var(--letter-spacing-widest);
	text-transform: uppercase;
}

.home-quote__role {
	color: var(--color-muted);
	font-size: var(--quote-role-font-size);
}

.site-footer {
	background: var(--color-surface-footer);
	padding: var(--footer-padding-top) 0 var(--footer-padding-bottom);
}

.site-footer__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	text-align: center;
}

.site-footer__nav {
	display: flex;
	flex-wrap: wrap;
	gap: var(--footer-nav-gap-row) var(--footer-nav-gap-column);
	justify-content: center;
}

.site-footer__link {
	color: var(--color-footer-link);
	font-size: var(--footer-link-font-size);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
}

.site-footer__copy {
	color: var(--color-footer-copy);
	font-size: var(--footer-copy-font-size);
	letter-spacing: var(--letter-spacing-wide);
	text-transform: uppercase;
}

.site-footer__note {
	color: var(--color-footer-note);
	font-size: var(--footer-note-font-size);
	font-style: italic;
}

.fallback-hero {
	padding: var(--fallback-padding-block) 0;
}

.dsr-shop-layout {
	padding: var(--shop-layout-padding-block) 0;
}

.dsr-shop-layout__inner {
	align-items: start;
	display: grid;
	gap: var(--shop-layout-gap);
	grid-template-columns: var(--shop-layout-columns);
}

.dsr-shop-layout__content {
	min-width: 0;
}

.dsr-shop-layout__content .woocommerce {
	display: grid;
	gap: var(--shop-content-gap);
}

.dsr-shop-sidebar {
	min-width: 0;
	order: var(--shop-sidebar-order);
}

.dsr-shop-sidebar__widgets {
	display: grid;
	gap: var(--shop-sidebar-gap);
	position: var(--shop-sidebar-position);
	top: var(--shop-sidebar-top);
}

.dsr-shop-widget {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--shop-widget-radius);
	padding: var(--shop-widget-padding);
}

.dsr-shop-widget__title,
.widget-title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--shop-widget-title-size);
	font-weight: 800;
	letter-spacing: var(--shop-widget-title-spacing);
	line-height: var(--line-height-snug);
	margin: 0 0 var(--space-md);
}

.widget_product_search .woocommerce-product-search,
.widget_search .searchform,
.widget_search form,
.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count {
	margin: 0;
}

.widget_product_search .search-field,
.widget_search input[type="search"],
.woocommerce .input-text,
.woocommerce .quantity .qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	background: var(--color-surface-soft);
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	color: var(--color-text);
	font-family: var(--font-family-body);
	font-size: var(--text-base);
	height: var(--shop-input-height);
	padding: 0 var(--shop-input-padding-inline);
	width: 100%;
}

.widget_product_search .search-field:focus,
.widget_search input[type="search"]:focus,
.woocommerce .input-text:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var(--color-accent-soft-strong);
	outline: none;
}

.widget_product_search button,
.widget_search button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce ul.products li.product .button {
	align-items: center;
	background: var(--color-accent);
	border: 0;
	border-radius: var(--radius-md);
	color: var(--color-white-soft);
	display: inline-flex;
	font-family: var(--font-family-body);
	font-size: var(--text-base);
	font-weight: 700;
	height: var(--shop-button-height);
	justify-content: center;
	padding: 0 var(--shop-button-padding-inline);
	text-decoration: none;
}

.widget_product_search button:hover,
.widget_search button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce ul.products li.product .button:hover,
.widget_product_search button:focus,
.widget_search button:focus,
.woocommerce a.button:focus,
.woocommerce button.button:focus,
.woocommerce input.button:focus,
.woocommerce #respond input#submit:focus {
	background: var(--color-accent-strong);
	color: var(--color-white-soft);
}

.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-result-count,
.woocommerce .star-rating,
.woocommerce .product_meta,
.woocommerce .posted_in,
.woocommerce .sku_wrapper,
.woocommerce .tagged_as {
	color: var(--color-muted);
	font-size: var(--text-md);
}

.woocommerce .woocommerce-breadcrumb a,
.woocommerce .woocommerce-result-count a {
	color: var(--color-heading);
	text-decoration: none;
}

.woocommerce ul.products {
	display: grid;
	gap: var(--shop-product-grid-gap);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products.columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.woocommerce ul.products.columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce ul.products.columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.woocommerce ul.products.columns-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.woocommerce ul.products.columns-6 {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--shop-product-card-radius);
	float: none;
	margin: 0;
	padding: var(--shop-product-card-padding);
	width: 100%;
}

.woocommerce ul.products li.product a {
	color: inherit;
	text-decoration: none;
}

.woocommerce ul.products li.product img {
	border-radius: var(--radius-lg);
	margin-bottom: var(--space-md);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2,
.woocommerce .cross-sells > h2 {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--shop-product-title-size);
	font-weight: 700;
	letter-spacing: var(--letter-spacing-snug);
	line-height: var(--line-height-snug);
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--color-accent);
	font-size: var(--shop-product-price-size);
	font-weight: 700;
}

.woocommerce div.product {
	display: grid;
	gap: var(--shop-layout-gap);
}

.woocommerce div.product div.images img,
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	border-radius: var(--radius-xl);
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.woocommerce nav.woocommerce-pagination ul {
	align-items: center;
	border: 0;
	display: flex;
	gap: var(--space-xs);
	padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	color: var(--color-heading);
	min-width: var(--shop-button-height);
	padding: var(--space-sm) var(--space-md);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--color-accent);
	color: var(--color-white-soft);
}

.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error {
	background: var(--color-surface);
	border-radius: var(--radius-lg);
	border-top-color: var(--color-accent);
	color: var(--color-text);
	padding: var(--shop-notice-padding);
}

.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before {
	color: var(--color-accent);
}

.widget ul,
.woocommerce .product-categories,
.woocommerce .woocommerce-widget-layered-nav-list,
.woocommerce .woocommerce-widget-rating-filter-list {
	display: grid;
	gap: var(--shop-widget-list-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget li,
.woocommerce .product_list_widget li,
.woocommerce .product-categories li,
.woocommerce .woocommerce-widget-layered-nav-list__item,
.woocommerce .woocommerce-widget-rating-filter-list__item {
	color: var(--color-muted);
	font-size: var(--text-base);
}

.widget a,
.woocommerce .product_list_widget a,
.woocommerce .product-categories a,
.woocommerce .woocommerce-widget-layered-nav-list__item a,
.woocommerce .woocommerce-widget-rating-filter-list__item a {
	color: var(--color-heading);
	text-decoration: none;
}

.widget a:hover,
.woocommerce .product_list_widget a:hover,
.woocommerce .product-categories a:hover,
.woocommerce .woocommerce-widget-layered-nav-list__item a:hover,
.woocommerce .woocommerce-widget-rating-filter-list__item a:hover {
	color: var(--color-accent);
}

.dsr-page-layout {
	display: grid;
	gap: var(--page-layout-gap);
	max-width: var(--page-layout-max);
	padding-bottom: var(--page-layout-padding-block);
	padding-top: var(--page-layout-padding-block);
}

.dsr-page-entry,
.dsr-article,
.dsr-blog-card {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--blog-card-radius);
	padding: var(--blog-card-padding);
}

.dsr-page-entry__header,
.dsr-article__header,
.dsr-blog-header {
	margin-bottom: var(--page-title-margin-bottom);
}

.dsr-page-entry__title,
.dsr-article__title,
.dsr-blog-header__title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--page-title-size);
	font-weight: 800;
	letter-spacing: var(--letter-spacing-tight);
	line-height: var(--line-height-tight);
	margin: 0;
}

.dsr-page-entry__content,
.dsr-article__content,
.dsr-blog-card__excerpt {
	color: var(--color-text);
	font-size: var(--page-content-font-size);
	line-height: var(--page-content-line-height);
}

.dsr-page-entry__content > :first-child,
.dsr-article__content > :first-child,
.dsr-blog-card__excerpt > :first-child {
	margin-top: 0;
}

.dsr-page-entry__content > :last-child,
.dsr-article__content > :last-child,
.dsr-blog-card__excerpt > :last-child {
	margin-bottom: 0;
}

.dsr-article__meta,
.dsr-blog-card__meta {
	color: var(--color-muted);
	font-size: var(--blog-meta-font-size);
	margin: 0 0 var(--space-sm);
}

.dsr-blog-list {
	display: grid;
	gap: var(--blog-list-gap);
}

.dsr-blog-card__header {
	margin-bottom: var(--space-md);
}

.dsr-blog-card__title {
	color: var(--color-heading);
	font-family: var(--font-family-heading);
	font-size: var(--blog-title-size);
	font-weight: 700;
	letter-spacing: var(--letter-spacing-snug);
	line-height: var(--line-height-snug);
	margin: 0;
}

.dsr-blog-card__title a {
	color: inherit;
	text-decoration: none;
}

.dsr-blog-card__title a:hover,
.dsr-blog-card__title a:focus {
	color: var(--color-accent);
}

.dsr-blog-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.dsr-blog-pagination .page-numbers {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	color: var(--color-heading);
	padding: var(--space-sm) var(--space-md);
	text-decoration: none;
}

.dsr-blog-pagination .page-numbers.current,
.dsr-blog-pagination .page-numbers:hover,
.dsr-blog-pagination .page-numbers:focus {
	background: var(--color-accent);
	color: var(--color-white-soft);
}

@media (max-width: 768px) {
	:root {
		--layout-shell-padding-inline: 1rem;

		--header-padding-block: 0.9rem;
		--header-brand-font-size: 0.76rem;
		--header-brand-letter-spacing: var(--letter-spacing-wide);
		--header-nav-gap: 0;
		--header-nav-display: none;

		--hero-padding-top: 3rem;
		--hero-padding-bottom: 3.5rem;
		--hero-min-height: auto;
		--hero-inner-align: flex-start;
		--hero-inner-justify: flex-start;
		--hero-text-align: left;
		--hero-content-max: 22rem;
		--hero-avatar-size: 3.25rem;
		--hero-avatar-margin-bottom: 1.25rem;
		--hero-avatar-head-size: 1rem;
		--hero-avatar-head-left: 1.1rem;
		--hero-avatar-head-top: 0.65rem;
		--hero-avatar-body-height: 1.2rem;
		--hero-avatar-body-width: 1.75rem;
		--hero-avatar-body-left: 0.72rem;
		--hero-avatar-body-bottom: 0.5rem;
		--hero-title-font-size: clamp(2rem, 8.5vw, 3.2rem);
		--hero-title-margin-bottom: 0.9rem;
		--hero-subtitle-font-size: 0.94rem;
		--hero-subtitle-max: 18rem;
		--hero-actions-justify: flex-start;
		--hero-actions-width: 100%;
		--hero-cta-min-height: 3rem;
		--hero-cta-min-width: 8.5rem;
		--hero-cta-padding-block: 0.9rem;
		--hero-cta-padding-inline: 1.2rem;

		--section-heading-max: 16rem;
		--section-heading-margin-bottom: 1.5rem;
		--section-title-font-size: 1rem;
		--section-title-letter-spacing: var(--letter-spacing-wide);
		--section-title-line-height: 1.2;
		--section-heading-text-align: left;
		--section-title-transform: uppercase;
		--section-subtitle-font-size: 0.76rem;
		--section-subtitle-line-height: 1.55;

		--expertise-padding-bottom: 3rem;
		--expertise-columns: 1fr;
		--card-span-1: auto;
		--card-span-2: auto;
		--card-span-3: auto;
		--card-span-4: auto;
		--card-span-5: auto;
		--card-span-6: auto;
		--card-display: flex;
		--card-align-items: flex-start;
		--card-min-height: 6.75rem;
		--card-padding: 1.25rem;
		--card-title-font-size: 0.96rem;
		--card-text-font-size: 0.78rem;
		--card-text-max: none;
		--card-visual-display: none;
		--card-icon-margin-bottom: 0.85rem;

		--contact-padding-block: 3rem;
		--contact-columns: 1fr;
		--contact-gap: 2rem;
		--contact-text-align: center;
		--contact-title-font-size: clamp(1.85rem, 8vw, 2.6rem);
		--contact-title-max: 16rem;
		--contact-text-font-size: 0.9rem;
		--contact-text-max: 18rem;
		--contact-meta-justify: center;
		--contact-copy-margin-inline: auto;

		--form-padding: 1rem;
		--form-radius: var(--radius-lg);
		--form-label-font-size: 0.64rem;
		--form-label-letter-spacing: var(--letter-spacing-wide);
		--form-label-margin-bottom: 0.35rem;
		--form-label-transform: uppercase;
		--form-input-height: 2.75rem;
		--form-button-height: 3rem;
		--form-button-margin-top: 1rem;

		--quote-padding-block: 3rem;
		--quote-mark-size: 10rem;
		--quote-mark-top: 0.25rem;
		--quote-font-size: clamp(1.1rem, 5.6vw, 1.75rem);
		--quote-max: 18rem;
		--quote-margin-bottom: 1.25rem;
		--quote-name-font-size: 0.62rem;
		--quote-role-font-size: 0.72rem;

		--footer-padding-top: 2.5rem;
		--footer-padding-bottom: 3rem;
		--footer-nav-gap-row: 0.75rem;
		--footer-nav-gap-column: 1.25rem;
		--footer-copy-font-size: 0.66rem;
		--footer-note-font-size: 0.66rem;

		--fallback-padding-block: 4rem;

		--shop-layout-padding-block: var(--space-2xl);
		--shop-layout-columns: 1fr;
		--shop-layout-gap: var(--space-lg);
		--shop-sidebar-order: 1;
		--shop-sidebar-gap: var(--space-md);
		--shop-sidebar-position: static;
		--shop-sidebar-top: auto;
		--shop-widget-padding: var(--space-md);
		--shop-product-grid-gap: var(--space-md);

		--page-layout-padding-block: var(--space-2xl);
		--page-layout-gap: var(--space-lg);
		--page-title-size: clamp(1.85rem, 8vw, 2.6rem);
		--blog-card-padding: var(--space-lg);
		--blog-list-gap: var(--space-md);
		--blog-title-size: 1.35rem;
	}

	.woocommerce ul.products,
	.woocommerce ul.products.columns-2,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
