/* Shared service reset and identical animation/property definitions. Load before design overrides. */
.tsco-reference :is(*, ::after, ::before, ::backdrop){ box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }
.tsco-reference :is(::file-selector-button){ box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }
.tsco-reference,.tsco-reference{ text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings,normal); font-variation-settings: var(--default-font-variation-settings,normal); -webkit-tap-highlight-color: transparent; }
.tsco-reference{ line-height: inherit; }
.tsco-reference :is(hr){ height: 0px; color: inherit; border-top-width: 1px; }
.tsco-reference :is(abbr:where([title])){ text-decoration: underline dotted; }
.tsco-reference :is(h1, h2, h3, h4, h5, h6){ font-size: inherit; font-weight: inherit; }
.tsco-reference :is(:is(a:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-a))){ color: inherit; text-decoration: inherit; }
.tsco-reference :is(:is(b:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-b)), :is(strong:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-strong))){ font-weight: bolder; }
.tsco-reference :is(code, kbd, samp, pre){ font-family: var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace); font-feature-settings: var(--default-mono-font-feature-settings,normal); font-variation-settings: var(--default-mono-font-variation-settings,normal); font-size: 1em; }
.tsco-reference :is(:is(small:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-small))){ font-size: 80%; }
.tsco-reference :is(sub, sup){ vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }
.tsco-reference :is(sub){ bottom: -0.25em; }
.tsco-reference :is(sup){ top: -0.5em; }
.tsco-reference :is(table){ text-indent: 0px; border-color: inherit; border-collapse: collapse; }
.tsco-reference :is(progress){ vertical-align: baseline; }
.tsco-reference :is(summary){ display: list-item; }
.tsco-reference :is(:is(ol:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-ol)), :is(ul:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-ul)), menu){ list-style: none; }
.tsco-reference :is(img, svg, video, canvas, audio, iframe, embed, object){ vertical-align: middle; display: block; }
.tsco-reference :is(img, video){ max-width: 100%; height: auto; }
.tsco-reference :is(button, input, select, optgroup, textarea){ font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }
.tsco-reference :is(::file-selector-button){ font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }
.tsco-reference :is(:where(select:is([multiple], [size])) optgroup){ font-weight: bolder; }
.tsco-reference :is(:where(select:is([multiple], [size])) optgroup option){ padding-inline-start: 20px; }
.tsco-reference :is(::file-selector-button){ margin-inline-end: 4px; }
.tsco-reference :is(::placeholder){ opacity: 1; color: color-mix(currentcolor, transparent); }
.tsco-reference :is(textarea){ resize: vertical; }
.tsco-reference :is(::-webkit-search-decoration){ appearance: none; }
.tsco-reference :is(::-webkit-date-and-time-value){ min-height: 1lh; text-align: inherit; }
.tsco-reference :is(::-webkit-datetime-edit){ display: inline-flex; }
.tsco-reference :is(::-webkit-datetime-edit-fields-wrapper){ padding: 0px; }
.tsco-reference :is(::-webkit-datetime-edit){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-year-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-month-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-day-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-hour-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-minute-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-second-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-millisecond-field){ padding-block: 0px; }
.tsco-reference :is(::-webkit-datetime-edit-meridiem-field){ padding-block: 0px; }
.tsco-reference :is(button, input:where([type="button"], [type="reset"], [type="submit"])){ appearance: button; }
.tsco-reference :is(::file-selector-button){ appearance: button; }
.tsco-reference :is(::-webkit-inner-spin-button){ height: auto; }
.tsco-reference :is(::-webkit-outer-spin-button){ height: auto; }
.tsco-reference :is([hidden]:where(:not([hidden="until-found"]))){ display: none !important; }
@keyframes enter { 
  0% { opacity: var(--tw-enter-opacity,1); transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0)); }
}
@keyframes exit { 
  100% { opacity: var(--tw-exit-opacity,1); transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0)); }
}
@property --tw-blur { syntax: "*"; inherits: false; }
@property --tw-brightness { syntax: "*"; inherits: false; }
@property --tw-contrast { syntax: "*"; inherits: false; }
@property --tw-grayscale { syntax: "*"; inherits: false; }
@property --tw-hue-rotate { syntax: "*"; inherits: false; }
@property --tw-invert { syntax: "*"; inherits: false; }
@property --tw-opacity { syntax: "*"; inherits: false; }
@property --tw-saturate { syntax: "*"; inherits: false; }
@property --tw-sepia { syntax: "*"; inherits: false; }
@property --tw-drop-shadow { syntax: "*"; inherits: false; }
@keyframes mp-fade-in { 
  0% { opacity: 0; transform: translateX(-50%) translateY(-20px); }
  100% { opacity: 1; transform: translateX(-50%) translateY(0px); }
}
@keyframes mp-fade-out { 
  0% { opacity: 1; transform: translateX(-50%) translateY(0px); }
  100% { opacity: 0; transform: translateX(-50%) translateY(-20px); }
}
@keyframes mp-spin { 
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Service pages are core blocks (see patterns/page-service-*.php).
   1. WordPress gives every flow-layout group's children a block-gap margin; the page CSS sets all spacing itself,
      so cancel it (beats WP's :root :where() rule; ties with, and so loses to, the page rules loaded after this file).
   2. Where a block changed an element's tag, the block carries tsco-tag-<original tag> and the page CSS's tag
      selectors are written as :is(T:not(:where([class*="tsco-tag-"])), :where(.tsco-tag-T)) - same specificity.
   3. A converted <img> keeps its classes on the core/image <figure> (tsco-tag-img); the image fills that figure. */
.tsco-reference .is-layout-flow:not(:where([class*="space-y-"])) > *{margin-block:0}
:where(.tsco-reference) .wp-block-image{margin:0}
/* 4. Paragraph blocks that replaced inline elements stay inline (any class rule that sets display still wins). */
:where(.tsco-reference) :is(.tsco-tag-span,.tsco-tag-strong,.tsco-tag-small,.tsco-tag-a,.tsco-tag-b,.tsco-tag-em,.tsco-tag-i){display:inline}
.tsco-tag-img:not(:where(.tsco-img-bare)) > img{display:block;width:100%;height:100%;object-fit:inherit;object-position:inherit;border-radius:inherit}
/* An <img> that had no classes: its block <figure> generates no box, so the image lays out exactly as the bare <img> did. */
.tsco-img-bare{display:contents}
/* 5. A card that was one big link: the link sits on the card heading and stretches over the card, so the whole card stays clickable. */
:where(.tsco-reference) .tsco-tag-a{position:relative}
:where(.tsco-reference) .tsco-tag-a :is(h2,h3,h4) a{color:inherit;text-decoration:none}
:where(.tsco-reference) .tsco-tag-a :is(h2,h3,h4) a::after{content:"";position:absolute;inset:0}
/* 6. Inline styles that blocks cannot carry */
.tsco-glyph{display:inline-flex;font-size:22.5px;line-height:1}
.tsco-font-cairo{font-family:Cairo,sans-serif}
.tsco-maxw-820{max-width:820px;margin-inline:auto}
.tsco-objpos-center-55{object-position:center 55%}
.tsco-objpos-center-45{object-position:center 45%}
