/*
Theme Name: Senum
Description: A custom block theme scaffolded by Studio Code.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: senum
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* WordPress inserts margin-block-start: var(--wp--style--block-gap) between the
   template's top-level sections (header part, main, footer part) — a gap that
   exists even when no markup asks for it. Zero it so sections butt edge-to-edge
   and own their vertical rhythm via padding; this does not affect block gaps
   inside nested layouts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* Same issue, one level down: the post-content flow (each page's top-level
   sections) gets the same automatic gap between its direct children. Full-
   width sections rely on their own padding for rhythm, so a stray gap here
   shows up as a visible seam of the page background between two colored
   bands. */
.wp-block-post-content > * + * {
	margin-block-start: 0;
}

/* Sticky must apply to the template-part wrapper, not the header itself —
   the wrapper's parent (wp-site-blocks) is full page height, but the header's
   own parent (the wrapper) is only as tall as the header, which gives sticky
   no room to stick within. */
.senum-header-wrap {
	position: sticky;
	top: 0;
	z-index: 100;
}

/* ===== Buttons ===== */

.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	padding: 12px 26px;
	font-size: 16px;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background 240ms cubic-bezier(0.4,0,0.2,1), color 240ms cubic-bezier(0.4,0,0.2,1), border-color 240ms cubic-bezier(0.4,0,0.2,1);
}
.btn-primary { background: #1c2c40; color: #ffffff; }
.btn-primary:hover { background: #131f2e; color: #ffffff; }
.btn-secondary { background: #6d7c67; color: #ffffff; }
.btn-secondary:hover { background: #566450; color: #ffffff; }
.btn-outline { background: transparent; color: #1c2c40; border-color: #cdccc4; }
.btn-outline:hover { background: #faf8f4; }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(143,160,137,0.35); }

/* Wrapper classes (.senum-shop-cta, .wp-block-button) must never carry their own
   background/radius — the visible pill lives entirely on the inner .btn link.
   A colored, unrounded wrapper behind a rounded same-color link fills in the
   rounded corners with square fill and reads as a sharp-cornered box. */

/* ===== Text components ===== */

.eyebrow {
	/* block, not inline-block: this sits as a direct child of full-width
	   "constrained" sections, and WP centers those children by computing
	   equal auto margins — a trick that only applies to block boxes.
	   inline-block ignores it and the eyebrow hugs the left edge instead. */
	display: block;
	white-space: nowrap;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	letter-spacing: 0.28em;
	text-transform: lowercase;
	color: #6d7c67;
	margin-bottom: 0.6em;
}

.badge {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	background: #ffffff;
	border: 1px solid rgba(28, 44, 64, 0.12);
	padding: 0.5em 0.9em;
	border-radius: 999px;
	font-size: 0.82rem;
	font-weight: 500;
	color: #5c6d80;
	box-shadow: 0 1px 3px rgba(26,38,52,.06);
	margin-bottom: 1.3rem;
}
.badge .dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #6d7c67;
	display: inline-block;
}

.hashtags {
	display: block;
	font-size: 0.9rem;
	font-weight: 500;
	color: #6d7c67;
}

.tag {
	display: block;
	font-size: 0.82rem;
	background: rgba(109, 124, 103, 0.14);
	color: #1c2c40;
	padding: 0.4em 0.85em;
	border-radius: 999px;
	font-weight: 500;
}

/* ===== Photo / placeholder box ===== */
/* .ph holds either a real photo (img child) or, lacking one, a soft brand
   gradient — swap by adding/removing the <img>. Aspect-ratio modifiers mirror
   how this box is reused across hero, cards, and blog thumbnails. */
.ph {
	position: relative;
	border-radius: 24px;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 20% 10%, rgba(109, 124, 103, 0.3), transparent 55%),
		linear-gradient(140deg, #dce3dc, #f3f1ec);
	display: flex;
	align-items: flex-end;
	min-height: 260px;
	box-shadow: 0 20px 48px rgba(26, 38, 52, 0.12);
}
.ph.is-tall { aspect-ratio: 4 / 5; }
.ph.is-wide { aspect-ratio: 16 / 10; }
.ph.is-square { aspect-ratio: 1 / 1; min-height: 0; }
.ph.is-flush { border-radius: 0; box-shadow: none; min-height: 0; }
.ph img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
}
.ph-cap {
	position: relative;
	z-index: 2;
	margin: 14px;
	padding: 0.9em 1.1em;
	font-size: 0.78rem;
	color: #1c2c40;
	background: rgba(255, 255, 255, 0.78);
	border-radius: 12px;
	font-weight: 500;
}

/* ===== Trust / services strip ===== */
.trust {
	background: #1c2c40;
	color: #fff;
}
.trust .wp-block-group {
	flex-wrap: wrap;
	justify-content: center;
	row-gap: 0.5rem;
}
.trust span {
	font-weight: 500;
	opacity: 0.92;
	font-size: 0.98rem;
}

.card-icon {
	margin: 0 0 16px;
}
.card-icon img {
	display: block;
	width: 48px;
	height: 48px;
}

/* Reserve two lines of heading height so card body text starts at the
   same y-position regardless of how many words wrap. */
.audience-card-title {
	min-height: 2.3em;
}

/* ===== Steps (horizontal timeline) ===== */
.steps-row {
	position: relative;
}
.steps-row::before {
	content: "";
	position: absolute;
	top: 8px;
	left: 0;
	right: 0;
	height: 1px;
	background: #e3e2dc;
	z-index: 0;
}
.step {
	position: relative;
	z-index: 1;
	text-align: center;
}
.step-dot {
	display: block;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #1c2c40;
	margin: 0 auto 20px;
}
.step h3 { margin: 0 0 6px; }

/* ===== Article placeholder thumbnails (real content pending) ===== */
.article-thumb {
	background: #e5e4de;
	border-radius: 16px;
	aspect-ratio: 4 / 3;
	margin-bottom: 16px;
}

.articles-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
.articles-grid .article-card h3 {
	margin: 0;
	font-size: 1.05rem;
}
.article-card a {
	display: block;
	color: inherit;
	text-decoration: none;
	transition: opacity 200ms ease;
}
.article-card a:hover {
	opacity: 0.8;
}

.single-post-featured-image {
	margin: 28px 0 40px;
}
.single-post-featured-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* ===== Single article header ===== */
.article-meta-line {
	margin-bottom: 0;
}
.article-subtitle {
	margin: 16px 0 0;
}
.article-byline {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 28px;
}
.article-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(109, 124, 103, 0.25);
	flex-shrink: 0;
}
.article-byline-name {
	font-weight: 600;
	color: #1c2c40;
	font-size: 0.95rem;
}
.article-byline-meta {
	color: #5c6d80;
	font-size: 0.88rem;
	margin-top: 2px;
}
.article-divider {
	border: none;
	border-top: 1px solid #e3e2dc;
	margin: 28px 0 0;
}

/* ===== Article body ===== */
.article-body p {
	margin-bottom: 1.2em;
}
.article-body h2,
.article-body h3 {
	margin-top: 2.2em;
	margin-bottom: 0.6em;
}
.article-body > .wp-block-post-content > h2:first-child,
.article-body > .wp-block-post-content > h3:first-child {
	margin-top: 0;
}
.article-body blockquote,
.article-body .wp-block-quote {
	border-left: 3px solid var(--wp--preset--color--sage);
	padding-left: 20px;
	margin: 32px 0;
	font-size: 1.05rem;
	color: #1c2c40;
}
.article-body blockquote p,
.article-body .wp-block-quote p {
	margin: 0;
}

/* ===== Related articles ===== */
/* Falls back to the base .articles-grid 3-column layout (no override
   needed now that the homepage preview also shows 3 cards). */
.related-article-excerpt {
	margin: 6px 0 0;
	color: #5c6d80;
	font-size: 0.9rem;
}

/* ===== Team cards (Meist page) ===== */
.team-card {
	text-align: center;
}
.team-card .article-avatar {
	display: block;
	margin: 0 auto 16px;
}
.team-card-name {
	font-weight: 600;
	color: #1c2c40;
	font-size: 1.05rem;
}
.team-card-role {
	color: #6d7c67;
	font-size: 0.9rem;
	margin-top: 2px;
}
.team-card-quote {
	margin: 14px auto 0;
	max-width: 340px;
	color: #5c6d80;
}

/* ===== Reading page: filters + featured article ===== */
.article-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 40px;
}
.article-filter {
	font-family: 'Inter', sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	padding: 10px 20px;
	border-radius: 999px;
	border: none;
	background: rgba(109, 124, 103, 0.14);
	color: #1c2c40;
	cursor: pointer;
	transition: background 200ms ease, color 200ms ease;
}
.article-filter.is-active {
	background: #1c2c40;
	color: #ffffff;
}

.article-featured {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
	background: #faf8f4;
	border-radius: 24px;
	padding: 32px;
	box-sizing: border-box;
	color: inherit;
	text-decoration: none;
	transition: opacity 200ms ease;
}
.article-featured:hover {
	opacity: 0.85;
}
.article-featured-media {
	aspect-ratio: 4 / 3;
	border-radius: 16px;
	overflow: hidden;
}
.article-featured-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.article-featured-body h2 {
	margin: 8px 0 0;
}
.article-featured-body p:last-child {
	margin-top: 12px;
	color: #5c6d80;
}

.articles-grid .article-card .eyebrow {
	margin-top: 16px;
	margin-bottom: 0.4em;
}

@media (max-width: 780px) {
	.article-featured {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 900px) {
	.articles-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.articles-grid { grid-template-columns: 1fr; }
}

/* ===== Contact page ===== */
.contact-info-list {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin: 28px 0 32px;
}
.contact-label {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 12px;
	font-weight: 600;
	color: #5c6d80;
	margin-bottom: 0.35em;
}
.contact-value {
	font-size: 1.05rem;
	font-weight: 600;
	color: #1c2c40;
}
.contact-value a {
	color: inherit;
	text-decoration: none;
}

.contact-card {
	background: #ffffff;
	border-radius: 24px;
	border: 1px solid #e3e2dc;
	box-shadow: 0 8px 24px rgba(26,38,52,0.08);
	padding: 40px;
}
.contact-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}
.contact-form-field {
	margin-bottom: 20px;
}
.contact-form label {
	display: block;
	font-size: 0.9rem;
	font-weight: 500;
	color: #1c2c40;
	margin-bottom: 8px;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 14px 18px;
	border-radius: 12px;
	border: 1px solid #cdccc4;
	background: #ffffff;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: #1c2c40;
}
.contact-form textarea {
	min-height: 140px;
	resize: vertical;
	font-family: inherit;
}
.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: #9aa3ab;
}
.contact-form input:focus-visible,
.contact-form textarea:focus-visible {
	outline: none;
	box-shadow: 0 0 0 4px rgba(143,160,137,0.35);
}
.contact-submit {
	display: block;
	width: 100%;
	text-align: center;
	padding: 16px 24px;
	border-radius: 12px;
	border: none;
	background: #1c2c40;
	color: #ffffff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 16px;
	cursor: pointer;
	margin-top: 4px;
	transition: background 200ms ease;
}
.contact-submit:hover {
	background: #131f2e;
}

.consultation-submit {
	display: block;
	width: 100%;
	text-align: center;
	padding: 16px 24px;
	border-radius: 12px;
	border: none;
	background: #6d7c67;
	color: #ffffff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 16px;
	cursor: pointer;
	margin-top: 4px;
	transition: background 200ms ease;
}
.consultation-submit:hover {
	background: #566450;
}

.tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}
.tag-list .tag {
	display: inline-flex;
}

