.elementor-kit-5{--e-global-color-primary:#00567f;--e-global-color-secondary:#002b40;--e-global-color-text:#42525c;--e-global-color-accent:#59a4c7;--e-global-color-55da99e:#003c59;--e-global-color-745f509:#001a27;--e-global-color-3ba7c85:#9ad7f0;--e-global-color-f3e80be:#a00404;--e-global-color-f1fc229:#f2f3f5;--e-global-typography-primary-font-family:"Ubuntu";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Ubuntu";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Ubuntu";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Ubuntu";--e-global-typography-accent-font-weight:700;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1180px;}.e-con{--container-max-width:1180px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============ 1. HERO ============ */
.hero-gradient-text {
	background: linear-gradient(100deg, #9ad7f0, #59a4c7);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ============ 2. PILLS / BADGES ============ */
.pts-pill {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 9px 18px;
	border-radius: 100px;
}
.pts-pill--red   { background: #a00404; color: #fff; }
.pts-pill--sky   { background: #9ad7f0; color: #001a27; }
.pts-pill--grey  { background: #e2e7eb; color: #6b7c88; }
.pts-pill__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	display: inline-block;
	flex: 0 0 8px;
}
.pts-pill--red .pts-pill__dot { background: #fff; }

/* ============ 3. STAT STRIP ============ */
.pts-stat        { text-align: center; }
.pts-stat__num   { font-size: 2.4rem; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -.025em; }
.pts-stat__label { font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
                   color: rgba(198,224,238,.74); margin-top: 12px; line-height: 1.4; }

/* Hero proof strip — same idea, smaller scale */
.pts-hstat__num   { font-size: 1.7rem; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -.02em; }
.pts-hstat__label { font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
                    color: rgba(198,224,238,.74); margin-top: 8px; line-height: 1.4; }

/* The light-blue unit on a figure: %, /5, +, yrs */
.pts-u { color: #9ad7f0; font-size: .62em; }

/* ============ 4. PERFORMANCE HIGHLIGHTS ============ */
.pts-hl__num   { font-size: 2.1rem; font-weight: 700; color: #fff; line-height: 1; }
.pts-hl__label { font-size: .86rem; color: rgba(205,229,241,.8); margin-top: 10px; line-height: 1.55; }

/* ============ 5. IMAGE OVERLAY PANEL ============ */
.pts-float__num   { font-size: 1.55rem; font-weight: 700; color: #fff; line-height: 1; }
.pts-float__label { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
                    color: rgba(198,224,238,.78); margin-top: 6px; line-height: 1.4; }

/* ============ 6. QUOTE / NOTE / CALLOUT ============ */
.pts-quote p      { font-style: italic; font-size: 1.04rem; line-height: 1.7; margin: 0; }
.pts-quote cite   { display: block; margin-top: 12px; font-size: .8rem; font-weight: 700; letter-spacing: .14em;
                    text-transform: uppercase; color: #00567f; font-style: normal; }
.pts-note h4      { margin: 0 0 8px; }
.pts-note p       { margin: 0; font-size: .95rem; }
.pts-callout strong { display: block; margin-bottom: 5px; color: #a00404; font-size: .95rem; }
.pts-callout p      { margin: 0; font-size: .92rem; }
.pts-callout__second { margin-top: 10px !important; }

/* ============ 7. STEPS & PLANS ============ */
.pts-step-num {
	width: 48px; height: 48px; border-radius: 50%;
	background: linear-gradient(135deg, #00567f, #002b40);
	color: #fff; font-weight: 700; font-size: 1.12rem;
	display: flex; align-items: center; justify-content: center;
}
.pts-eyebrow  { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #00567f; }
.pts-plan-price {
	padding: 14px 0; margin-bottom: 14px;
	border-top: 1px solid #eef2f5; border-bottom: 1px solid #eef2f5;
	font-size: 1.3rem; font-weight: 700; color: #002133;
}

/* ============ 8. VS MARKER ============ */
.pts-vs {
	width: 54px; height: 54px; border-radius: 50%;
	background: #fff; border: 1px solid #e3e8ec;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: .8rem; color: #00567f; letter-spacing: .06em;
	margin: 0 auto;
}

/* ============ 9. HEADER BITS ============ */
.pts-topmsg      { display: inline-flex; align-items: center; gap: 10px; font-size: .83rem; color: #fff; font-weight: 500; }
.pts-topmsg--sub { color: rgba(228,241,247,.72); font-weight: 400; }
.pts-topmeta     { display: inline-flex; align-items: center; gap: 22px; font-size: .83rem; color: rgba(228,241,247,.8); }
.pts-topmeta a   { color: #9ad7f0; font-weight: 500; text-decoration: none; }
/* One-page nav: every item is a hash link to this same page, so WordPress
   flags them all current-menu-item and Elementor paints a permanent underline
   under each. Suppress that, and highlight only Performance — the client
   asked for the archives to stand out. */
.elementor-nav-menu--main .elementor-item.elementor-item-active { color: #002133; }
.elementor-nav-menu--main .elementor-item.elementor-item-active:not(:hover):after { width: 0; }
.elementor-nav-menu--main li.nav-hot .elementor-item,
.elementor-nav-menu--main li.nav-hot .elementor-item.elementor-item-active { color: #00567f !important; font-weight: 700; }
.elementor-nav-menu--main li.nav-hot .elementor-item:after { width: 100%; }

.pts-brandtag {
	display: block; border-left: 1px solid #e3e8ec; padding-left: 14px;
	font-size: .66rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
	color: #00567f; line-height: 1.45; max-width: 150px;
}

/* Closing-out classes introduced by the inline-style refactor */
.pts-topmsg__dot { width: 8px; height: 8px; border-radius: 50%; background: #e64444;
                   display: inline-block; flex: 0 0 8px; }
.pts-formsub p   { margin: 0; font-size: .87rem; color: rgba(219,238,247,.86); line-height: 1.6; }
.pts-onlight p   { color: rgba(228,241,247,.86); margin: 0; }

/* ============ 10. TYPOGRAPHY HELPERS ============ */
.pts-lead     { font-size: 1.15rem; line-height: 1.75; }
.pts-lead--c  { text-align: center; font-size: 1.1rem; }
.pts-onlight  { color: rgba(228,241,247,.86); }
.pts-footnote { font-size: .79rem; color: #6b7c88; margin: 0; }
.pts-footnote--light { color: rgba(228,241,247,.6); text-align: center; margin-top: 16px; font-size: .85rem; }
.pts-sup      { color: #59a4c7; font-weight: 700; font-size: .62em; }

/* ============ 11. FOOTER DISCLOSURE ============ */
.pts-disclosure h6 { color: #9ad7f0; font-size: .74rem; font-weight: 700; letter-spacing: .18em;
                     text-transform: uppercase; margin: 0 0 16px; }
.pts-disclosure p  { font-size: .82rem; line-height: 1.75; color: rgba(178,203,217,.68); }
.pts-disclosure strong { color: #cfe6f1; }
.pts-disclosure em { font-size: .78rem; color: rgba(160,188,204,.55); }
.pts-fineprint { color: rgba(190,214,227,.78); font-size: .84rem; }

/* ============ 12. CARD HOVER ============ */
.pop-card { position: relative; overflow: hidden;
            transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease; }
.pop-card::before {
	content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0;
	background: linear-gradient(90deg, #00567f, #59a4c7);
	transition: width .35s ease; z-index: 2;
}
.pop-card:hover { transform: translateY(-6px); box-shadow: 0 12px 32px rgba(0,43,64,.12); }
.pop-card:hover::before { width: 100%; }

/* Acceptance field styled as a bordered tile, matching the HTML form card */
.elementor-field-type-acceptance {
	background: linear-gradient(135deg, #f4f9fc, #eef6fa);
	border: 1.5px solid #d8e7ef;
	border-radius: 4px;
	padding: 15px 17px;
	transition: border-color .2s ease, background .2s ease;
}
.elementor-field-type-acceptance:hover { border-color: #59a4c7; background: #eaf5fa; }
.elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: center; gap: 12px; }
.elementor-field-type-acceptance input[type=checkbox] {
	appearance: none; -webkit-appearance: none;
	width: 21px; height: 21px; flex: 0 0 21px; margin: 0;
	border: 2px solid #2f7fa8; border-radius: 3px; background: #fff;
	cursor: pointer; position: relative; transition: all .18s ease;
}
.elementor-field-type-acceptance input[type=checkbox]:checked { background: #00567f; border-color: #00567f; }
.elementor-field-type-acceptance input[type=checkbox]:checked::after {
	content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px;
	border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
.elementor-field-type-acceptance label {
	font-size: .94rem; font-weight: 500; color: #002133; line-height: 1.5; cursor: pointer;
}

/* ============ 13. ANCHOR SCROLL OFFSET ============ */
/* The header is sticky, so an anchor jump would otherwise land with the
   section heading hidden underneath it. */
html { scroll-behavior: smooth; }
#service, #performance, #about, #night, #how, #plans, #why-private, #apply {
	scroll-margin-top: 96px;
}
/* The performance page carries a second sticky bar (the jump nav) under the
   header, so its anchors need to clear both: 86px header + 69px jump. */
#recent, #monthly {
	scroll-margin-top: 168px;
}
@media (max-width: 767px) {
	#recent, #monthly {
		scroll-margin-top: 140px;
	}
}

.pts-jump { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 10px; }
.pts-jump a {
	display: inline-block; font-size: .74rem; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; padding: 8px 16px; border-radius: 100px;
	color: #9ad7f0; background: rgba(89,164,199,.12);
	border: 1px solid rgba(89,164,199,.30); text-decoration: none;
	transition: background .2s ease, border-color .2s ease;
}
.pts-jump a:hover { background: rgba(89,164,199,.26); border-color: #59a4c7; }
@media (max-width: 767px) {
	#service, #performance, #about, #night, #how, #plans, #why-private, #apply {
		scroll-margin-top: 76px;
	}
}

.pts-state {
	display: inline-block; font-size: .68rem; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase;
	padding: 5px 12px; border-radius: 100px;
	background: rgba(89,164,199,.16); color: #9ad7f0;
	border: 1px solid rgba(89,164,199,.34);
}
.pts-state--pending { background: rgba(255,255,255,.06); color: rgba(205,229,241,.7);
                       border-color: rgba(255,255,255,.16); }
/* On the light striped "pending" blocks the translucent pill washes out, so it
   gets a solid treatment there instead. */
.pending-cell .pts-state--pending {
	background: #ffffff; color: #6b7c88; border-color: #d3dde3;
	box-shadow: 0 1px 3px rgba(0,43,64,.08);
}

.pts-crumb { font-size: .88rem; color: rgba(205,229,241,.72); }
.pts-crumb a { color: #9ad7f0; text-decoration: none; }
.pts-crumb a:hover { color: #fff; }
.pts-eyebrow-c {
	display: inline-flex; align-items: center; gap: 10px;
	font-size: .73rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
	color: #00567f;
}
.pts-eyebrow-c::before { content: ""; width: 34px; height: 2px; background: #59a4c7; display: block; }
.pts-arch__cta {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: #fff; background: linear-gradient(135deg,#00567f,#002b40);
	padding: 13px 24px; border-radius: 4px; text-decoration: none;
	transition: background .25s ease, transform .25s ease;
}
.pts-arch__cta:hover { background: #2f7fa8; color: #fff; transform: translateY(-2px); }

/* Dark performance cards -- lift and brighten on hover, as in the mockup */
.pts-darkcard {
	transition: background .3s ease, border-color .3s ease,
	            transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease;
}
.pts-darkcard:hover {
	background: rgba(255,255,255,.13) !important;
	border-color: #59a4c7 !important;
	transform: translateY(-6px);
	box-shadow: 0 20px 44px rgba(0,20,32,.4);
}
.pts-darkcard .elementor-button { transition: transform .25s ease; }
.pts-darkcard:hover .elementor-button { transform: translateX(5px); }

/* Monthly returns grid -- month-by-month figures, not a trade log */
.pts-year { background: #fff; border: 1px solid #e3e8ec; border-radius: 8px; overflow: hidden; }
.pts-year__head {
	display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
	justify-content: space-between; padding: 16px 22px;
	background: #002133;
}
.pts-year__head h3 { margin: 0; color: #fff; font-size: 1.15rem; }
.pts-months {
	display: grid; grid-template-columns: repeat(12, 1fr);
	border-top: 1px solid #e3e8ec;
}
.pts-month {
	padding: 16px 8px; text-align: center; border-right: 1px solid #eef2f5;
	background: repeating-linear-gradient(45deg,#fafbfc,#fafbfc 8px,#f2f4f6 8px,#f2f4f6 16px);
}
.pts-month:last-child { border-right: 0; }
.pts-month__m {
	font-size: .66rem; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: #6b7c88;
}
.pts-month__v { font-size: 1.05rem; font-weight: 700; color: #a9b6bf; margin-top: 6px; }
@media (max-width: 1024px) { .pts-months { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 600px)  { .pts-months { grid-template-columns: repeat(3, 1fr); } }

/* Archive card: dark header bar, scrolling table, footer bar with a CTA. */
.pts-arch { border-radius: 8px; overflow: hidden; }
.pts-arch__head {
	display: flex; flex-wrap: wrap; gap: 14px; align-items: center;
	justify-content: space-between; padding: 20px 26px;
	background: #002133; color: #fff;
}
.pts-arch__head h3 { margin: 0; color: #fff; font-size: 1.1rem; }
.pts-arch__badge {
	display: inline-flex; align-items: center; gap: 9px; font-size: .72rem;
	font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #9ad7f0;
}
.pts-arch__foot {
	display: flex; flex-wrap: wrap; gap: 16px; align-items: center;
	justify-content: space-between; padding: 18px 26px;
	background: #f2f3f5; border-top: 1px solid #e3e8ec;
}
.pts-arch__foot p { margin: 0; font-size: .85rem; color: #6b7c88; }

/* Empty table shell for a section still awaiting its records */
.pts-shell { background: #fff; }
.pts-shell table { width: 100%; border-collapse: collapse; min-width: 900px; }
.pts-shell th {
	font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
	color: #6b7c88; text-align: left; padding: 14px 16px;
	background: #f2f3f5; border-bottom: 1px solid #e3e8ec; white-space: nowrap;
}
.pts-shell__empty { padding: 46px 26px; text-align: center; }
.pts-shell__empty strong { display: block; margin-bottom: 8px; color: #002133; }
.pts-shell__empty p { margin: 0; font-size: .92rem; color: #6b7c88; }
.pts-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ============ MOBILE: TABLES BECOME CARDS ============
   These tables are 7 and 12 columns wide. On a phone the money columns sat off
   the right edge with no scroll cue, so the page read as empty -- which is what
   the client reported. Below 767px each row restacks as a labelled card, so
   every figure is visible without any horizontal scrolling. */
@media (max-width: 767px) {
	.tablepress { min-width: 0 !important; display: block; }
	.tablepress thead { display: none; }
	.tablepress tbody { display: block; }
	.tablepress tbody tr {
		display: block; margin: 0 0 14px;
		border: 1px solid #e3e8ec; border-radius: 6px;
		background: #fff !important; overflow: hidden;
	}
	.tablepress tbody td {
		display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
		padding: 10px 14px !important; border: 0 !important;
		border-bottom: 1px solid #f2f4f6 !important;
		background: transparent !important; text-align: right;
	}
	.tablepress tbody td:last-child { border-bottom: 0 !important; }
	.tablepress tbody td::before {
		content: attr(data-label);
		flex: 0 0 auto; text-align: left;
		font-size: .68rem; font-weight: 700; letter-spacing: .1em;
		text-transform: uppercase; color: #6b7c88;
	}
	/* A row with nothing in it adds noise on a small screen. */
	.tablepress tbody td:empty { display: none; }
}

/* ============ TABLES IN THE CLIENT'S OWN FORMAT ============ */
/* The client sent screenshots of his own sheets and asked to keep the same
   format. Reproduced as sent: grey header band, zebra rows, monthly figures
   centred and bold with whole-column colours (Profit Points green, Loss
   Points red, Percentage purple, Net Profit black), trade log left-aligned
   with the exit P/L figures coloured by sign. No pills, no animation. */
/* Client: "make the display for the performance smaller" — compact cells. */
.tablepress { font-size: .85rem; }
.tablepress thead th {
	/* Client: black header text — the sheet's white was unreadable on grey. */
	background: #d9d9d9 !important; color: #1a1a1a !important;
	font-weight: 700; padding: 8px 10px; border: 0 !important;
}
.tablepress tbody td {
	padding: 7px 10px; color: #1a1a1a;
	border: 0 !important; border-bottom: 1px solid #eaeaea !important;
	font-variant-numeric: tabular-nums;
}

/* The trade log runs to 69 rows across three sets, so the whole breakdown
   scrolls inside one fixed-height box instead of stretching the page. Each
   table's grey header stays pinned while that table is in view. */
/* nowrap matters: a height-capped column container with wrap spills its
   widgets into side-by-side columns instead of scrolling. And the children
   must not flex-shrink, or every table compresses into its own tiny
   scrollable sliver instead of the box scrolling as one. */
.pts-trades-scroll { max-height: 620px; overflow-y: auto; flex-wrap: nowrap !important; }
.pts-trades-scroll > .elementor-element { flex-shrink: 0; }
.pts-trades-scroll .tablepress thead th { position: sticky; top: 0; z-index: 2; }

/* One heading per emailed set — the client asked to keep his breakdown. */
.pts-set-head {
	font-weight: 700; font-size: .92rem; color: #002133;
	padding: 10px 14px; background: #e8edf1;
	border-left: 4px solid #00567f; border-radius: 3px;
}

/* Client (mobile): "all the performance is on bottom?" — anything carrying
   this class stacks above the monthly table on a phone, so it is hidden
   there. Used by the hero form card and the hero proof strip; the Apply
   section still carries the form. */
@media (max-width: 767px) {
	.pts-m-hide { display: none !important; }
}
.tablepress tbody tr:nth-child(odd)  td { background: #ffffff !important; }
.tablepress tbody tr:nth-child(even) td { background: #f2f2f2 !important; }
.tablepress tbody tr:hover td { background: inherit; }

/* His monthly sheet: everything centred and bold */
.pts-tbl-monthly thead th, .pts-tbl-monthly tbody td { text-align: center; }
.pts-tbl-monthly tbody td { font-weight: 700; }

/* His trade grid: left aligned */
.pts-tbl-trades thead th { text-align: left; }
.pts-tbl-trades tbody td { text-align: left; }

/* His column colours, applied by the script by header name, not position */
.tablepress td.pts-c-green  { color: #009933; }
.tablepress td.pts-c-red    { color: #e60000; }
.tablepress td.pts-c-purple { color: #993399; }
.tablepress td.pl-up   { color: #009933; font-weight: 700; }
.tablepress td.pl-down { color: #e60000; font-weight: 700; }

/* The monthly layout and column colours restated by table id, so the format
   holds even where the tagging script has not run. cleanup_previous_build()
   resets TablePress ids, and the build order fixes them: 1 = monthly summary
   (built first), 2/3/4 = the three trade sets. Columns 4/5/6 = Profit Points
   / Loss Points / Percentage — our own build writes them in that order. */
.tablepress-id-1 thead th, .tablepress-id-1 tbody td { text-align: center; }
.tablepress-id-1 tbody td { font-weight: 700; }
.tablepress-id-1 tbody td.column-4 { color: #009933; }
.tablepress-id-1 tbody td.column-5 { color: #e60000; }
.tablepress-id-1 tbody td.column-6 { color: #993399; }

/* Hero headline figure -- count-up plus a slow shimmer. Same restraint. */
.pts-hook {
	display: inline-flex; align-items: baseline; gap: 10px;
	padding: 14px 22px; border-radius: 6px;
	background: rgba(0,26,39,.42);
	border: 1px solid rgba(89,164,199,.38);
	animation: ptsHook 3s ease-in-out infinite;
}
.pts-hook__num {
	font-size: 2.5rem; font-weight: 700; color: #9ad7f0; line-height: 1; letter-spacing: -.02em;
}
.pts-hook__label {
	font-size: .74rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase;
	color: rgba(198,224,238,.8);
}
@keyframes ptsHook {
	0%, 100% { border-color: rgba(89,164,199,.38); box-shadow: 0 0 0 0 rgba(89,164,199,0); }
	50%      { border-color: rgba(154,215,240,.75); box-shadow: 0 0 22px 0 rgba(89,164,199,.28); }
}

/* Anyone who has asked their OS to reduce motion gets none of it. */
@media (prefers-reduced-motion: reduce) {
	.pts-hook { animation: none; }
}

/* ============ 14. ARCHIVE TABLE ============ */
/* 11 columns — must scroll inside its own box or it widens the whole page. */
.elementor-widget-shortcode { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tablepress { min-width: 900px; }

/* Placeholder cells awaiting Gary's archive data */
.pending-cell {
	background: repeating-linear-gradient(45deg, #f2f3f5, #f2f3f5 10px, #e9edf0 10px, #e9edf0 20px);
}/* End custom CSS */