/*
 * LC Médical — Comptoir : fonts, reset over Blocksy, typography, links, focus.
 * Loaded after Blocksy's own stylesheets and tokens.css.
 */

/* ---------- Self-hosted fonts (fontsource, woff2). latin-ext only downloads when a glyph needs it. ---------- */
@font-face {
	font-family: 'Barlow Semi Condensed';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/barlow-semi-condensed-latin-ext-600-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Barlow Semi Condensed';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/barlow-semi-condensed-latin-600-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Barlow Semi Condensed';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/barlow-semi-condensed-latin-ext-700-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Barlow Semi Condensed';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/barlow-semi-condensed-latin-700-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Atkinson Hyperlegible Next';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/atkinson-hyperlegible-next-latin-ext-400-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Atkinson Hyperlegible Next';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Atkinson Hyperlegible Next';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/atkinson-hyperlegible-next-latin-ext-500-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Atkinson Hyperlegible Next';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/atkinson-hyperlegible-next-latin-500-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Atkinson Hyperlegible Next';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/atkinson-hyperlegible-next-latin-ext-700-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Atkinson Hyperlegible Next';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Page ground ---------- */
html {
	scroll-behavior: smooth;
	scroll-padding-block-start: calc(var(--lc-sticky-top) + var(--lc-s-4));
	font-family: var(--lc-font-text);
}

/* The [hidden] attribute always wins over component display rules. */
[hidden] {
	display: none !important;
}

body {
	font-family: var(--lc-font-text);
	font-size: var(--lc-fs-base);
	font-weight: 400;
	line-height: var(--lc-lh-body);
	color: var(--lc-ink);
	background-color: var(--lc-shelf);
	text-rendering: optimizeLegibility;
	font-kerning: normal;
}

body {
	overflow-x: clip; /* Blocksy sets hidden, which would turn body into a scroll container and break the sticky header. */
}

body.lc-lock,
html.lc-lock {
	overflow: hidden;
}

/* Room for the fixed mobile tab bar. */
@media (max-width: 999.98px) {
	body.lc-has-tabbar {
		padding-block-end: calc(var(--lc-tabbar-h) + var(--lc-safe-bottom));
	}
}

/* Anchors and focused fields are never left under the fixed tab bar. */
@media (max-width: 999.98px) {
	html {
		scroll-padding-block-end: calc(var(--lc-tabbar-h) + var(--lc-safe-bottom) + var(--lc-s-3));
	}
}

/* ---------- Headings: label lettering, sentence case, balanced ---------- */
:is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6),
.lc-display {
	font-family: var(--lc-font-label);
	font-weight: 700;
	line-height: var(--lc-lh-head);
	letter-spacing: -0.012em;
	color: var(--lc-ink);
	text-wrap: balance;
	text-transform: none;
}

:is(h1, .h1) {
	--theme-font-size: var(--lc-fs-h1);
	--theme-line-height: var(--lc-lh-tight);
	font-size: var(--lc-fs-h1);
	line-height: var(--lc-lh-tight);
	letter-spacing: -0.02em;
}

:is(h2, .h2) {
	--theme-font-size: var(--lc-fs-h2);
	--theme-line-height: var(--lc-lh-head);
	font-size: var(--lc-fs-h2);
	line-height: var(--lc-lh-head);
	letter-spacing: -0.016em;
}

:is(h3, .h3) {
	--theme-font-size: var(--lc-fs-h3);
	--theme-line-height: 1.15;
	font-size: var(--lc-fs-h3);
	line-height: 1.15;
}

:is(h4, .h4) {
	--theme-font-size: var(--lc-fs-h4);
	--theme-line-height: 1.2;
	font-size: var(--lc-fs-h4);
	line-height: 1.2;
}

:is(h5, .h5) {
	--theme-font-size: var(--lc-fs-h5);
	--theme-line-height: 1.25;
	font-size: var(--lc-fs-h5);
	line-height: 1.25;
}

:is(h6, .h6) {
	--theme-font-size: var(--lc-fs-sm);
	--theme-line-height: 1.3;
	font-size: var(--lc-fs-sm);
	line-height: 1.3;
}

