/**
 * Canvas Dropcap Component
 *
 * Styles for the inline dropcap element with multiple layouts:
 * Default (plain), Boxed, Bordered, Circle.
 *
 * Uses CSS custom properties for shared selector overrides.
 * Base `.dropcap` exists in theme style.css: these extend it.
 *
 * @package Canvas_Core
 * @since   1.0.0
 */

/* ── Base dropcap container ─────────────────────────────────────────── */
.cnvs-dropcap {
	--cnvs-dropcap-font-size: 42px;
	--cnvs-dropcap-line-height: 1;
	--cnvs-dropcap-color: inherit;
	--cnvs-dropcap-margin: 0 10px 0 0;
	--cnvs-dropcap-bg: transparent;
	--cnvs-dropcap-border-color: transparent;
	--cnvs-dropcap-border-width: 2px;
	--cnvs-dropcap-border-radius: 0;
	--cnvs-dropcap-padding: 0;
	--cnvs-dropcap-size: auto;
}

.cnvs-dropcap .cnvs-dropcap-letter {
	float: left;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--cnvs-dropcap-font-size);
	line-height: var(--cnvs-dropcap-line-height);
	color: var(--cnvs-dropcap-color);
	margin: var(--cnvs-dropcap-margin);
	text-transform: uppercase;
	background-color: var(--cnvs-dropcap-bg);
	border-color: var(--cnvs-dropcap-border-color);
	border-style: solid;
	border-width: 0;
	border-radius: var(--cnvs-dropcap-border-radius);
	padding: var(--cnvs-dropcap-padding);
	width: var(--cnvs-dropcap-size);
	height: var(--cnvs-dropcap-size);
	min-width: var(--cnvs-dropcap-size);
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

/* ── Style: Default (plain) ─────────────────────────────────────────── */
.cnvs-dropcap--default .cnvs-dropcap-letter {
	background-color: transparent;
	border-width: 0;
	padding: 0;
	width: auto;
	height: auto;
	min-width: 0;
}

/* ── Style: Boxed ───────────────────────────────────────────────────── */
.cnvs-dropcap--boxed {
	--cnvs-dropcap-bg: #444;
	--cnvs-dropcap-color: #fff;
	--cnvs-dropcap-padding: 8px 12px;
	--cnvs-dropcap-border-radius: 4px;
}

.cnvs-dropcap--boxed .cnvs-dropcap-letter {
	background-color: var(--cnvs-dropcap-bg);
	border-width: 0;
}

/* ── Style: Bordered ────────────────────────────────────────────────── */
.cnvs-dropcap--bordered {
	--cnvs-dropcap-border-color: #444;
	--cnvs-dropcap-padding: 8px 12px;
	--cnvs-dropcap-border-radius: 4px;
}

.cnvs-dropcap--bordered .cnvs-dropcap-letter {
	background-color: transparent;
	border-width: var(--cnvs-dropcap-border-width);
}

/* ── Style: Circle ──────────────────────────────────────────────────── */
.cnvs-dropcap--circle {
	--cnvs-dropcap-bg: #444;
	--cnvs-dropcap-color: #fff;
	--cnvs-dropcap-size: 56px;
	--cnvs-dropcap-border-radius: 50%;
	--cnvs-dropcap-padding: 0;
}

.cnvs-dropcap--circle .cnvs-dropcap-letter {
	background-color: var(--cnvs-dropcap-bg);
	border-width: 0;
}

/* ── Style: Circle Bordered ─────────────────────────────────────────── */
.cnvs-dropcap--circle-bordered {
	--cnvs-dropcap-border-color: #444;
	--cnvs-dropcap-size: 56px;
	--cnvs-dropcap-border-radius: 50%;
	--cnvs-dropcap-padding: 0;
}

.cnvs-dropcap--circle-bordered .cnvs-dropcap-letter {
	background-color: transparent;
	border-width: var(--cnvs-dropcap-border-width);
}

/* ── Position: float right ──────────────────────────────────────────── */
.cnvs-dropcap--right .cnvs-dropcap-letter {
	float: right;
	margin: 0 0 0 10px;
}

/* ── Clearfix ───────────────────────────────────────────────────────── */
.cnvs-dropcap::after {
	content: '';
	display: table;
	clear: both;
}

/* ═══════════════════════════════════════════════════════════════════════
   Typographic dropcap variants (system = theme)

   The base `.dropcap` lives in the theme stylesheet; these are the styled
   initials that build on it: an outlined, a filled, a badged and a light
   secondary-font initial. Each is a self-contained float, so the paragraph
   copy wraps around it exactly as it does around the plain `.dropcap`.
   Colours come from the theme's own tokens, so they follow the site palette.
   ═══════════════════════════════════════════════════════════════════════ */
.dropcap-bordered,
.dropcap-bg,
.dropcap-circle,
.dropcap-outline {
	float: left;
	line-height: 1;
	text-transform: uppercase;
}

.dropcap-bordered {
	font-size: 3rem;
	margin: 0.15rem 0.75rem 0 0;
	padding: 0.25rem 0.75rem;
	border: 2px solid var(--cnvs-themecolor);
	border-radius: 0.25rem;
	color: var(--cnvs-themecolor);
	font-weight: 600;
}

.dropcap-bg {
	font-size: 2.5rem;
	margin: 0.15rem 0.75rem 0 0;
	padding: 0.5rem 0.75rem;
	background: var(--cnvs-themecolor);
	color: #fff;
	border-radius: 0.5rem;
	font-weight: 700;
}

.dropcap-circle {
	font-size: 2rem;
	width: 3.25rem;
	height: 3.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0.15rem 0.75rem 0 0;
	background: var(--bs-dark);
	color: #fff;
	border-radius: 50%;
	font-weight: 700;
}

.dropcap-outline {
	font-size: 3.5rem;
	margin: 0 0.5rem 0 0;
	color: var(--cnvs-themecolor);
	font-weight: 300;
	font-family: var(--cnvs-secondary-font);
}
