/*
 * Base: document reset, typography defaults and the site-wide rules the old build applied to every page.
 * Values are copied from what the Elementor build rendered so pages stay pixel-identical.
 */

/* Brand colours and motion, shared by every stylesheet. */
:root {
	--sm-burgundy: #76232F;
	--sm-crimson: #91051A;
	--sm-rose: #C34154;
	--sm-rose-light: #E07A8A;
	--sm-ink: #1F1E1C;
	--sm-charcoal: #26292D;
	--sm-text: #313131;
	--sm-muted: #5E5E5E;
	--sm-paper: #F5F5F5;
	--sm-line: #DADADA;
	/* Running text: 18px on a 31px line (October 2026). */
	--sm-body-size: 18px;
	--sm-body-leading: 1.72;
	--sm-focus: #C34154;
	--sm-ease-out: cubic-bezier(.19, 1, .22, 1);
}

html { line-height: 1.15; -webkit-text-size-adjust: 100%; }
*, :after, :before { box-sizing: border-box; }
body {
	margin: 0;
	font-family: "Inter Tight", Sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #333;
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 { margin-block-start: .5rem; margin-block-end: 1rem; font-family: "Prata", Sans-serif; font-weight: 500; line-height: 1.2; color: inherit; }
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }
p { margin-block-start: 0; margin-block-end: .9rem; }
hr { box-sizing: content-box; height: 0; overflow: visible; }
pre { font-family: monospace, monospace; font-size: 1em; white-space: pre-wrap; }
/* The old kit coloured every link, hover included, and set its font. */
a { background-color: transparent; text-decoration: none; color: #C34154; font-family: "Inter Tight", Sans-serif; }
a:not([href]):not([tabindex]), a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover { color: inherit; text-decoration: none; }
a:not([href]):not([tabindex]):focus { outline: 0; }
/* One clear focus ring for keyboard users everywhere (dark areas set --sm-focus to the lighter rose). */
.page-hero, .home-hero, .home-banner, .entry-hero { --sm-focus: var(--sm-rose-light); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--sm-focus); outline-offset: 3px; }
abbr[title] { border-block-end: none; text-decoration: underline dotted; }
b, strong { font-weight: bolder; }
code, kbd, samp { font-family: monospace, monospace; font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -.25em; }
sup { top: -.5em; }
img { border-style: none; height: auto; max-width: 100%; }
details { display: block; }
summary { display: list-item; }
figcaption { font-size: 16px; color: #333; line-height: 1.4; font-style: italic; font-weight: 400; }
[hidden], template { display: none; }
label { display: inline-block; line-height: 1; vertical-align: middle; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 1rem; line-height: 1.5; margin: 0; }
input[type=date], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=url], select, textarea { width: 100%; border: 1px solid #666; border-radius: 3px; padding: .5rem 1rem; transition: all .3s; }
input[type=date]:focus, input[type=email]:focus, input[type=number]:focus, input[type=password]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=url]:focus, select:focus, textarea:focus { border-color: #333; }
button, input { overflow: visible; }
button, select { text-transform: none; }
[type=button], [type=reset], [type=submit], button { width: auto; -webkit-appearance: button; }
[type=button], [type=submit], button { display: inline-block; font-weight: 400; color: #c36; text-align: center; white-space: nowrap; user-select: none; background-color: transparent; border: 1px solid #c36; padding: .5rem 1rem; font-size: 1rem; border-radius: 3px; transition: all .3s; }
[type=button]:focus:not(:focus-visible), [type=submit]:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
[type=button]:not(:disabled), [type=submit]:not(:disabled), button:not(:disabled) { cursor: pointer; }
fieldset { padding: .35em .75em .625em; }
legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; padding: 0; white-space: normal; }
progress { vertical-align: baseline; }
textarea { overflow: auto; resize: vertical; }
[type=checkbox], [type=radio] { box-sizing: border-box; padding: 0; }
[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto; }
[type=search] { -webkit-appearance: textfield; outline-offset: -2px; }
[type=search]::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
select { display: block; }
table { background-color: transparent; width: 100%; margin-block-end: 15px; font-size: .9em; border-spacing: 0; border-collapse: collapse; }
table td, table th { padding: 15px; line-height: 1.5; vertical-align: top; border: 1px solid hsla(0, 0%, 50.2%, .5019607843); }
table th { font-weight: 700; }
table tfoot th, table thead th { font-size: 1em; }
table caption + thead tr:first-child td, table caption + thead tr:first-child th, table colgroup + thead tr:first-child td, table colgroup + thead tr:first-child th, table thead:first-child tr:first-child td, table thead:first-child tr:first-child th { border-block-start: 1px solid hsla(0, 0%, 50.2%, .5019607843); }
table tbody > tr:nth-child(odd) > td, table tbody > tr:nth-child(odd) > th { background-color: hsla(0, 0%, 50.2%, .0705882353); }
table tbody tr:hover > td, table tbody tr:hover > th { background-color: hsla(0, 0%, 50.2%, .1019607843); }
table tbody + tbody { border-block-start: 2px solid hsla(0, 0%, 50.2%, .5019607843); }
@media (max-width: 767px) {
	table table { font-size: .8em; }
	table table td, table table th { padding: 7px; line-height: 1.3; }
	table table th { font-weight: 400; }
}
dd, dl, dt, li, ol, ul { margin-block-start: 0; margin-block-end: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; }

.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); height: 1px; overflow: hidden; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text, .screen-reader-text span, .ui-helper-hidden-accessible { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; top: -10000em; width: 1px; clip: rect(0, 0, 0, 0); border: 0; }
.screen-reader-text:focus { background-color: #eee; clip: auto !important; clip-path: none; color: #333; display: block; font-size: 1rem; height: auto; left: 5px; line-height: normal; padding: 12px 24px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
.alignright { float: right; margin-left: 1rem; }
.alignleft { float: left; margin-right: 1rem; }
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; }
.wp-caption { margin-block-end: 1.25rem; max-width: 100%; }
.wp-caption img { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text { margin: 0; }

/* Designed areas: the old builder's reset inside every designed region. */
.designed img { border: none; border-radius: 0; box-shadow: none; height: auto; max-width: 100%; }
.designed a { box-shadow: none; text-decoration: none; }
.designed hr { background-color: transparent; margin: 0; }
.designed iframe, .designed video, .designed embed, .designed object { border: none; line-height: 1; margin: 0; max-width: 100%; width: 100%; }

/* Icons: the same icon fonts the old build used, self-hosted and cut down to the glyphs used here (about 2KB
   each instead of 181KB together). After adding an icon rule to any stylesheet, run tools/subset-icons.mjs. */
@font-face { font-family: "Font Awesome 5 Free"; font-style: normal; font-weight: 900; font-display: block; src: url(../fonts/fa-solid-900.woff2) format("woff2"); }
@font-face { font-family: eicons; src: url(../fonts/eicons.woff2) format("woff2"); font-weight: 400; font-style: normal; }
.fas { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; display: inline-block; font-style: normal; font-variant: normal; text-rendering: auto; line-height: 1; font-family: "Font Awesome 5 Free"; font-weight: 900; }
.fa-long-arrow-alt-left:before { content: "\f30a"; }
.fa-long-arrow-alt-right:before { content: "\f30b"; }
.fa-map-pin:before { content: "\f276"; }
.fa-search:before { content: "\f002"; }
.fa-times:before { content: "\f00d"; }
.fa-sliders-h:before { content: "\f1de"; }
.fa-chevron-down:before { content: "\f078"; }
.fa-play:before { content: "\f04b"; }
.fa-pause:before { content: "\f04c"; }
.fa-undo-alt:before { content: "\f2ea"; }
.fa-redo-alt:before { content: "\f2f9"; }
.fa-share-alt:before { content: "\f1e0"; }
.fa-images:before { content: "\f302"; }
.fa-play-circle:before { content: "\f144"; }
.fa-newspaper:before { content: "\f1ea"; }
.fa-expand:before { content: "\f065"; }
.fa-chevron-left:before { content: "\f053"; }
.fa-chevron-right:before { content: "\f054"; }
.fa-search-plus:before { content: "\f00e"; }
.fa-search-minus:before { content: "\f010"; }
.fa-calendar-alt:before { content: "\f073"; }
.fa-clock:before { content: "\f017"; }
.fa-circle-notch:before { content: "\f1ce"; }
.fa-volume-up:before { content: "\f028"; }
.fa-history:before { content: "\f1da"; }
.sm-icon { display: inline-block; font-family: eicons; font-size: inherit; font-weight: 400; font-style: normal; font-variant: normal; line-height: 1; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.sm-icon--menu:before { content: "\e816"; }
.sm-icon--chevron-right:before { content: "\e87d"; }
.sm-icon--chevron-left:before { content: "\e87e"; }
.sm-icon--close:before { content: "\e87f"; }

/* Entrance animations: hidden until scrolled into view, then played once. */
[data-animate].is-waiting { visibility: hidden; }
.animated { animation-duration: 1.25s; }
@media (prefers-reduced-motion: reduce) { .animated { animation: none; } }
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 100%, 0); } to { opacity: 1; transform: none; } }
.fadeInUp { animation-name: fadeInUp; }
@keyframes lightSpeedIn { from { transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { transform: skewX(20deg); opacity: 1; } 80% { transform: skewX(-5deg); opacity: 1; } to { transform: none; opacity: 1; } }
.lightSpeedIn { animation-name: lightSpeedIn; animation-timing-function: ease-out; }
@keyframes slideInDown { from { transform: translate3d(0, -100%, 0); visibility: visible; } to { transform: translate3d(0, 0, 0); } }
.slideInDown { animation-name: slideInDown; }
@keyframes slideInLeft { from { transform: translate3d(-100%, 0, 0); visibility: visible; } to { transform: translate3d(0, 0, 0); } }
.slideInLeft { animation-name: slideInLeft; }


/* Scroll-driven background (scale and blur as the section passes through the viewport). */
.has-motion-bg { position: relative; }
.motion-bg { height: 100%; left: 0; overflow: hidden; position: absolute; top: 0; width: 100%; }
.motion-bg__layer { background-repeat: no-repeat; background-size: cover; background-position: center center; left: 0; position: absolute; top: 0; width: 100%; height: 100%; transition-duration: 1s; transition-property: transform, opacity; transition-timing-function: cubic-bezier(0, .33, .07, 1.03); }

/* Responsive visibility, at the old breakpoints. */
@media (min-width: 1025px) { .hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .hide-tablet { display: none !important; } }
@media (max-width: 767px) { .hide-mobile { display: none !important; } }

/* In-page links scroll smoothly, as before. */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
