@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,600;1,9..144,400&family=Inter:wght@400;600;700&display=swap");

/* Ben's look on the engine's own pages: the checkout, the one-click offer pages,
   the thank-you page, the legal pages and the 404. Linked after the engine's
   brand.css through brand.stylesheet, so these rules win. Fonts and colours
   match the sales page and his brand guide: navy base, scarlet buttons with white
   text, gold for the highlighter, the labels on navy and the corner brackets,
   Fraunces 600 for headings and Inter for body and labels. */

:root {
  --accent: #A30D24;
  --ink: #1D2638;
  --muted: #55607A;
  --bg: #F8F5EE;
  --panel: #FFFFFF;
  --line: #E4DBC6;
  --radius: 12px;
  --font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  --head: "Fraunces", Georgia, "Times New Roman", serif;
  --night: #0A1730;
  --night-2: #11294F;
  --night-line: #2C4C7C;
  --accent-hover: #850A1D;
  --accent-soft: #F7E6E9;
  --accent-ring: #E3A3AE;
  --hl: #C8A24B;
  --hl-soft: #F5EDD8;
  --hl-ink: #6E5418;
  --sand: #EFE6D2;
  --mist: #D9E0EC;
  --body: #2F3A50;
}

/* every page */
html { overflow-x: clip; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 {
  font-family: var(--head);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: #0A1730;
  text-wrap: balance;
}
h1 { font-size: 32px; line-height: 1.12; }
h2 { font-size: 23px; line-height: 1.2; }
h3 { font-size: 18px; }
a { color: #11294F; }
::selection { background: var(--hl); color: #0A1730; }

.site-head {
  background: var(--night);
  border-bottom: 2px solid var(--hl);
  padding: 12px 16px;
  text-align: center;
}
.site-head .wordmark {
  font-family: var(--font);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hl);
}

/* the plain pages (thank-you, legal, 404, the plain offer page) sit in one white card with thin gold corner brackets */
main:not(.co):not(.op):not(.dp) {
  position: relative;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(10, 23, 48, 0.08);
  margin: 26px auto 34px;
  padding: 8px 20px 40px;
}
main:not(.co):not(.op):not(.dp)::after {
  content: "";
  position: absolute;
  inset: 10px;
  pointer-events: none;
  background:
    linear-gradient(#C8A24B, #C8A24B) left top / 24px 2px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) left top / 2px 24px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) right top / 24px 2px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) right top / 2px 24px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) left bottom / 24px 2px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) left bottom / 2px 24px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) right bottom / 24px 2px no-repeat,
    linear-gradient(#C8A24B, #C8A24B) right bottom / 2px 24px no-repeat;
}
@media (max-width: 430px) {
  main:not(.co):not(.op):not(.dp) { margin: 16px 10px 26px; width: auto; padding: 4px 16px 32px; }
}
.lede { color: var(--body); }
.warn { color: var(--muted); }
.announce {
  background: var(--night);
  color: var(--hl);
  font-family: var(--font);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.price .now { color: var(--accent); font-family: var(--head); font-weight: 600; }
.card { background: var(--bg); border-color: var(--line); border-radius: 14px; }
blockquote { background: var(--bg); border-left-color: var(--hl); }
.when {
  background: var(--hl-soft);
  border: 1px solid #E2CF9C;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 15.5px;
}
.when strong { color: #0A1730; }
.item-access { border-top-color: var(--line); }
.offer-image, .media-frame { border-radius: 14px; }
.tap { color: var(--accent); font-weight: 700; }

.btn {
  background: var(--accent);
  color: #FFFFFF;
  font-family: var(--font);
  font-weight: 700;
  font-size: 19px;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(163, 13, 36, 0.28), inset 0 -3px 0 rgba(0, 0, 0, 0.2);
  letter-spacing: -0.005em;
  line-height: 1.25;
  padding: 15px 18px;
}
main p .tap { min-height: 0; line-height: inherit; padding: 0 2px; }
@media (hover: hover) {
  .btn:hover { background: var(--accent-hover); }
}
.btn:focus-visible { outline: 3px solid var(--hl); outline-offset: 3px; }

.field { border-color: #CFC2A2; border-radius: 10px; }
.field:focus { outline: none; border-color: #11294F; box-shadow: 0 0 0 3px #B8C6DD; }
.bump { border-color: var(--hl); background: var(--hl-soft); }
.total { color: #0A1730; }

.site-foot {
  background: #060F22;
  border-top: 2px solid var(--hl);
  color: #A9B6CC;
}
.site-foot a { color: var(--mist); }
.site-foot .foot-biz { color: #A9B6CC; }

/* the checkout, in the Sell While You Sleep 2.0 layout the engine draws */
main.co {
  --co-accent: #A30D24;
  --co-accent-hover: #850A1D;
  --co-deep: #0A1730;
  --co-gold: #C8A24B;
  --co-gold-ink: #6E5418;
  --co-tint: #ECEFF5;
  --co-ring: #B8C6DD;
  --co-cream: #F8F5EE;
  --co-ink: #1D2638;
  --co-text: #2F3A50;
  --co-muted: #55607A;
  --co-line: #E4DBC6;
  --co-card-line: #CFC2A2;
  --co-head: "Fraunces", Georgia, "Times New Roman", serif;
  --co-body: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  background: var(--bg);
}
.co-strip { color: var(--mist); }
.co-eyebrow { background: var(--night); color: var(--hl); letter-spacing: 0.16em; }
.co-head .when { background: var(--hl-soft); }
.co-bump { border-color: var(--co-gold); background: #FBF5E6; }
.co-bump:has(input:checked) { border-color: #11294F; background: var(--co-tint); }
.co-bump-price { font-family: var(--font); font-weight: 700; color: #fff; }
.co-recap { border-color: var(--night); }
.co-includes svg { color: #11294F; }
.co-trust span { background: var(--sand); }
.co-gtee { background: var(--night); }
.co-gtee .t { color: var(--hl); }
#payBtn {
  background: var(--co-accent);
  color: #FFFFFF;
  font-family: var(--font);
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(163, 13, 36, 0.3), inset 0 -3px 0 rgba(0, 0, 0, 0.2);
  border-radius: 12px;
}
@media (hover: hover) {
  #payBtn:hover { background: var(--co-accent-hover); }
}

/* the designed one-click offer pages */
.op {
  --op-accent: #A30D24;
  --op-accent-hover: #850A1D;
  --op-deep: #11294F;
  --op-deepest: #0A1730;
  --op-gold: #C8A24B;
  --op-cream: #F8F5EE;
  --op-ink: #1D2638;
  --op-text: #2F3A50;
  --op-muted: #55607A;
  --op-line: #E4DBC6;
  --op-card-line: #CFC2A2;
  --op-head: "Fraunces", Georgia, "Times New Roman", serif;
  --op-body: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
}
.op .op-kicker, .op .op-eyebrow, .op .op-exit-kicker { color: var(--accent); letter-spacing: 0.16em; }
.op .op-card::before { background: var(--hl); }
.op .op-check { color: #11294F; }
.op .op-bonus-badge { color: var(--hl); }
.op .op-pricebox { border-width: 2px; border-color: var(--op-deepest); box-shadow: 7px 7px 0 var(--op-gold); background: #FFFFFF; }
.op .op-guarantee { background: var(--hl-soft); border-color: #E2CF9C; }
.op .op-btn {
  font-family: var(--op-body);
  font-weight: 700;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(163, 13, 36, 0.3), inset 0 -3px 0 rgba(0, 0, 0, 0.2);
}
.op .op-dealline .op-fill { color: var(--hl); }
@media (max-width: 480px) {
  .op .op-pricebox { box-shadow: 5px 5px 0 var(--op-gold); }
}
