/* Prakta site-wide base styles. Element styling lives on the Elementor elements; this file only holds rules
   Elementor has no control for, shared by many elements. */

/* Bricolage Grotesque follows the font size on its optical-size axis (auto), as Figma renders it (checked against the
   footer wordmark: 1082px in Figma = 1056px + the trailing letter-spacing browsers add). */
body { font-optical-sizing: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; background: #E7ECF3; }

/* Gradient words in headings ("Go home on time.", "in plain English.") — colours come from --pk-g on the span. */
.pk-gt { background-image: var(--pk-g); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }

/* Figma "fill container" children: flex 1 1 0 with a 1px minimum, so siblings share space like the frames. */
.e-con > .pk-grow, .e-con-inner > .pk-grow { flex: 1 1 0% !important; min-width: 1px; }
@media (max-width: 767px) { .e-con > .pk-grow.pk-grow-off-m, .e-con-inner > .pk-grow.pk-grow-off-m { flex: 0 0 auto !important; } }
.pk-spacer { min-height: 1px; }

/* Single-line labels in the 1440 frames (chips, nav items, list rows) stay on one line on desktop windows;
   tablet and the 390 frames let longer ones wrap rather than run out of narrower cards. */
@media (min-width: 1025px) { .pk-nw .elementor-heading-title { white-space: nowrap; } }

/* Fixed-width boxes from the 1440 frames shrink when the column is narrower (laptop and tablet widths). Elementor's
   "no shrink" (flex: 0 0 auto) matches the frame at 1440; below it, rows of fixed columns give way instead of running
   off the window. Label rows (pk-nwbox) and small tiles/rails (pk-noshrink) keep their size. */
.e-con > .e-con, .e-con-inner > .e-con { flex-shrink: 1; max-width: 100%; }
@media (max-width: 1439px) {
  .e-con > .e-con.e-flex, .e-con-inner > .e-con.e-flex { flex-shrink: 1; }
  .e-con > .e-con.e-flex.pk-noshrink, .e-con-inner > .e-con.e-flex.pk-noshrink { flex-shrink: 0; }
}
/* layered mock-ups keep their drawn width on desktop windows; site.js scales them (zoom) instead of the row squeezing them */
@media (min-width: 1025px) { .e-con > .e-con.e-flex.pk-layers, .e-con-inner > .e-con.e-flex.pk-layers { flex-shrink: 0; } }
.e-con > .elementor-widget, .e-con-inner > .elementor-widget { max-width: 100%; }

/* Windows wider or narrower than the 1440 frame (desktop layout): 1440px stages of absolute layers stay centred
   (narrow laptops scale them, site.js), and painted layers that reach a frame edge run to the window edge. */
@media (min-width: 1025px) {
  .e-con > .e-con.e-flex.pk-stage { align-self: center; flex-shrink: 0; max-width: none; overflow: visible; }
}
.e-con > .pk-bleed { max-width: none !important; }

/* Images are sized by their element (width/height controls); SVG icons have no intrinsic size in WordPress. */
.pk-img img { display: block; }
.pk-img { line-height: 0; }

/* Top-level bands: decorations (glows, grid lines, fades) stay behind the content. */
.pk-sec { isolation: isolate; }
.pk-sec > .elementor-element.elementor-absolute, .pk-sec > .e-con-inner > .elementor-element.elementor-absolute { z-index: 0; }

/* ------------------------------------------------------------------ Header (sticky glass nav) */
.elementor-location-header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; pointer-events: none; }
body.admin-bar .elementor-location-header { top: var(--wp-admin--admin-bar--height, 32px); }
.pk-header { pointer-events: none; transition: padding .25s ease-out; }
.pk-header .pk-nav { pointer-events: auto; transition: background .25s ease-out, border-color .25s ease-out, box-shadow .25s ease-out; }
.pk-logo--light { display: none !important; }
/* dark-hero pages (Ask Prakta, Security, Free Google check) until the nav leaves the hero */
body.pk-hdr-dark:not(.pk-past-hero) .pk-nav { background: rgba(255,255,255,0.06) !important; border-color: rgba(255,255,255,0.14) !important; box-shadow: 0 30px 60px 0 rgba(3,14,34,0.35) !important; }
body.pk-hdr-dark:not(.pk-past-hero) .pk-logo--dark { display: none !important; }
body.pk-hdr-dark:not(.pk-past-hero) .pk-logo--light { display: block !important; }
body.pk-hdr-dark:not(.pk-past-hero) .pk-mega .e-n-menu-title { --n-menu-title-color-normal: rgba(255,255,255,0.82); --n-menu-title-color-hover: #FFFFFF; --n-menu-title-color-active: #FFFFFF; --n-menu-dropdown-indicator-color-normal: rgba(255,255,255,0.82); }
body.pk-hdr-dark:not(.pk-past-hero) .pk-mega .e-n-menu-title svg { filter: brightness(0) invert(1); opacity: .82; }
body.pk-hdr-dark:not(.pk-past-hero) .pk-login .elementor-heading-title, body.pk-hdr-dark:not(.pk-past-hero) .pk-login a { color: #FFFFFF !important; }
body.pk-hdr-dark:not(.pk-past-hero) .pk-burger { background: rgba(255,255,255,0.1) !important; border-color: rgba(255,255,255,0.14) !important; }
body.pk-hdr-dark:not(.pk-past-hero) .pk-burger__line { background: #FFFFFF !important; }
/* mobile: the bar tightens after 24px of scroll */
@media (max-width: 767px) { body.pk-scrolled .pk-header { padding-top: 8px !important; } }
.pk-burger { cursor: pointer; }
.pk-burger:focus-visible, .pk-close:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }

/* Mega Menu (Header v2): panels fade in and drop 8px; the page behind dims */
.hv2-menu .e-n-menu-title-container { position: relative; }
.hv2-menu .e-n-menu-dropdown-icon svg { width: 14px; height: 14px; }
.hv2-menu .e-n-menu-content.e-active { padding-block-start: var(--n-menu-title-distance-from-content, 16px) !important; }
.hv2-menu .e-n-menu-content > .e-con.e-active, .hv2-menu .e-n-menu-content.e-active > .e-con { animation: pk-drop .2s cubic-bezier(.22,1,.36,1) both; }
@keyframes pk-drop { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.hv2-menu .e-n-menu-title:focus-within .e-n-menu-title-container, .hv2-menu .e-n-menu-title-container:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 4px; border-radius: 6px; }
body.pk-menu-open::after { content: ""; position: fixed; inset: 0; background: rgba(6,26,58,0.25); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); z-index: 90; pointer-events: none; }
.pk-mlink .elementor-heading-title { transition: color .2s ease-out; }
.pk-mlink:hover .elementor-heading-title, .pk-mlink:focus-visible .elementor-heading-title { color: #1663D0; }
.pk-mlink:hover .pk-tile { box-shadow: 0 0 0 2px rgba(46,211,183,.45), 0 8px 18px rgba(22,99,208,.16); }
.pk-mlink .pk-tile { transition: box-shadow .2s ease-out; box-shadow: 0 1px 2px rgba(6,26,58,0.06), 0 8px 20px rgba(6,26,58,0.1); }
.pk-mfoot a:hover { color: #1663D0 !important; }
.pk-featured, .e-con.pk-featured { transition: filter .2s; }
.pk-featured:hover { filter: brightness(1.08); }

/* Mobile menu (off-canvas) */
.pk-offcanvas .e-off-canvas__content { background: transparent; }
.pk-mmenu { overflow-y: auto; }
.pk-macc .e-n-accordion-item-title { padding: 16px 0 !important; border: 0 !important; background: none !important; }
.pk-macc .e-n-accordion-item { border-bottom: 1px solid rgba(255,255,255,0.1); }
.pk-macc .e-n-accordion-item-title-icon svg { width: 20px; height: 20px; }
.pk-macc .e-n-accordion-item > .e-con { border: 0 !important; padding: 0 0 18px !important; }
.pk-mrow, .e-con.pk-mrow { transition: background-color .2s; }
.pk-mrow:hover { background-color: rgba(255,255,255,0.08) !important; }

/* ------------------------------------------------------------------ Buttons (component "Button": 4 styles × L/M)
   Default → Hover (sheen sweep, brighter fill, chip change, arrow nudges 3px) → Pressed (scale .97) + focus ring.
   Every hover change fades: gradient fills can't transition, so the fill brightens through filter / an inset wash and
   the gradient ring fades in on ::after (they used to snap). */
.pk-btn .elementor-button { position: relative; overflow: hidden; isolation: isolate; border: 1px solid transparent; line-height: 1.3;
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .3s cubic-bezier(.2,.8,.2,1), filter .25s ease-out, background-color .25s ease-out, border-color .25s ease-out;
  -webkit-tap-highlight-color: transparent; }
.pk-btn .elementor-button::before { content: ""; position: absolute; top: -40%; left: -40%; width: 64px; height: 180%; z-index: -1; opacity: 0;
  background: linear-gradient(90deg, rgba(255,255,255,0), var(--pk-sheen, rgba(255,255,255,0.32)), rgba(255,255,255,0)); transform: rotate(18deg); pointer-events: none; }
.pk-btn .elementor-button::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; padding: 2px; opacity: 0; pointer-events: none;
  background: var(--pk-ring, none); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  transition: opacity .3s ease-out; }
.pk-btn .elementor-button:hover::after { opacity: 1; }
.pk-btn .elementor-button:hover::before { animation: pk-sheen .7s cubic-bezier(.22,1,.36,1); }
@keyframes pk-sheen { from { left: -40%; opacity: 1; } 70% { opacity: 1; } to { left: 120%; opacity: 0; } }
.pk-btn .elementor-button-content-wrapper { align-items: center; }
.pk-btn .elementor-button-icon { display: flex; align-items: center; justify-content: center; flex: none; border-radius: 999px; transition: background-color .25s ease-out; }
.pk-btn--l .elementor-button-icon { width: 42px; height: 42px; }
.pk-btn--m .elementor-button-icon { width: 34px; height: 34px; }
.pk-btn--l .elementor-button-icon svg { width: 18px !important; height: 18px !important; }
.pk-btn--m .elementor-button-icon svg { width: 16px !important; height: 16px !important; }
.pk-btn .elementor-button-icon svg { transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.pk-btn .elementor-button:hover .elementor-button-icon svg { transform: translateX(3px); }
.pk-btn .elementor-button:active { transform: scale(.97); transition-duration: .1s; }
.pk-btn .elementor-button:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
.pk-btn--full .elementor-button-content-wrapper { justify-content: space-between; width: 100%; }
/* primary (cobalt) */
.pk-btn--primary .elementor-button { background: linear-gradient(190deg, #1663D0 13.4%, #0A4DA6 86.6%); border-color: rgba(255,255,255,0.25);
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.2), 0 12px 28px 0 rgba(10,77,166,0.3); }
.pk-btn--primary .elementor-button-icon { background: rgba(255,255,255,0.16); }
.pk-btn--primary .elementor-button:hover { filter: brightness(1.12) saturate(1.05); box-shadow: 0 1px 0 0 rgba(255,255,255,0.2), 0 18px 40px 0 rgba(10,77,166,0.45); }
.pk-btn--primary .elementor-button:hover .elementor-button-icon { background: #030E22; }
.pk-btn--primary .elementor-button:active { filter: brightness(.92); box-shadow: 0 4px 10px 0 rgba(10,77,166,0.3); }
/* glass (light sections) */
.pk-btn--glass .elementor-button { background: linear-gradient(190deg, rgba(255,255,255,0.92) 13.4%, rgba(255,255,255,0.78) 86.6%); border-color: rgba(255,255,255,0.85);
  -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); box-shadow: inset 0 0 0 999px rgba(255,255,255,0), 0 2px 6px 0 rgba(6,26,58,0.04), 0 24px 60px 0 rgba(6,26,58,0.1);
  --pk-sheen: rgba(90,176,255,0.35); --pk-ring: linear-gradient(90deg, #1663D0, #2ED3B7); }
.pk-btn--glass .elementor-button-icon, .pk-btn--light .elementor-button-icon { background: rgba(10,77,166,0.08); }
.pk-btn--glass .elementor-button:hover { box-shadow: inset 0 0 0 999px rgba(255,255,255,0.6), 0 2px 6px 0 rgba(6,26,58,0.04), 0 16px 36px 0 rgba(22,99,208,0.16); }
.pk-btn--glass .elementor-button:hover .elementor-button-icon, .pk-btn--light .elementor-button:hover .elementor-button-icon { background: #2ED3B7; }
.pk-btn--glass .elementor-button:active { box-shadow: inset 0 0 0 999px rgba(231,236,243,0.9), 0 0 0 0 rgba(6,26,58,0), 0 4px 10px 0 rgba(6,26,58,0.08); }
/* dark glass (dark sections) */
.pk-btn--darkglass .elementor-button { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.14); -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px);
  box-shadow: inset 0 0 0 999px rgba(255,255,255,0), 0 30px 60px 0 rgba(3,14,34,0.35); --pk-ring: linear-gradient(90deg, #5AB0FF, #2ED3B7); }
.pk-btn--darkglass .elementor-button-icon { background: rgba(255,255,255,0.12); }
.pk-btn--darkglass .elementor-button:hover { box-shadow: inset 0 0 0 999px rgba(255,255,255,0.08), 0 0 28px 0 rgba(46,211,183,0.38); }
.pk-btn--darkglass .elementor-button:hover .elementor-button-icon { background: #1663D0; }
.pk-btn--darkglass .elementor-button:active { box-shadow: inset 0 0 0 999px rgba(255,255,255,0), 0 0 12px 0 rgba(46,211,183,0.25); }
/* light (white on dark) */
.pk-btn--light .elementor-button { background: #FFFFFF; box-shadow: 0 12px 30px 0 rgba(3,14,34,0.25); --pk-sheen: rgba(90,176,255,0.35); --pk-ring: linear-gradient(90deg, #5AB0FF, #2ED3B7); }
.pk-btn--light .elementor-button:hover { box-shadow: 0 12px 30px 0 rgba(90,176,255,0.35); }
.pk-btn--light .elementor-button:active { background-color: #E7ECF3; }
@media (prefers-reduced-motion: reduce) {
  .pk-btn .elementor-button:hover::before { animation: none; }
  .pk-btn .elementor-button:hover .elementor-button-icon svg, .pk-btn .elementor-button:active { transform: none; }
}
/* Mega Menu: thin stroked chevrons (the icon set's chev), inferred small panels sit under their item */
.hv2-menu .e-n-menu-dropdown-icon { color: var(--n-menu-dropdown-indicator-color-normal, rgba(6,26,58,0.82)); }
.hv2-menu .e-n-menu-dropdown-icon svg * { fill: none !important; stroke: currentColor !important; }
.hv2-menu .e-n-menu-title:hover .e-n-menu-dropdown-icon { color: var(--n-menu-dropdown-indicator-color-hover, #061A3A); }
.hv2-menu .e-n-menu-content > .e-con { margin-inline: 0; }
.hv2-menu .e-n-menu-content > .e-con.pk-panel--wide { margin-inline: auto; }
.hv2-menu .e-n-menu-content > .e-con:not(.pk-panel--wide) { margin-left: var(--pk-panel-x, 0px); }
.pk-btn:not(.pk-btn--full) .elementor-button-text { white-space: nowrap; }
@media (max-width: 767px) { .pk-btn--mfull .elementor-button-content-wrapper { justify-content: space-between; width: 100%; } .pk-btn--mfull .elementor-button-text { white-space: normal; } }

/* ------------------------------------------------------------------ FAQ (Nested Accordion): glass question cards */
.pk-faq .e-n-accordion-item { border-radius: 18px; border: 1px solid rgba(255,255,255,0.85); padding: 20px 24px;
  background: linear-gradient(182deg, rgba(255,255,255,0.72) 13.4%, rgba(255,255,255,0.48) 86.6%);
  -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px);
  box-shadow: inset 0 0 0 999px rgba(255,255,255,0), 0 2px 6px 0 rgba(6,26,58,0.04), 0 24px 60px 0 rgba(6,26,58,0.1);
  transition: box-shadow .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease-out; }
.pk-faq .e-n-accordion-item[open]:not(.pk-closing) { box-shadow: inset 0 0 0 999px rgba(255,255,255,0.45), 0 2px 6px 0 rgba(6,26,58,0.04), 0 24px 60px 0 rgba(6,26,58,0.1); }
.pk-faq .e-n-accordion-item-title { cursor: pointer; -webkit-tap-highlight-color: transparent; }
/* the + and − sit on top of each other and turn into one another (Elementor swapped them with display) */
.pk-faq .e-n-accordion-item .e-n-accordion-item-title-icon, .pk-macc .e-n-accordion-item .e-n-accordion-item-title-icon { position: relative; width: 20px; height: 20px; flex: none; }
.pk-faq .e-n-accordion-item-title-icon > span, .pk-macc .e-n-accordion-item-title-icon > span { display: flex !important; position: absolute; inset: 0; align-items: center; justify-content: center;
  transition: opacity .3s ease-out, rotate .4s cubic-bezier(.22,1,.36,1); }
.pk-faq .e-n-accordion-item-title-icon > .e-opened { opacity: 0; rotate: -90deg; }
.pk-faq .e-n-accordion-item[open]:not(.pk-closing) .e-n-accordion-item-title-icon > .e-opened { opacity: 1; rotate: 0deg; }
.pk-faq .e-n-accordion-item[open]:not(.pk-closing) .e-n-accordion-item-title-icon > .e-closed { opacity: 0; rotate: 90deg; }
.pk-macc .e-n-accordion-item-title-icon > .e-opened { display: none !important; }
.pk-macc .e-n-accordion-item-title-icon { transition: rotate .35s cubic-bezier(.22,1,.36,1); }
.pk-macc .e-n-accordion-item[open]:not(.pk-closing) .e-n-accordion-item-title-icon { rotate: 180deg; }
.pk-faq .e-n-accordion-item-title { padding: 0 !important; border: 0 !important; background: none !important; gap: 16px; }
.pk-faq .e-n-accordion-item-title-text { flex: 1 1 auto; }
.pk-faq .e-n-accordion-item > .e-con { border: 0 !important; padding: 0 !important; background: none !important; }
.pk-faq .e-n-accordion-item-title-icon svg { width: 20px; height: 20px; }
.pk-faq .e-n-accordion-item-title:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 6px; border-radius: 8px; }
@media (hover: hover) {
  .pk-faq .e-n-accordion-item:hover { border-color: #FFFFFF; box-shadow: inset 0 0 0 999px rgba(255,255,255,0.2), 0 2px 6px 0 rgba(6,26,58,0.05), 0 24px 56px 0 rgba(22,99,208,0.14); }
  .pk-faq .e-n-accordion-item[open]:not(.pk-closing):hover { box-shadow: inset 0 0 0 999px rgba(255,255,255,0.45), 0 2px 6px 0 rgba(6,26,58,0.05), 0 24px 56px 0 rgba(22,99,208,0.14); }
}
.pk-faq__a--pending .elementor-heading-title { font-style: italic; opacity: .8; }
@media (max-width: 767px) { .pk-faq .e-n-accordion-item { padding: 20px; } }

/* ------------------------------------------------------------------ Forms (Pro Form widget, design fields) */
.pk-form .elementor-field-group { margin-bottom: 0; }
.pk-form .elementor-field-textual { min-height: 50px; padding: 0 16px; line-height: 1.5; box-shadow: none; transition: border-color .2s, box-shadow .2s; }
.pk-form textarea.elementor-field-textual { min-height: 120px; padding: 14px 16px; resize: vertical; }
.pk-form .elementor-field-textual::placeholder { color: #6E7C95; opacity: 1; }
.pk-form .elementor-field-textual:focus { outline: none; border-color: #1663D0 !important; box-shadow: 0 0 0 3px rgba(22,99,208,0.15); }
.pk-form .elementor-select-wrapper select { -webkit-appearance: none; appearance: none; padding-right: 44px;
  background: url(../img/chev.svg) no-repeat right 16px center / 18px 18px; }
.pk-form .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
.pk-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: 10px; align-items: flex-start; }
.pk-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox].elementor-field {
  -webkit-appearance: none; appearance: none; flex: none; width: 20px !important; height: 20px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important;
  border: 1.5px solid rgba(6,26,58,0.32) !important; border-radius: 6px !important; background: #FFFFFF !important; box-shadow: none !important; cursor: pointer;
  display: grid; place-content: center; transition: background-color .15s ease-out, border-color .15s ease-out, box-shadow .2s ease-out; }
.pk-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox].elementor-field::after { content: ""; width: 10px; height: 6px; border: 2px solid #FFFFFF;
  border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px) scale(0); transition: transform .2s cubic-bezier(.22,1,.36,1); }
.pk-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox].elementor-field:hover { border-color: #1663D0 !important; }
.pk-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox].elementor-field:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 2px; }
.pk-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox].elementor-field:checked { background: #1663D0 !important; border-color: #1663D0 !important; }
.pk-form .elementor-field-type-acceptance .elementor-field-option input[type=checkbox].elementor-field:checked::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
.pk-form .elementor-field-type-acceptance.elementor-error .elementor-field-option input[type=checkbox].elementor-field:not(:checked) { border-color: #D64545 !important; box-shadow: 0 0 0 3px rgba(214,69,69,0.12) !important; }
.pk-form .elementor-field-type-acceptance label { cursor: pointer; padding-top: 0 !important; }
.pk-form .elementor-field-type-acceptance label { font-family: "Instrument Sans", sans-serif; font-size: 13.5px !important; line-height: 1.5 !important; color: #3A4A66 !important; font-weight: 400 !important; }
.pk-form .elementor-field-option a, .pk-form .elementor-field-option label a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.pk-form .elementor-field-type-submit { margin-top: 4px; }
.pk-form .elementor-error .elementor-field-textual { border-color: #D64545 !important; box-shadow: 0 0 0 3px rgba(214,69,69,0.12) !important; }
.pk-form .elementor-field-group .elementor-help-inline { display: block; flex-basis: 100%; margin-top: 6px; font-family: "Instrument Sans", sans-serif; font-size: 13px; line-height: 1.4; color: #C23B3B; }
.pk-form .elementor-message-danger { color: #C23B3B; }
.pk-form.elementor-form-waiting .elementor-field-type-submit .elementor-button, .elementor-form-waiting .pk-form .elementor-button { opacity: .7; cursor: progress; pointer-events: none; }
.pk-form .elementor-message { font-family: "Instrument Sans", sans-serif; font-size: 15px; margin-top: 12px; }
.pk-form .elementor-message-success { color: #0E8A74; }
/* Upload area (support request): a dashed-look drop zone like the frame */
/* upload: the design's drop zone (icon + text in a box); the file input lies invisibly over it */
.pk-form .elementor-field-type-upload { position: relative; }
.pk-form .elementor-field-type-upload > label { display: flex !important; align-items: center; gap: 12px; width: 100%; margin: 0 !important; padding: 18px 20px; border: 1px solid rgba(22,99,208,0.35);
  border-radius: 16px; background: rgba(255,255,255,0.6); font-family: "Instrument Sans", sans-serif; font-size: 14.5px !important; font-weight: 400 !important; line-height: 1.5 !important; color: #3A4A66 !important; cursor: pointer; transition: border-color .2s, background-color .2s; }
.pk-form .elementor-field-type-upload > label::before { content: ""; flex: none; width: 20px; height: 20px; background: url(../img/upload.svg) center / contain no-repeat; }
.pk-form .elementor-field-type-upload input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; padding: 0; border: 0; }
.pk-form .elementor-field-type-upload:hover > label, .pk-form .elementor-field-type-upload.is-dragover > label { border-color: #1663D0; background: #FFFFFF; }
.pk-form .elementor-field-type-upload:focus-within > label { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
/* Radius slider (free Google check): the number field is shown as a range with its value */
.pk-form .pk-range { width: 100%; accent-color: #1663D0; height: 22px; }
.pk-form .pk-range-row { display: flex; justify-content: space-between; font-family: "Instrument Sans", sans-serif; font-size: 12px; color: #6E7C95; margin-top: 6px; }
.pk-form .pk-range-val { color: #1663D0; font-weight: 600; font-size: 13.5px; float: right; }
/* In-page links and focused fields land below the floating header */
html { scroll-padding-top: 120px; }
@media (max-width: 1024px) { html { scroll-padding-top: 88px; } }
/* Links: Hello's pink default never shows through */
body a { color: inherit; }

/* ------------------------------------------------------------------ Home · Who it's for (Nested Tabs) */
.pk-who .e-n-tabs { position: relative; }
.pk-who .e-n-tabs-heading { width: fit-content; margin-left: auto; padding: 6px; gap: 6px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.85);
  background: linear-gradient(184deg, rgba(255,255,255,0.92) 13.4%, rgba(255,255,255,0.78) 86.6%); -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px);
  box-shadow: 0 2px 6px 0 rgba(6,26,58,0.04), 0 24px 60px 0 rgba(6,26,58,0.1); }
@media (min-width: 1025px) { .pk-who .e-n-tabs-heading { position: absolute; right: 0; top: auto; bottom: calc(100% + 56px); } }
@media (min-width: 768px) and (max-width: 1024px) { .pk-who .e-n-tabs-heading { margin-left: 0; } }   /* tablet: the bar sits under the heading, in flow */   /* bottom-aligned with the heading (Head row, items-end) */
@media (max-width: 767px) { .pk-who .e-n-tabs-heading { margin-left: 0; max-width: 100%; overflow-x: auto; scrollbar-width: none; } .pk-who .e-n-tabs-heading::-webkit-scrollbar { display: none; } }
.pk-who .e-n-tab-title { position: relative; white-space: nowrap; transition: background-color .25s ease-out, color .25s ease-out; }
.pk-who .e-n-tab-title::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 80px; height: 2px; margin-left: -40px; border-radius: 2px; background: transparent; }
.pk-who .e-n-tab-title[aria-selected="true"]::after { background: rgba(255,255,255,0.2); }
.pk-who .e-n-tab-title::before { content: ""; position: absolute; left: 50%; bottom: 6px; height: 2px; margin-left: -40px; width: 80px; border-radius: 2px; background: #2ED3B7; z-index: 1;
  scale: 0 1; transform-origin: left center; }
.pk-who .e-n-tab-title[aria-selected="true"]::before { animation: pk-progress var(--pk-dur, 7s) linear forwards; }
.pk-who.is-paused .e-n-tab-title[aria-selected="true"]::before { animation-play-state: paused; }
@keyframes pk-progress { from { scale: 0 1; } to { scale: 1 1; } }   /* scale, not width: no layout on every frame */
.pk-who .e-n-tab-title:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
.pk-who .e-n-tabs-content > .e-con { animation: pk-rise .5s cubic-bezier(.22,1,.36,1); }
@keyframes pk-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pk-rise { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: none; } }

/* ------------------------------------------------------------------ Home · One calm place (4 chapters) */
.pk-chap-row, .e-con.pk-chap-row { cursor: pointer; transition: opacity .3s ease-out; }
.pk-chap-row.is-active { opacity: 1 !important; }
.pk-chap-row:not(.is-active) { opacity: .4 !important; }
.pk-chap-row:not(.is-active):hover { opacity: .7 !important; }
.pk-chap-row:not(.is-active) .pk-chap-link { display: none !important; }
.pk-chap-prev, .e-con.pk-chap-prev { transition: box-shadow .3s, border-color .3s, opacity .3s; }
.pk-chap-row.is-active .pk-chap-prev { opacity: 1 !important; border: 2px solid #2ED3B7 !important; box-shadow: 0 0 16px 0 rgba(46,211,183,0.35), 0 10px 24px 0 rgba(10,77,166,0.18) !important; }
.pk-chap-row:not(.is-active) .pk-chap-prev { opacity: .72 !important; border: 1px solid #FFFFFF !important; box-shadow: 0 8px 18px 0 rgba(6,26,58,0.1) !important; }
.pk-chap-screen, .e-con.pk-chap-screen { opacity: 0; transition: opacity .4s ease-out; }
.pk-chap-screen.is-active { opacity: 1; }
.pk-chap-fill, .e-con.pk-chap-fill { transition: top .35s cubic-bezier(.22,1,.36,1), height .35s cubic-bezier(.22,1,.36,1); }
.pk-chapters .pk-chap-fill { transform-origin: top; animation: pk-rail var(--pk-dur, 6s) linear forwards; }
.pk-chapters.is-paused .pk-chap-fill { animation-play-state: paused; }
@keyframes pk-rail { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .pk-chapters .pk-chap-fill, .pk-who .e-n-tab-title[aria-selected="true"]::before { animation: none; transform: none; width: 80px; } }

/* ------------------------------------------------------------------ Blog & guides · articles (W15 / W16) */
.pk-prose { color: #3A4A66; }
.pk-prose > * { margin: 0 !important; }
.pk-prose > * + * { margin-top: 22px !important; }
.pk-prose h2 { font-family: "Bricolage Grotesque", sans-serif; font-weight: 500; font-size: 30px; line-height: 36px; letter-spacing: -0.015em; color: #061A3A; scroll-margin-top: 120px; }
.pk-prose h3 { font-family: "Bricolage Grotesque", sans-serif; font-weight: 500; font-size: 22px; line-height: 1.2; letter-spacing: -0.015em; color: #061A3A; }
.pk-prose p, .pk-prose li { font-family: "Instrument Sans", sans-serif; font-size: 18px; line-height: 30px; }
.pk-prose a { color: #1663D0; text-decoration: underline; text-underline-offset: 2px; }
.pk-prose .pk-callout { display: flex; gap: 14px; align-items: flex-start; padding: 22px; border-radius: 20px; background: rgba(46,211,183,0.1); border: 1px solid rgba(46,211,183,0.4); }
.pk-prose .pk-callout::before { content: ""; flex: none; width: 22px; height: 22px; background: url(../img/spark.svg) center / contain no-repeat; }
.pk-prose .pk-callout p { margin: 0; font-size: 16px; line-height: 25px; color: #061A3A; }
@media (max-width: 1024px) { .pk-prose h2 { font-size: 27px; line-height: 32px; } .pk-prose p, .pk-prose li { font-size: 17px; line-height: 28px; } }
@media (max-width: 767px) { .pk-prose h2 { font-size: 24px; line-height: 29px; } .pk-prose p, .pk-prose li { font-size: 16px; line-height: 27px; } }
.pk-crumb-title .elementor-heading-title { display: block; max-width: 124px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* "On this page": Elementor's Table of Contents drawn as the design's list (bar + label, active in teal) */
.pk-toc .elementor-toc__header { display: none; }
.pk-toc .elementor-toc__body { padding: 0 !important; }
.pk-toc .elementor-toc__list-wrapper { display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 0; list-style: none; }
.pk-toc .elementor-toc__list-item { margin: 0; }
.pk-toc .elementor-toc__list-item-text-wrapper { display: flex; align-items: center; gap: 10px; }
.pk-toc .elementor-toc__list-item-text-wrapper > :is(i, svg) { display: none; }
.pk-toc .elementor-toc__list-item-text-wrapper::before { content: ""; flex: none; width: 3px; height: 20px; border-radius: 2px; background: rgba(6,26,58,0.1); transition: background-color .2s; }
.pk-toc .elementor-toc__list-item-text { color: #3A4A66; transition: color .2s; }
.pk-toc .elementor-toc__list-item-text-wrapper:has(.elementor-item-active)::before,
.pk-toc:not(:has(.elementor-item-active)) .elementor-toc__list-item:first-child .elementor-toc__list-item-text-wrapper::before { background: #2ED3B7; }
.pk-toc .elementor-toc__list-item:has(.elementor-item-active) ~ .elementor-toc__list-item .elementor-toc__list-item-text-wrapper::before { background: rgba(6,26,58,0.1); }
.pk-toc .elementor-toc__list-item:has(.elementor-item-active) ~ .elementor-toc__list-item .elementor-toc__list-item-text { color: #3A4A66; font-weight: 400; }
.pk-toc .elementor-toc__list-item-text.elementor-item-active,
.pk-toc:not(:has(.elementor-item-active)) .elementor-toc__list-item:first-child .elementor-toc__list-item-text { color: #061A3A; font-weight: 600; }
/* Related cards: the category's icon */
.pk-caticon { display: none !important; }
.e-loop-item.category-get-paid .pk-caticon--get-paid, .e-loop-item.category-running-a-practice .pk-caticon--running-a-practice,
.e-loop-item.category-grow .pk-caticon--grow, .e-loop-item.category-clinical-admin .pk-caticon--clinical-admin { display: block !important; }
/* Loop grid pagination (no design: the category chips' look) */
.pk-pager .elementor-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.pk-pager .elementor-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 14px; margin: 0 !important;
  border-radius: 999px; background: rgba(255,255,255,0.7); border: 1px solid #FFFFFF; transition: background-color .2s, color .2s; }
.pk-pager .elementor-pagination a.page-numbers:hover { background: #FFFFFF; }
.pk-pager .elementor-pagination .page-numbers.current { background: #061A3A; color: #FFFFFF; }
.pk-pager .elementor-pagination .page-numbers.dots { background: none; border-color: transparent; }

/* ------------------------------------------------------------------ Newsletter pill (footer, blog) */
.pk-news .elementor-form-fields-wrapper { flex-wrap: nowrap; align-items: center; margin: 0 !important; border-radius: 999px;
  -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); box-shadow: 0 30px 30px rgba(3,14,34,0.35); }
.pk-news .elementor-field-group { padding: 0 !important; margin: 0 !important; }
.pk-news .elementor-field-group.elementor-field-type-email { flex: 1 1 0%; width: auto !important; min-width: 0; }
.pk-news .elementor-field-type-submit { flex: none; width: auto !important; margin: 0 0 0 8px !important; }
.pk-form.pk-news .elementor-field-textual { min-height: 0; height: auto; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.pk-form.pk-news .elementor-field-textual::placeholder { color: rgba(255,255,255,0.5); }
.pk-form.pk-news .elementor-field-textual:focus { box-shadow: none !important; }
.pk-news .elementor-form-fields-wrapper:focus-within { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
.pk-news .elementor-message { color: rgba(255,255,255,0.8); font-size: 13.5px; }
.pk-news .elementor-message-success { color: #2ED3B7; }
@media (max-width: 767px) {
  .pk-news--wrap .elementor-form-fields-wrapper { flex-wrap: wrap; row-gap: 8px; }
  .pk-news--wrap .elementor-field-group.elementor-field-type-email { flex-basis: 100%; }
  .pk-news--wrap .elementor-field-type-submit { width: 100% !important; margin: 0 !important; }
  .pk-news--wrap .elementor-field-type-submit .elementor-button { width: 100%; justify-content: space-between; }
  /* one card per row: each card its own height (equal height is for the desktop rows) */
  .pk-blog-grid .elementor-loop-container, .pk-related-grid .elementor-loop-container { grid-auto-rows: auto !important; }
}
/* Phones narrower than the 390 frame: the pill no longer fits beside the copy, so it takes its own row. */
@media (max-width: 389px) {
  .e-con:has(> .pk-news--wrap) { flex-wrap: wrap; }
  .e-con > .pk-news--wrap { width: 100% !important; flex-basis: 100% !important; }
}

/* ------------------------------------------------------------------ Help centre (W23 / W23b) */
/* Search [type-ahead]: one glass pill holding icon, field, ⌘K and the primary Search button */
.pk-search.elementor-widget-search .e-search .e-search-form { position: relative; display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 22px; border-radius: 999px;
  background: linear-gradient(186deg, rgba(255,255,255,0.92) 13.4%, rgba(255,255,255,0.78) 86.6%); border: 1px solid rgba(255,255,255,0.85);
  -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); filter: drop-shadow(0 2px 3px rgba(6,26,58,0.04)) drop-shadow(0 24px 30px rgba(6,26,58,0.1)); }
.pk-search.elementor-widget-search .e-search .e-search-label { flex: none; display: flex; width: 22px; height: 22px; margin: 0; padding: 0; inset: auto; position: static; }
.pk-search.elementor-widget-search .e-search .e-search-label svg { width: 22px; height: 22px; fill: none; }   /* Elementor fills icons; the design icons are outlines */
.pk-search.elementor-widget-search .e-search .e-search-input-wrapper { position: static; flex: 1 1 auto; min-width: 0; display: flex; flex-direction: row; align-items: center; gap: 12px; }
.pk-search.elementor-widget-search .e-search .e-search-input { flex: 1 1 auto; min-width: 0; width: auto; height: auto; min-height: 0; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; outline: none;
  font-family: "Instrument Sans", sans-serif; font-size: 17px; line-height: 1.5; color: #061A3A; text-overflow: ellipsis; }
.pk-search.elementor-widget-search .e-search .e-search-input::placeholder { color: #6E7C95; opacity: 1; }
.pk-search.elementor-widget-search .e-search .e-search-input-wrapper::after { content: "⌘K"; flex: none; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.7); border: 1px solid #FFFFFF;
  font-family: "Instrument Sans", sans-serif; font-weight: 500; font-size: 12px; line-height: 1.5; color: #061A3A; }
.pk-search.elementor-widget-search .e-search .e-search-input-wrapper > svg, .pk-search.elementor-widget-search .e-search .e-search-input-wrapper > i { display: none; }
.pk-search.elementor-widget-search .e-search .e-search-submit { flex: none; display: inline-flex; flex-direction: row; align-items: center; gap: 12px; padding: 6px 6px 6px 18px; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(255,255,255,0.25); color: #FFFFFF; font-family: "Instrument Sans", sans-serif; font-weight: 600; font-size: 15px; line-height: 1.3;
  background: linear-gradient(189.6deg, #1663D0 13.4%, #0A4DA6 86.6%); box-shadow: 0 1px 0 rgba(255,255,255,0.2), 0 12px 28px rgba(10,77,166,0.3); transition: background .2s, transform .2s; }
.pk-search.elementor-widget-search .e-search .e-search-submit span { order: 1; }
.pk-search.elementor-widget-search .e-search .e-search-submit svg { order: 2; width: 34px; height: 34px; padding: 9px; border-radius: 999px; fill: none; background: rgba(255,255,255,0.16); transition: background .2s; }
.pk-search.elementor-widget-search .e-search .e-search-submit:hover { background: linear-gradient(90deg, #3D8BFF, #0A4DA6); }
.pk-search.elementor-widget-search .e-search .e-search-submit:hover svg { background: #030E22; }
.pk-search.elementor-widget-search .e-search .e-search-submit:active { transform: scale(.97); }
.pk-search.elementor-widget-search .e-search .e-search-submit:focus-visible, .pk-search.elementor-widget-search .e-search .e-search-form:focus-within { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
.pk-search.elementor-widget-search .e-search .e-search-submit:focus-visible { outline-offset: 3px; }
.pk-search.elementor-widget-search .e-search .e-search-results-container { position: absolute; left: 0; right: 0; top: calc(100% + 10px); z-index: 20; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.pk-search.elementor-widget-search .e-search .e-search-results { padding: 8px; border-radius: 22px; background: #FFFFFF; box-shadow: 0 2px 6px rgba(6,26,58,0.04), 0 24px 60px rgba(6,26,58,0.16); max-height: 420px; overflow: auto; }
.pk-search.elementor-widget-search .e-search .e-search-results:empty { display: none; }
.pk-search.elementor-widget-search .e-search .e-search-results .e-loop-item > .e-con { box-shadow: none !important; border-color: transparent !important; }
@media (max-width: 767px) {
  .pk-search.elementor-widget-search .e-search .e-search-form { padding: 8px 6px 8px 18px; gap: 10px; }
  .pk-search.elementor-widget-search .e-search .e-search-input { font-size: 16px; }
  .pk-search.elementor-widget-search .e-search .e-search-input-wrapper::after { display: none; }
}
/* Side list: the article being read */
.pk-help-nav .pk-current .pk-nav-bar { background-color: #2ED3B7 !important; }
.pk-help-nav .pk-current .pk-nav-label .elementor-heading-title { color: #061A3A !important; font-weight: 600 !important; }
.pk-help-nav .e-loop-item a:hover .pk-nav-label .elementor-heading-title { color: #061A3A; }
/* Article body: lede, numbered steps, screenshot, tip */
.pk-help-prose > * + * { margin-top: 18px !important; }
.pk-help-prose p { font-size: 17px; line-height: 27px; }
.pk-help-prose .pk-steps { list-style: none; padding: 0; counter-reset: pk-step; display: flex; flex-direction: column; gap: 18px; }
.pk-help-prose .pk-steps li { counter-increment: pk-step; position: relative; display: flex; flex-direction: column; gap: 4px; padding-left: 50px; min-height: 34px; }
.pk-help-prose .pk-steps li::before { content: counter(pk-step); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 99px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(210deg, #1663D0 13.4%, #0A4DA6 86.6%); color: #FFFFFF; font-family: "Geist Mono", monospace; font-weight: 500; font-size: 13px; line-height: 1.5; }
.pk-help-prose .pk-steps strong { font-family: "Bricolage Grotesque", sans-serif; font-weight: 500; font-size: 20px; line-height: 1.15; letter-spacing: -0.015em; color: #061A3A; }
.pk-help-prose .pk-steps span { font-family: "Instrument Sans", sans-serif; font-size: 15.5px; line-height: 23px; color: #3A4A66; }
.pk-help-prose .pk-shot { margin: 0; border: 1px solid rgba(6,26,58,0.08); border-radius: 18px; overflow: hidden; box-shadow: 0 16px 40px rgba(6,26,58,0.12); height: 388px; }
.pk-help-prose .pk-shot img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pk-help-prose .pk-tip { display: flex; gap: 12px; align-items: flex-start; padding: 18px; border-radius: 16px; background: rgba(46,211,183,0.1); border: 1px solid rgba(46,211,183,0.4); }
.pk-help-prose .pk-tip::before { content: ""; flex: none; width: 20px; height: 20px; background: url(../img/spark.svg) center / contain no-repeat; }
.pk-help-prose .pk-tip p { margin: 0; font-size: 15px; line-height: 22px; color: #061A3A; }
@media (max-width: 767px) { .pk-help-prose p { font-size: 16px; line-height: 25px; } .pk-help-prose .pk-shot { height: 219px; } }
/* "Was this helpful?" */
.pk-fb, .e-con.pk-fb { cursor: pointer; transition: background-color .2s, opacity .2s; }
.pk-fb:hover { background-color: #FFFFFF !important; }
.pk-fb:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
.pk-feedback.is-done .pk-fb { cursor: default; }
.pk-feedback.is-done .pk-fb:not(.is-chosen) { opacity: .45; }
.pk-feedback .pk-fb.is-chosen { background-color: #061A3A !important; }
.pk-feedback .pk-fb.is-chosen .elementor-heading-title { color: #FFFFFF; }
.pk-feedback .pk-fb.is-chosen img { filter: brightness(0) invert(1); }
.elementor-widget-search.pk-search { position: relative; z-index: 5; }   /* live results open over the blocks below */
.pk-pager .elementor-pagination span.page-numbers.prev, .pk-pager .elementor-pagination span.page-numbers.next { opacity: .45; }

/* ------------------------------------------------------------------ Cookie banner (W22): fixed bottom-left; bottom sheet on phones */
.pk-cookie { position: fixed !important; left: 40px; bottom: 40px; z-index: 9990 !important; max-width: calc(100vw - 80px); display: none !important; }
.pk-cookie.is-open { display: flex !important; animation: pk-cookie-in .32s cubic-bezier(.22,1,.36,1) both; }
@keyframes pk-cookie-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.pk-cookie .pk-consent-essential { cursor: pointer; }
.pk-cookie .pk-consent-essential:hover { background-color: rgba(6,26,58,0.1) !important; }
@media (max-width: 767px) {
  .pk-cookie { left: 12px; right: 12px; bottom: 24px; max-width: none; width: auto !important; }
  /* the banner lives in the footer (an isolated stacking context): the footer is lifted and holds the scrim */
  body.pk-cookie-open .pk-footer { z-index: 10000 !important; }
  body.pk-cookie-open .pk-footer::after { content: ""; position: fixed; inset: 0; z-index: 9989; background: rgba(3,14,34,0.35); animation: pk-fade .2s ease-out; }
}
@media (prefers-reduced-motion: reduce) { .pk-cookie.is-open { animation: none; } }

/* ------------------------------------------------------------------ Book a demo · pick a time (W13b) */
.pk-cal-day, .e-con.pk-cal-day { transition: background-color .2s, color .2s; }
.pk-cal-day.is-empty, .pk-cal-day.is-off { background: transparent !important; background-image: none !important; }
.pk-cal-day.is-off .elementor-heading-title, .pk-cal-day.is-empty .elementor-heading-title { color: #6E7C95 !important; font-weight: 400 !important; }
.pk-cal-day.is-available { cursor: pointer; background: rgba(10,77,166,0.07) !important; background-image: none !important; }
.pk-cal-day.is-available .elementor-heading-title { color: #1663D0 !important; font-weight: 600 !important; }
.pk-cal-day.is-available:hover { background: rgba(10,77,166,0.14) !important; }
.pk-cal-day.is-selected { background: linear-gradient(207deg, #1663D0 13.4%, #0A4DA6 86.6%) !important; box-shadow: 0 8px 18px rgba(10,77,166,0.25); }
.pk-cal-day.is-selected .elementor-heading-title { color: #FFFFFF !important; font-weight: 600 !important; }
.pk-cal-day:focus-visible, .pk-cal-prev:focus-visible, .pk-cal-next:focus-visible, .pk-slot:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
.pk-cal-prev, .pk-cal-next { cursor: pointer; }
.pk-cal-prev.is-disabled, .pk-cal-next.is-disabled { opacity: .3; cursor: default; }
.pk-slot, .e-con.pk-slot { background: rgba(255,255,255,0.9) !important; border-color: rgba(6,26,58,0.1) !important; transition: background-color .2s, border-color .2s; cursor: pointer; }
.pk-slot:hover { border-color: rgba(22,99,208,0.45) !important; }
.pk-slot .elementor-heading-title { color: #061A3A !important; }
.pk-slot .elementor-widget-image { display: none; }
.pk-slot::after { content: ""; flex: none; width: 16px; height: 16px; margin-left: auto; }
.pk-slot.is-selected { background: #061A3A !important; border-color: transparent !important; }
.pk-slot.is-selected .elementor-heading-title { color: #FFFFFF !important; }
.pk-slot.is-selected::after { background: url(../img/check-light.svg) center / contain no-repeat; }
.pk-book-confirm .elementor-button.is-busy, .pk-book-confirm a.is-busy { opacity: .6; pointer-events: none; }
.pk-book-msg { margin: 12px 0 0; font-family: "Instrument Sans", sans-serif; font-size: 14px; color: #B42318; }
.pk-addcal, .e-con.pk-addcal { cursor: pointer; transition: background-color .2s; }
.pk-addcal:hover { background-color: #FFFFFF !important; }
.pk-addcal.is-disabled { cursor: default; }

/* ------------------------------------------------------------------ Free Google check · radius slider */
.pk-form input.pk-range { -webkit-appearance: none; appearance: none; width: 100%; height: 22px; padding: 0; margin: 4px 0 0; border: 0 !important; background: none !important; box-shadow: none !important; }
.pk-form input.pk-range::-webkit-slider-runnable-track { height: 6px; border-radius: 3px; background: linear-gradient(90deg, #1663D0, #2ED3B7) 0 0 / var(--pk-fill, 10%) 100% no-repeat, rgba(6,26,58,0.1); }
.pk-form input.pk-range::-moz-range-track { height: 6px; border-radius: 3px; background: linear-gradient(90deg, #1663D0, #2ED3B7) 0 0 / var(--pk-fill, 10%) 100% no-repeat, rgba(6,26,58,0.1); }
.pk-form input.pk-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border-radius: 50%; background: #FFFFFF; border: 2px solid #1663D0; box-shadow: 0 4px 10px rgba(10,77,166,0.3); cursor: grab; }
.pk-form input.pk-range::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #FFFFFF; border: 2px solid #1663D0; box-shadow: 0 4px 10px rgba(10,77,166,0.3); cursor: grab; }
.pk-form input.pk-range:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }

/* ------------------------------------------------------------------ Support request · sent panel */
.pk-sent { display: none !important; }
.pk-sent.is-shown, body.elementor-editor-active .pk-sent { display: flex !important; animation: pk-fade .4s ease-out; }
.pk-cal-prev img { transform: rotate(180deg); }   /* the frame draws two "›"; previous month points back */

/* ================================================================== Motion (motion.js) · Figma "Motion system"
   reveal cubic-bezier(.22,1,.36,1) 560ms · text mask (.65,0,.35,1) 600ms · hover 200ms · stagger 70–90ms */
.pk-motion .pk-reveal { opacity: 0; translate: 0 18px; transition: opacity .6s cubic-bezier(.22,1,.36,1) var(--pk-d, 0ms), translate .7s cubic-bezier(.22,1,.36,1) var(--pk-d, 0ms); }
.pk-motion .pk-reveal--soft { translate: 0 10px; }
.pk-motion .pk-reveal--deep { translate: 0 40px; }
.pk-motion .pk-reveal.is-in { opacity: 1; translate: none; }
/* masked headline: the line rises from behind the heading's own box */
/* (room under the box for descenders, which used to pop in when the clip came off; ease-out so the line moves at once) */
.pk-motion .pk-mask { clip-path: inset(-0.25em -100vw -0.22em -100vw); }
.pk-motion .pk-mask .elementor-heading-title { translate: 0 115%; transition: translate .75s cubic-bezier(.22,1,.36,1) var(--pk-d, 0ms); }
.pk-motion .pk-mask.is-in .elementor-heading-title { translate: none; }
.pk-motion .pk-mask.is-done { clip-path: none; }
/* line draws, left to right, 1.2s */
.pk-motion .pk-drawing { clip-path: inset(0 100% 0 0); transition: clip-path 1.2s cubic-bezier(.22,1,.36,1); }
.pk-motion .pk-drawing.is-in { clip-path: inset(0 0 0 0); }
@property --pk-sweep { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.pk-motion .pk-drawing.pk-radial { clip-path: none; -webkit-mask-image: conic-gradient(#000 var(--pk-sweep), transparent 0); mask-image: conic-gradient(#000 var(--pk-sweep), transparent 0);
  transition: --pk-sweep 1.3s cubic-bezier(.65,0,.35,1); }
.pk-motion .pk-drawing.pk-radial.is-in { --pk-sweep: 360deg; }
/* float cards bob ±4px on an 8s sine, each on its own beat (motion.js), paused off screen (translate composes with
   the parallax transform) */
.pk-motion .pk-float { animation: pk-bob 8s ease-in-out var(--pk-fd, 0s) infinite; }
.pk-motion .pk-float.pk-off { animation-play-state: paused; }
@keyframes pk-bob { 0%, 100% { translate: 0 -4px; } 50% { translate: 0 4px; } }
/* scroll-linked layers: CSS scroll-driven animations where supported (motion.js sets each element's timeline, range
   and end values), so they move with the scroll itself */
@keyframes pk-par { from { transform: translate3d(0, var(--pk-y0, 0px), 0); } to { transform: translate3d(0, var(--pk-y1, 0px), 0); } }
@keyframes pk-fadeout { from { opacity: 1; } to { opacity: 0; } }
@keyframes pk-tilt { from { translate: 0 120px; scale: .92; rotate: x 16deg; } to { translate: 0 0; scale: 1; rotate: x 0deg; } }
@keyframes pk-track { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(var(--pk-shift, 0px), 0, 0); } }
@keyframes pk-line { from { clip-path: inset(0 var(--pk-l0, 85%) 0 0); } to { clip-path: inset(0 var(--pk-l1, 0%) 0 0); } }
[data-pk-speed], [data-pk-speed-inner] { will-change: transform; }
/* marquee: 40s linear, pauses on hover, 80px edge fades */
.pk-marquee-run { flex-wrap: nowrap !important; width: max-content !important; animation: pk-marquee var(--pk-dur, 40s) linear infinite; }
.pk-marquee-mask:hover .pk-marquee-run { animation-play-state: paused; }
.pk-marquee-mask { -webkit-mask-image: linear-gradient(90deg, transparent, #000 80px, #000 calc(100% - 80px), transparent); mask-image: linear-gradient(90deg, transparent, #000 80px, #000 calc(100% - 80px), transparent); overflow: hidden; }
@keyframes pk-marquee { to { transform: translateX(-50%); } }
/* integration orbit: motion.js moves each chip along its ellipse (upright); rings and logo stay still */
.pk-motion .pk-orbit > .e-con-inner > .e-con, .pk-motion .pk-orbit > .e-con { will-change: transform; }
/* stat numbers rise in and count, one after another */
.pk-motion .pk-count { opacity: 0; translate: 0 16px; transition: opacity .6s cubic-bezier(.22,1,.36,1) var(--pk-d, 0ms), translate .7s cubic-bezier(.22,1,.36,1) var(--pk-d, 0ms); }
.pk-motion .pk-count.is-in { opacity: 1; translate: none; }
/* command bar demo */
.pk-cmd-off { opacity: 0; translate: 0 8px; }
.pk-command .pk-results > .elementor-element, .pk-command .pk-results > .e-con-inner > .elementor-element { transition: opacity .3s ease-out, translate .3s ease-out; }
.pk-command .pk-approval { transition: opacity .25s ease-out, translate .25s cubic-bezier(.22,1,.36,1); }
.pk-command .pk-approval.pk-cmd-off { translate: 0 16px; }
/* phone / tablet: the AI glow sits right behind the card's results there, so the glass is a touch darker and the small
   results label gets a soft dark halo (the glow washed it out); desktop keeps the frame's glass */
@media (max-width: 1024px) {
  .e-con.pk-command { background-image: linear-gradient(rgba(3,14,34,0.4), rgba(3,14,34,0.4)); }
  .pk-command .pk-results > .elementor-widget-heading:first-child .elementor-heading-title,
  .pk-command .pk-results > .e-con-inner > .elementor-widget-heading:first-child .elementor-heading-title { text-shadow: 0 0 10px rgba(3,14,34,0.9), 0 0 2px rgba(3,14,34,0.8); }
}
/* pinned horizontal day track */
.pk-pinned { overflow: clip !important; }
.pk-pinned > .e-con-inner { position: sticky; flex: 0 0 auto !important; height: auto !important; min-height: 0 !important; }
.pk-pinned .pk-trackwin { will-change: transform; overflow: visible !important; }   /* the band clips; the window moves */
.pk-node img { transition: opacity .3s; }
.pk-node, .e-con.pk-node { transition: scale .35s cubic-bezier(.22,1,.36,1); }
.pk-node.is-lit { scale: 1.12; }
.pk-paused *, .pk-paused *::before, .pk-paused *::after { animation-play-state: paused !important; }

/* ------------------------------------------------------------------ Cards · Default → Hover ("Hover, press & touch")
   gradient border 1.5px, beam along the top edge (−50% → 25%), spotlight follows the pointer, shadow 30/60 at 16% cobalt,
   content lifts 4px, icon tile teal ring, title cobalt (sky on dark), arrow chip teal and +6px, images 1.07. In 400ms, out 300ms. */
.pk-card, .e-con.pk-card { transition: translate .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s cubic-bezier(.2,.8,.2,1), border-color .4s ease-out, scale .2s ease-out; -webkit-tap-highlight-color: transparent; }
.pk-card::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: var(--pk-r, inherit); padding: 2px; pointer-events: none; opacity: 0; transition: opacity .4s ease-out;
  background: linear-gradient(135deg, #1663D0, #2ED3B7); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.pk-card--dark::after { background: linear-gradient(135deg, #5AB0FF, #2ED3B7); }
.pk-card .pk-beam { transition: opacity .4s ease-out, transform .6s cubic-bezier(.2,.8,.2,1); }
.pk-card .pk-zoom { overflow: hidden; }
.pk-card .pk-zoom img { transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.pk-card .pk-card-title { transition: color .3s ease-out; }
.pk-card .pk-icontile, .pk-card .pk-arrowchip { transition: box-shadow .35s ease-out, background-color .3s ease-out, translate .4s cubic-bezier(.2,.8,.2,1); }
.pk-card .pk-spot { will-change: transform; }
@media (hover: hover) {
  .pk-card:hover { box-shadow: 0 30px 60px rgba(22,99,208,0.16) !important; }
  .pk-motion .pk-card:hover { translate: 0 -4px; }
  .pk-card:hover::after { opacity: 1; }
  .pk-card.e-con:hover { border-color: transparent !important; background-clip: padding-box !important; }   /* one edge: the ring */
  .pk-card:hover .pk-beam { opacity: 1 !important; transform: translateX(150%); transition-duration: .4s, 1.1s; }
  .pk-card:hover .pk-card-title { color: #1663D0 !important; }
  .pk-card--dark:hover .pk-card-title { color: #5AB0FF !important; }
  .pk-card:hover .pk-icontile { box-shadow: 0 0 0 2px #2ED3B7, 0 8px 22px rgba(46,211,183,0.35) !important; }
  .pk-card:hover .pk-arrowchip { background-color: #2ED3B7 !important; }
  .pk-motion .pk-card:hover .pk-arrowchip { translate: 6px 0; }
  .pk-motion .pk-card:hover .pk-zoom img { transform: scale(1.05); }
}
/* touch: a short press instead of a hover state that sticks after the tap */
@media (hover: none) { .pk-motion a.pk-card:active, .pk-motion .pk-card:has(a):active { scale: .985; } }
@media (prefers-reduced-motion: reduce) {
  .pk-card, .pk-card .pk-beam, .pk-card .pk-zoom img { transition: none; }
  .pk-marquee-run, .pk-float, .pk-orbit * { animation: none !important; }
  .pk-btn .elementor-button::after, .pk-faq .e-n-accordion-item-title-icon > span { transition: none; }
}
/* the button sits on the line box's baseline in Elementor (+6px under it): pin it to the top so the widget is the button */
.pk-btn .elementor-button { vertical-align: top; }
/* keyboard focus: 2.5px teal ring, 3px offset ("Hover, press & touch"); no ring for pointer/programmatic focus */
a:focus-visible, [role="button"]:focus-visible, button:focus-visible { outline: 2.5px solid #2ED3B7; outline-offset: 3px; }
a:focus:not(:focus-visible) { outline: none; }
/* hug-width items holding a no-wrap label keep their width (Elementor lets e-con children shrink to 0, so the label
   ran into its neighbour, e.g. the hero trust row) */
@media (min-width: 768px) { .e-con > .e-con.e-flex.pk-nwbox, .e-con-inner > .e-con.e-flex.pk-nwbox { flex-shrink: 0; } }
/* "Works alongside" chips stay one row (the marquee moves it; with reduced motion it is a still, clipped row) */
.pk-marquee { flex-wrap: nowrap !important; }
.pk-marquee > .elementor-element, .pk-marquee > .e-con-inner > .elementor-element { flex-shrink: 0 !important; }
.pk-marquee .elementor-heading-title { white-space: nowrap; }
@media (max-width: 767px) { .e-con > .pk-grow-m, .e-con-inner > .pk-grow-m { flex: 1 1 0% !important; min-width: 1px; } }
@media (max-width: 767px) { .pk-form.pk-btn--mfull .elementor-field-type-submit .elementor-button { width: 100%; } .pk-form.pk-btn--mfull .elementor-button-content-wrapper { justify-content: space-between !important; width: 100%; } }
/* radius slider: label and value on one line, scale spread under the track */
.pk-form .elementor-field-group-radius > label { display: flex; justify-content: space-between; width: 100%; }
.pk-form .elementor-field-group-radius .pk-range-row { flex-basis: 100%; width: 100%; }
/* the frame's slider block: label 10 track(6) 10 scale = 64px; the 22px thumb overhangs the track */
.pk-form .elementor-field-group-radius > label { margin-bottom: 10px !important; }
.pk-form .elementor-field-group-radius input.pk-range { margin: -8px 0 !important; min-height: 0 !important; height: 22px !important; padding: 0 !important; }
.pk-form .elementor-field-group-radius .pk-range-row { margin-top: 10px; line-height: 1.5; }
/* absolute layers (video posters, glows) keep their design size; Elementor caps widgets at the container width */
.e-con > .elementor-widget.elementor-absolute, .e-con-inner > .elementor-widget.elementor-absolute { max-width: none !important; }
/* footer link columns: equal shares on desktop; 165px columns that wrap two by two below 1025px */
@media (min-width: 1025px) { .e-con > .pk-fcol, .e-con-inner > .pk-fcol { flex: 1 1 0% !important; min-width: 1px; } }
.pk-dot { display: inline-block; width: .86em; height: .86em; border-radius: 50%; background: currentColor; vertical-align: -.08em; }
.pk-form select:has(option[value=""]:checked) { color: #6E7C95 !important; }   /* "Choose a topic" reads as a placeholder */
