/* ==========================================================================
   North Sea base — reset + typography + base elements.
   Replaces what the old Worktop parent provided. Token-driven; no brand hex.
   Component styles live in fcs.css.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; overflow-x: clip; }

body {
	font-family: var(--ns-body-font, 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif);
	font-size: 17px;
	line-height: 1.65;
	color: var(--nsc-text, #aeb9c6);
	background: var(--nsc-bg, var(--nsc-white, #0b1420));
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

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

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ns-head-font, 'Sora', system-ui, sans-serif);
	color: var(--nsc-heading, #f4f7fa);
	line-height: 1.12;
	font-weight: 700;
	letter-spacing: -.02em;
	text-wrap: balance;
}
h1 { font-size: clamp(34px, 6.4vw, 68px); }
h2 { font-size: clamp(28px, 4.2vw, 44px); }
h3 { font-size: 21px; }

p, ul, ol, dl, blockquote, figure, table, pre { margin: 0 0 1em; }
p:last-child, ul:last-child, ol:last-child { margin-bottom: 0; }

a { color: var(--nsc-primary, #B22D38); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--nsc-primary-dark, #8E242D); }

ul, ol { padding-left: 1.4em; }
li { margin-bottom: .35em; }

blockquote { padding-left: 1.1em; border-left: 3px solid var(--nsc-primary, #B22D38); color: var(--nsc-text); }

hr { border: 0; border-top: 1px solid var(--nsc-border, #e2e5ea); margin: 2em 0; }

table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--nsc-border, #e2e5ea); }
th { font-weight: 700; color: var(--nsc-heading); }

code, kbd, pre, samp { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: .92em; }
pre { overflow-x: auto; background: var(--nsc-bg-light, #f5f6f8); padding: 16px; border-radius: 8px; }

button, input, select, textarea { font: inherit; color: inherit; }

/* Accessibility: skip link + focus + WP screen-reader-text */
:focus-visible { outline: 3px solid var(--nsc-navy, #2c3e50); outline-offset: 2px; }
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 1000; background: var(--nsc-navy, #2c3e50);
	color: #fff; padding: 12px 18px; border-radius: 0 0 8px 0; font-weight: 700;
}
.skip-link:focus { left: 0; color: #fff; }

/* WordPress core content alignment (for the block editor / classic content) */
.alignleft { float: left; margin: 0 1.4em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.4em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: var(--nsc-secondary); margin-top: 6px; }
.wp-block-image figcaption { font-size: 13px; color: var(--nsc-secondary); }

/* Admin bar spacing when logged in */
body.admin-bar { /* WP handles the 32/46px offset; nothing needed for static header */ }

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