/**
 * Paramaribo Collection - Base layer
 *
 * Reset, typography and global element defaults for the editorial redesign.
 *
 * SCOPING: everything is nested under `.pc-redesign`, a body class added by
 * the child theme only on templates that have been rebuilt (see
 * pc_body_class() in functions.php). This lets the redesign land section by
 * section without unstyling the pages still running Martfury's templates.
 * Once every section is rebuilt the scope can be dropped and Martfury's
 * stylesheet dequeued.
 */

/* ---- Reset ------------------------------------------------------------ */

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

/* The parent theme and its addons apply radii, shadows and gradients very
   broadly. The look depends on none of them surviving. */
.pc-redesign :where(a, button, input, select, textarea, img, div, span, section, article, li, ul) {
	border-radius: var(--pc-radius);
	box-shadow: var(--pc-shadow);
	text-shadow: none;
}

.pc-redesign {
	margin: 0;
	background-color: var(--pc-bg);
	color: var(--pc-ink);
	font-family: var(--pc-font);
	font-size: var(--pc-fs-base);
	font-weight: var(--pc-fw-regular);
	line-height: var(--pc-lh-base);
	letter-spacing: var(--pc-track-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* ---- Typography ------------------------------------------------------- */

.pc-redesign h1,
.pc-redesign h2,
.pc-redesign h3,
.pc-redesign h4,
.pc-redesign h5,
.pc-redesign h6 {
	margin: 0 0 var(--pc-sp-4);
	color: var(--pc-ink);
	font-family: var(--pc-font);
	font-weight: var(--pc-fw-regular);
	line-height: var(--pc-lh-tight);
	letter-spacing: var(--pc-track-head);
	text-transform: uppercase;
}

.pc-redesign h1 { font-size: var(--pc-fs-xl); }
.pc-redesign h2 { font-size: var(--pc-fs-lg); }
.pc-redesign h3 { font-size: var(--pc-fs-md); }
.pc-redesign h4,
.pc-redesign h5,
.pc-redesign h6 { font-size: var(--pc-fs-base); }

@media (min-width: 768px) {
	.pc-redesign h1 { font-size: var(--pc-fs-2xl); }
}

.pc-redesign p {
	margin: 0 0 var(--pc-sp-4);
}

/* Prose blocks (policy pages, product description) keep a readable measure. */
.pc-redesign .pc-prose {
	max-width: var(--pc-max-text);
	color: var(--pc-ink-soft);
	line-height: var(--pc-lh-base);
}

.pc-redesign .pc-prose :is(h2, h3, h4) {
	margin-top: var(--pc-sp-6);
}

/* ---- Links ------------------------------------------------------------ */

.pc-redesign a {
	color: inherit;
	text-decoration: none;
	transition: opacity var(--pc-dur-fast) var(--pc-ease);
}

.pc-redesign a:hover {
	opacity: 0.6;
}

/* Underline only where a link sits inside running text. */
.pc-redesign .pc-prose a,
.pc-redesign .pc-link-underline {
	text-decoration: underline;
	text-underline-offset: 0.25em;
	text-decoration-thickness: 1px;
}

/* ---- Focus ------------------------------------------------------------ */

.pc-redesign :focus-visible {
	outline: 1px solid var(--pc-focus);
	outline-offset: 2px;
}

.pc-redesign :focus:not(:focus-visible) {
	outline: none;
}

.pc-redesign .pc-skip-link {
	position: absolute;
	left: -9999px;
	z-index: var(--pc-z-overlay);
	padding: var(--pc-sp-3) var(--pc-sp-4);
	background: var(--pc-ink);
	color: var(--pc-accent-ink);
	font-size: var(--pc-fs-xs);
	letter-spacing: var(--pc-track-nav);
	text-transform: uppercase;
}

.pc-redesign .pc-skip-link:focus {
	left: var(--pc-sp-4);
	top: var(--pc-sp-4);
	opacity: 1;
}

/* ---- Media ------------------------------------------------------------ */

.pc-redesign img,
.pc-redesign picture,
.pc-redesign video {
	display: block;
	max-width: 100%;
	height: auto;
}

/* ---- Forms and buttons ------------------------------------------------ */

.pc-redesign :is(input, select, textarea, button) {
	font: inherit;
	letter-spacing: inherit;
	color: inherit;
}

.pc-redesign :is(input[type="text"], input[type="email"], input[type="tel"],
	input[type="password"], input[type="search"], input[type="number"],
	select, textarea) {
	width: 100%;
	padding: var(--pc-sp-3) 0;
	border: 0;
	border-bottom: 1px solid var(--pc-line);
	background: transparent;
	font-size: var(--pc-fs-base);
	appearance: none;
	transition: border-color var(--pc-dur-fast) var(--pc-ease);
}

.pc-redesign :is(input, select, textarea):focus {
	border-bottom-color: var(--pc-line-strong);
	outline: none;
}

.pc-redesign ::placeholder {
	color: var(--pc-ink-muted);
	opacity: 1;
}

.pc-redesign .pc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 var(--pc-sp-6);
	border: 1px solid var(--pc-ink);
	background: var(--pc-ink);
	color: var(--pc-accent-ink);
	font-size: var(--pc-fs-xs);
	font-weight: var(--pc-fw-medium);
	letter-spacing: var(--pc-track-nav);
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--pc-dur) var(--pc-ease),
		color var(--pc-dur) var(--pc-ease);
}