.faq-item {
	border-bottom: 1px solid #e3e2dc;
	padding: 22px 0;
}
.faq-item:first-child {
	border-top: 1px solid #e3e2dc;
}
.faq-item summary {
	cursor: pointer;
	font-weight: 600;
	font-size: 1.05rem;
	color: #1c2c40;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
}
.faq-item summary::-webkit-details-marker {
	display: none;
}
.faq-item summary::after {
	content: '+';
	flex-shrink: 0;
	font-size: 1.4rem;
	line-height: 1;
	color: #6d7c67;
	transition: transform 200ms ease;
}
.faq-item[open] summary::after {
	transform: rotate(45deg);
}
.faq-item p {
	margin: 14px 0 0;
	color: #5c6d80;
}

.social-icons-light .social-icon {
	color: #1c2c40;
	border-color: #cdccc4;
}
.social-icons-light .social-icon:hover {
	background: rgba(28,44,64,0.06);
	border-color: #1c2c40;
}
.contact-form-success {
	color: #566450;
	font-weight: 500;
}
.contact-form-error {
	color: #b3453d;
	font-size: 0.92rem;
	margin: -8px 0 16px;
}

@media (max-width: 780px) {
	.contact-form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

/* ===== Newsletter signup ===== */
.newsletter-lead {
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}
.newsletter-form {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 28px;
	flex-wrap: wrap;
}
.newsletter-input {
	width: 320px;
	max-width: 100%;
	padding: 14px 22px;
	border-radius: 999px;
	border: 1px solid #cdccc4;
	background: #ffffff;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: #1c2c40;
}
.newsletter-input::placeholder {
	color: #9aa3ab;
}
.newsletter-input:focus-visible {
	outline: none;
	box-shadow: 0 0 0 4px rgba(143,160,137,0.35);
}
.newsletter-submit {
	border: none;
}
/* Off-screen (not just shrunk/opacity-0) so browser autofill doesn't treat
   it as part of the visible field cluster and fill it in on real users. */
.newsletter-honeypot {
	position: absolute;
	top: -9999px;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	pointer-events: none;
}
.newsletter-success {
	color: #566450;
	font-weight: 500;
	margin-top: 28px;
}
.newsletter-error {
	color: #b3453d;
	text-align: center;
	margin: -8px 0 8px;
	font-size: 0.92rem;
}

.card-lead-fixed {
	min-height: 112px;
}

.card-checklist {
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.card-checklist li {
	position: relative;
	padding-left: 26px;
	color: #1c2c40;
	font-size: 0.92rem;
	font-weight: 500;
}
.card-checklist li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 0;
	color: #6d7c67;
	font-weight: 700;
}

/* ===== Cards ===== */
.card {
	background: #ffffff;
	border-radius: 24px;
	border: 1px solid #e3e2dc;
	box-shadow: 0 8px 24px rgba(26,38,52,0.08);
	padding: 32px;
	box-sizing: border-box;
	height: 100%;
}

/* Richer solution card (photo + body + meta table) for Lahendused. */
.sol {
	background: #ffffff;
	border: 1px solid #e3e2dc;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(26,38,52,0.08);
	height: 100%;
}
.sol-photo {
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.sol-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sol-body { padding: 1.7rem; }
.sol-body h3 { margin: 0 0 0.5em; }
.sol-meta {
	margin-top: 1rem;
	border-top: 1px solid #e3e2dc;
	padding-top: 1rem;
	font-size: 0.9rem;
}
.sol-meta .wp-block-group { justify-content: space-between; gap: 1rem; }
.sol-meta .k { color: #5c6d80; }
.sol-meta .v { font-weight: 600; color: #1c2c40; text-align: right; }

/* ===== Testimonial ===== */
.quote { max-width: 820px; margin: 0 auto; text-align: center; }
.quote blockquote {
	font-family: 'Inter Tight', 'Inter', sans-serif;
	font-size: clamp(1.4rem, 2.8vw, 2.1rem);
	color: #1c2c40;
	line-height: 1.35;
	margin: 0.4em 0 1em;
	font-style: normal;
}
.quote .who { color: #5c6d80; font-weight: 500; }

/* ===== CTA band ===== */
.cta-gradient {
	background: linear-gradient(135deg, #1c2c40, #131f2e) !important;
	overflow: hidden;
	border-radius: 24px;
	margin-bottom: 64px;
}

/* ===== Hero photo / decorative watermark ===== */
.hero-photo {
	margin: 0;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 20px 48px rgba(26, 38, 52, 0.12);
	height: 100%;
	min-height: 320px;
}
.hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.page-intro-band {
	background: rgba(143, 160, 137, 0.12);
	padding-top: 64px;
	padding-bottom: 48px;
}

.spiral-watermark {
	position: absolute;
	opacity: 0.08;
	pointer-events: none;
	width: 480px;
	height: 480px;
	right: -80px;
	bottom: -80px;
}
.spiral-watermark img { width: 100%; height: 100%; display: block; }

/* ===== Logo ===== */
/* !important is needed here: WordPress core ships
   .wp-block-site-logo.is-default-size img { width: 120px } which outranks a
   single-class selector like .senum-logo img on specificity alone. */
.senum-logo img {
	width: 320px !important;
	height: auto !important;
	max-width: none !important;
}

.footer-brand-col {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.footer-logo {
	width: 200px;
	margin: 0 auto 16px;
}
.footer-logo img {
	width: 100%;
	height: auto;
	display: block;
	/* the source logo is navy-on-transparent; this footer sits on a navy
	   background, so flip it to white rather than shipping a second export. */
	filter: brightness(0) invert(1);
}

.social-icons {
	display: flex;
	gap: 14px;
	margin-top: 16px;
}
.social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,0.3);
	color: #fff;
	transition: background 200ms ease, border-color 200ms ease;
}
.social-icon:hover {
	background: rgba(255,255,255,0.1);
	border-color: rgba(255,255,255,0.5);
}

/* ===== Footer links ===== */
/* Global links default to navy text (theme.json elements.link) — invisible
   against the footer's navy background, so scope footer links to white. */
.senum-footer a {
	color: #fff;
}
.senum-footer a:hover {
	color: #b7c2b0;
}
.footer-phone {
	text-decoration: none;
}

/* One-off exception, requested explicitly: this headline runs bigger than the
   theme's normal h1 preset (56px) — matches ELUN's old hero size exactly. */
.hero-headline-xl {
	font-size: clamp(2.1rem, 4.6vw, 3.6rem) !important;
	letter-spacing: -1.5px;
	max-width: 580px;
	margin-bottom: 32px;
}
.hero-headline-xl .hero-line-gap {
	display: block;
	margin-top: 0.25em;
}

.hero-lead {
	font-size: 1rem !important;
	line-height: 1.5;
}

/* One-off exception, requested explicitly: bigger than the theme's h1
   preset, matching the treatment already given to the hero headline. */
.approach-headline-xl {
	/* ~10% smaller than .hero-headline-xl at every width — a direct scale
	   of its clamp(), not the theme's fixed h1 preset. */
	font-size: clamp(1.9rem, 4.1vw, 3.25rem) !important;
	line-height: 1.1;
	letter-spacing: -1px;
}

/* ===== Header: 3-column grid so the nav is optically centered on the page,
   not just mathematically centered between two unevenly-sized siblings
   (a wide logo vs. a narrow CTA would otherwise pull it off-center). ===== */
.senum-header-grid {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	column-gap: 24px;
	max-width: 1240px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.senum-header-cell { min-width: 0; }
/* The logo cell has a fixed, compact height so it (not the oversized
   logo image) governs the grid row's height — the logo itself is
   allowed to overflow above/below via a larger, vertically centered
   image, keeping the bar thin while the mark still reads large. */
.senum-header-logo {
	justify-self: start;
	height: 85px;
	display: flex;
	align-items: center;
	overflow: visible;
}
.senum-header-nav { justify-self: center; }
.senum-header-cta {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 20px;
}

.senum-nav .wp-block-navigation__container {
	gap: 26px !important;
}
.senum-nav a.wp-block-navigation-item__content {
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: color 200ms ease;
}
.senum-nav a.wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--sage);
}

.senum-nav-muted a.wp-block-navigation-item__content {
	color: var(--wp--preset--color--slate) !important;
}
.senum-nav-muted a.wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--ink) !important;
}

.senum-header-cta .btn {
	padding: 12px 28px;
	white-space: nowrap;
	box-shadow: 0 1px 3px rgba(26,38,52,.06);
}

@media (max-width: 900px) {
	.senum-header-grid {
		grid-template-columns: 1fr auto;
	}
	.senum-header-cta { display: none; }
}

@media (max-width: 600px) {
	.senum-logo img {
		width: 190px !important;
	}
	.senum-header-logo {
		height: 52px;
	}
}

/* ===== WooCommerce ===== */

/* Reuse the existing .btn.btn-primary pill look for every WooCommerce
   button variant (classic shortcodes and the newer block markup both
   render on the storefront depending on template), rather than fighting
   WooCommerce's own boxy button defaults selector-by-selector. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-product-button__button,
.wc-block-components-product-sale-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	padding: 12px 26px;
	font-size: 16px;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	background: #1c2c40;
	color: #ffffff;
	transition: background 240ms cubic-bezier(0.4,0,0.2,1), color 240ms cubic-bezier(0.4,0,0.2,1);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-product-button__button:hover {
	background: #131f2e;
	color: #ffffff;
}

.woocommerce ul.products li.product .price,
.wc-block-components-product-price {
	font-family: 'Inter', sans-serif;
	color: #1c2c40;
	font-weight: 500;
}

.woocommerce ul.products li.product,
.wc-block-grid__product {
	border-radius: 24px;
}

/* Empty-catalog state: keep it visually calm instead of WooCommerce's
   default bare paragraph, consistent with the site's soft/minimal tone. */
.woocommerce-info {
	border-radius: 16px;
	border: 1px solid rgba(28, 44, 64, 0.12);
	background: #faf8f4;
	color: #1c2c40;
	padding: 1rem 1.5rem;
}

/* Temporary: e-pood link visible but not clickable while products are
   being entered. Remove the "senum-nav-disabled" / "senum-link-disabled"
   classes (header.html, footer.html) to reactivate. */
.senum-nav-disabled a.wp-block-navigation-item__content,
.senum-link-disabled {
	pointer-events: none;
	cursor: default;
}