/* More air above a heading than below it. */
:where(.entry-content, .lc-prose) > :where(h2, h3, h4) {
	margin-block: 1.8em 0.5em;
}

:where(p, li, dd, figcaption) {
	text-wrap: pretty;
}

.lc-prose {
	max-inline-size: var(--lc-measure);
}

small,
.lc-small {
	font-size: var(--lc-fs-sm);
}

strong,
b {
	font-weight: 700;
}

/* ---------- Links ---------- */
a {
	color: var(--lc-link);
	text-decoration-line: underline;
	text-decoration-color: color-mix(in srgb, currentColor 38%, transparent);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.22em;
	transition: color var(--lc-dur-fast) linear, text-decoration-color var(--lc-dur-fast) linear;
}

a:hover {
	color: var(--lc-link-hover);
	text-decoration-color: currentColor;
	text-decoration-thickness: 0.12em;
}

/* Chrome links (nav, buttons, cards) carry their own affordance: no underline. */
:where(.lc-btn, .lc-header, .lc-footer, .lc-tabbar, .lc-mega, .lc-dialog, .lc-label, .lc-drawer, .lc-chip, .button, .wp-element-button) a,
a:where(.lc-btn, .lc-label, .lc-chip, .button, .wp-element-button, .lc-drawer__front) {
	text-decoration-line: none;
}

/* ---------- Focus: a two-tone ring that reads on wall, paper and lacquer ---------- */
*,
*::before,
*::after {
	outline: none;
}

:where(a, button, input, select, textarea, summary, [tabindex], [role='button']):focus {
	outline: none;
}

:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex='-1']), [role='button'], label.lc-choice):focus-visible {
	outline: 3px solid var(--lc-focus);
	outline-offset: 3px;
	box-shadow: 0 0 0 3px var(--lc-focus-halo);
	border-radius: max(var(--lc-r-label), 2px);
	transition: none;
}

/* Controls that draw their own radius keep it. */
:is(.lc-btn, .button, .wp-element-button, .lc-search__go, .lc-drawer__front, .lc-pill, .lc-chip):focus-visible {
	border-radius: var(--lc-r-field);
}

main:focus,
#main:focus {
	outline: none;
}

/* ---------- Media, tables, rules ---------- */
img,
svg,
video {
	max-inline-size: 100%;
}

img {
	block-size: auto;
}

hr {
	block-size: 1px;
	border: 0;
	background: var(--lc-line);
	margin-block: var(--lc-s-6);
}

table {
	font-variant-numeric: tabular-nums lining-nums;
}

/* Phone numbers, hours, years and prices: the one numeral voice is `.lc-num` / `.lc-phone` (tokens.css). */
.lc-phone {
	letter-spacing: 0.03em;
}

blockquote {
	margin-inline: 0;
	padding-inline-start: var(--lc-s-5);
	border-inline-start: 1px solid var(--lc-line-strong);
	font-size: var(--lc-fs-md);
	color: var(--lc-ink-2);
}

/* ---------- Blocksy leftovers we do not want ---------- */
.ct-back-to-top,
.ct-drawer-canvas {
	display: none !important;
}

.skip-link {
	position: absolute;
	inset-block-start: var(--lc-s-2);
	inset-inline-start: var(--lc-s-2);
	z-index: 1000;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	block-size: auto;
	inline-size: auto;
	padding: var(--lc-s-3) var(--lc-s-5);
	background: var(--lc-paper);
	color: var(--lc-ink);
	font-family: var(--lc-font-label);
	font-weight: 700;
	border: 2px solid var(--lc-ink);
	border-radius: var(--lc-r-holder);
	box-shadow: var(--lc-shadow-panel);
	text-decoration: none;
}

/* ---------- Print ---------- */
@media print {
	.lc-header,
	.lc-footer,
	.lc-tabbar,
	.lc-mega,
	.lc-dialog {
		display: none !important;
	}

	body {
		background: #fff;
	}
}