.pc-redesign .pc-btn:hover {
	background: var(--pc-white);
	color: var(--pc-ink);
	opacity: 1;
}

.pc-redesign .pc-btn--ghost {
	background: transparent;
	color: var(--pc-ink);
}

.pc-redesign .pc-btn--ghost:hover {
	background: var(--pc-ink);
	color: var(--pc-accent-ink);
}

.pc-redesign .pc-btn--block {
	width: 100%;
}

.pc-redesign .pc-btn:disabled,
.pc-redesign .pc-btn[aria-disabled="true"] {
	border-color: var(--pc-line);
	background: var(--pc-line);
	color: var(--pc-ink-muted);
	cursor: not-allowed;
}

/* ---- Layout primitives ------------------------------------------------ */

/*
 * Contain Martfury's floated catalog columns so main keeps height and the
 * footer stays below the product grid (not under it at the top of the page).
 */
.pc-redesign .pc-main {
	display: flow-root;
}

.pc-redesign .pc-footer {
	clear: both;
	position: relative;
	z-index: 1;
}

.pc-redesign .pc-container {
	width: 100%;
	max-width: var(--pc-max);
	margin-inline: auto;
	padding-inline: var(--pc-gutter);
}

/* Full-bleed: escapes any container without horizontal overflow. */
.pc-redesign .pc-bleed {
	width: 100%;
	margin-inline: 0;
	padding-inline: 0;
	max-width: none;
}

.pc-redesign .pc-section {
	padding-block: var(--pc-sp-7);
}

@media (min-width: 768px) {
	.pc-redesign .pc-section {
		padding-block: var(--pc-sp-9);
	}
}

.pc-redesign .pc-section--alt {
	background: var(--pc-bg-alt);
}

.pc-redesign .pc-section__title {
	margin-bottom: var(--pc-sp-5);
	font-size: var(--pc-fs-sm);
	letter-spacing: var(--pc-track-nav);
	text-align: center;
	text-transform: uppercase;
}

/* Eyebrow / overline label. */
.pc-redesign .pc-eyebrow {
	display: block;
	margin-bottom: var(--pc-sp-2);
	color: var(--pc-ink-muted);
	font-size: var(--pc-fs-xs);
	letter-spacing: var(--pc-track-nav);
	text-transform: uppercase;
}

.pc-redesign .pc-rule {
	height: 1px;
	margin: 0;
	border: 0;
	background: var(--pc-line);
}

/* ---- Lists ------------------------------------------------------------ */

.pc-redesign .pc-list-reset {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ---- Accessibility helpers -------------------------------------------- */

.pc-redesign .pc-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

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