/*
Theme Name: Kwashly
Theme URI: https://kwashly.com/theme
Author: Kwashly Labs, Lda.
Author URI: https://kwashly.com/about/
Description: Marketing theme for Kwashly — the Travel Laundry Finder. Ships a conversion-focused front page for the browser extension and trip laundry planner, legal document templates, self-hosted variable fonts, structured data and a full favicon set. No third-party font or tracker requests.
Version: 1.2.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kwashly
Tags: landing-page, one-column, custom-logo, custom-menu, featured-images, translation-ready, accessibility-ready, block-styles
*/

/* -------------------------------------------------------------------------
   1. Design tokens
   ---------------------------------------------------------------------- */
:root {
	--kw-ink: #0b1437;
	--kw-ink-2: #1b2a66;
	--kw-ink-60: rgba(11, 20, 55, 0.62);
	--kw-ink-40: rgba(11, 20, 55, 0.4);
	--kw-ink-12: rgba(11, 20, 55, 0.12);
	--kw-ink-06: rgba(11, 20, 55, 0.06);
	--kw-blue: #3b5bff;
	--kw-blue-600: #2540e0;
	--kw-blue-700: #1b2fae;
	--kw-mint: #12b69a;
	--kw-mint-600: #0d9b83;
	--kw-rose: #e2456b;
	--kw-amber: #f59f2b;
	--kw-blue-soft: #dce6ff;
	--kw-mint-soft: #d7f5ee;
	--kw-pink-soft: #ffd9e6;
	--kw-sand: #ffebcf;
	--kw-cream: #fbf7f1;
	--kw-white: #ffffff;
	--kw-line: #e7e3dc;
	--kw-line-strong: #d6d1c7;

	--kw-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--kw-font-display: 'Sora', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--kw-font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;

	--kw-wrap: 1152px;
	--kw-wrap-narrow: 760px;
	--kw-gutter: clamp(20px, 4vw, 40px);
	--kw-section: clamp(64px, 8vw, 128px);

	--kw-radius-sm: 10px;
	--kw-radius: 16px;
	--kw-radius-lg: 24px;
	--kw-radius-xl: 34px;
	--kw-pill: 999px;

	--kw-shadow-sm: 0 1px 2px rgba(11, 20, 55, 0.06), 0 2px 8px rgba(11, 20, 55, 0.05);
	--kw-shadow: 0 2px 6px rgba(11, 20, 55, 0.05), 0 14px 34px rgba(11, 20, 55, 0.09);
	--kw-shadow-lg: 0 4px 10px rgba(11, 20, 55, 0.06), 0 30px 70px rgba(11, 20, 55, 0.16);
	--kw-focus: 0 0 0 3px #fff, 0 0 0 6px var(--kw-blue);
}

/* -------------------------------------------------------------------------
   2. Reset & base
   ---------------------------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body {
	margin: 0;
	background: var(--kw-white);
	color: var(--kw-ink);
	font-family: var(--kw-font-sans);
	font-size: 17px;
	line-height: 1.62;
	font-feature-settings: 'cv05' 1, 'ss01' 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5 {
	font-family: var(--kw-font-display);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.026em;
	margin: 0 0 0.6em;
	text-wrap: balance;
}

h1 {
	font-size: clamp(2.45rem, 5.4vw, 4.1rem);
	font-weight: 800;
}

h2 {
	font-size: clamp(1.9rem, 3.6vw, 2.85rem);
}

h3 {
	font-size: clamp(1.25rem, 2vw, 1.5rem);
}

h4 {
	font-size: 1.1rem;
}

p {
	margin: 0 0 1.1em;
	text-wrap: pretty;
}

a {
	color: var(--kw-blue-600);
	text-decoration-color: rgba(59, 91, 255, 0.35);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
	transition: color 0.16s ease, text-decoration-color 0.16s ease;
}

a:hover {
	color: var(--kw-blue-700);
	text-decoration-color: currentColor;
}

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

ul,
ol {
	padding-left: 1.2em;
}

li + li {
	margin-top: 0.35em;
}

strong {
	font-weight: 650;
}

table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.94rem;
}

hr {
	border: 0;
	border-top: 1px solid var(--kw-line);
	margin: 2.5rem 0;
}

:focus-visible {
	outline: none;
	box-shadow: var(--kw-focus);
	border-radius: 6px;
}

::selection {
	background: var(--kw-blue-soft);
	color: var(--kw-ink);
}

/* Accessibility helpers */
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.kw-skip-link {
	position: absolute;
	left: 50%;
	top: 8px;
	transform: translate(-50%, -160%);
	z-index: 200;
	background: var(--kw-ink);
	color: #fff;
	padding: 12px 22px;
	border-radius: var(--kw-pill);
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	transition: transform 0.18s ease;
}

.kw-skip-link:focus {
	transform: translate(-50%, 0);
	color: #fff;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}
