/* ===================================================================
   Capital Refurbishment Solutions — paid traffic funnel
   Vanilla CSS. Mobile first (designed at 390px), no frameworks.
   =================================================================== */

/* -------------------------------------------------------------------
   1. BRAND TOKENS — change the palette and the imagery in one place
   ------------------------------------------------------------------- */
:root {
  /* Colour — black + orange, matching the client's main site.
     If you have the exact brand orange from the client's style guide,
     change --accent and --accent-dark here and the whole site follows. */
  --ink:        #14161a;  /* near black, used for dark sections   */
  --ink-2:      #1d2126;  /* slightly lifted dark                 */
  --ink-3:      #2a2f36;  /* hairlines on dark                    */
  --accent:     #f26522;  /* brand orange                         */
  --accent-dark:#d9551a;  /* hover: ~10% darker, no glow          */
  --paper:      #ffffff;
  --paper-2:    #f4f2ef;  /* warm off-white                       */
  --line:       #e3ded7;
  --text:       #16181c;  /* near black body text                 */
  --muted:      #5a6068;
  --muted-invert: rgba(255,255,255,.72);

  /* Imagery — the five full-bleed photo areas.
     These point at files in /assets. Drop your photos in there using these
     exact names and they appear automatically. See assets/README.md.
     Until those files exist, script.js falls back to the client's Drive
     copies so the page never looks broken. */
  --img-hero:   url("assets/hero.jpg");
  --img-mech:   url("assets/mechanism.jpg");
  --img-value:  url("assets/call.jpg");
  --img-final:  url("assets/final-cta.jpg");
  --img-thanks: url("assets/thank-you.jpg");

  /* Rhythm */
  --pad-x: 24px;
  --sect-y: 60px;
  --maxw: 1200px;
  --measure: 640px;

  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

@media (min-width: 860px) {
  :root {
    --pad-x: 40px;
    --sect-y: 100px;
  }
}

/* -------------------------------------------------------------------
   1b. FALLBACK IMAGERY
   script.js adds .no-assets to <html> if /assets has not been filled in
   yet. These are the client's Google Drive copies — slow and rate
   limited, fine for a preview, not for live ad spend. Once the files in
   /assets exist this block never applies and Drive is never contacted.
   ------------------------------------------------------------------- */
.no-assets {
  --img-hero:   url("https://drive.google.com/thumbnail?id=1h_gdtluohkVQQBWP6uAKimJPcdsWTNJr&sz=w1920");
  --img-mech:   url("https://drive.google.com/thumbnail?id=1P2SgzhJ324YCtPF02Y8XcyPm6752AC4N&sz=w1600");
  --img-value:  url("https://drive.google.com/thumbnail?id=1zQctiLdzXPgz5uY7ipUucD5E6sZZuSpp&sz=w1600");
  --img-final:  url("https://drive.google.com/thumbnail?id=1k4D-C9RD6O4-lRc6GihfMAkzeex2FKER&sz=w1920");
  --img-thanks: url("https://drive.google.com/thumbnail?id=1qnAvKywfRQXGQWaKprbp8rMOSuVYS6uX&sz=w1920");
}

/* -------------------------------------------------------------------
   2. RESET & BASE
   ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.65;
  color: var(--text);
  background: var(--paper);
  overflow-x: hidden;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

h1, h2, h3 {
  margin: 0 0 .5em;
  line-height: 1.12;
  letter-spacing: -0.015em;
  font-weight: 800;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; }

ul, ol { margin: 0 0 1.1em; padding-left: 1.15em; }

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--accent); color: #fff; padding: 12px 18px;
  font-weight: 600; text-decoration: none;
}
.skip-link:focus { left: 0; }

.wrap {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}
.wrap--narrow { max-width: 760px; }

/* -------------------------------------------------------------------
   3. SHARED TYPE HELPERS
   ------------------------------------------------------------------- */
.eyebrow {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 18px;
  line-height: 1.45;
}

.lede {
  font-size: 18px;
  color: var(--muted);
  max-width: var(--measure);
  margin: -.2em 0 2em;
}
.lede--invert { color: var(--muted-invert); }

.friction {
  font-size: 14px;
  color: rgba(255,255,255,.7);
  margin: 16px 0 0;
}
.friction--left { text-align: left; }

.stars { color: var(--accent); letter-spacing: .06em; }
.stars--sm { font-size: 13px; margin-left: 6px; vertical-align: 2px; }

/* -------------------------------------------------------------------
   4. BUTTONS — solid fill only, full width on mobile
   ------------------------------------------------------------------- */
.btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 18px 28px;
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease;
}
.btn--primary { background: var(--accent); color: #fff; }
.btn--primary:hover, .btn--primary:focus { background: var(--accent-dark); color: #fff; }
.btn--lg { padding: 20px 32px; font-size: 18px; }

@media (min-width: 700px) {
  .btn { display: inline-block; width: auto; }
}

/* -------------------------------------------------------------------
   5. TOP BAR (no navigation — brand + phone only)
   ------------------------------------------------------------------- */
.topbar {
  position: relative;
  z-index: 30;
  background: var(--ink);
  color: #fff;
}
.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 60px;
  padding-top: 10px;
  padding-bottom: 10px;
}
/* Two-line logotype so it never wraps awkwardly next to the phone number. */
.brand { display: flex; flex-direction: column; line-height: 1.1; }
.brand__top {
  font-weight: 800;
  font-size: 16px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.brand__sub {
  font-weight: 600;
  font-size: 9px;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: rgba(255,255,255,.62);
  margin-top: 4px;
  white-space: nowrap;
}
.brand__mark { color: var(--accent); }
.topbar__tel {
  flex: 0 1 auto;
  min-width: 0;
  font-weight: 800;
  font-size: 15px;
  text-decoration: none;
  white-space: nowrap;
  color: #fff;
  border-bottom: 2px solid var(--accent);
  padding-bottom: 2px;
}

/* Very narrow phones: tighten the header so nothing pushes the page wide. */
@media (max-width: 359px) {
  :root { --pad-x: 16px; }
  .topbar__inner { gap: 10px; }
  .topbar__tel { font-size: 13px; }
  .brand__top { font-size: 15px; }
  .brand__sub { font-size: 8px; letter-spacing: .12em; }
}
.topbar__tel:hover { color: var(--accent); }
.topbar__tel-label { color: var(--accent); }

@media (min-width: 700px) {
  .brand__top { font-size: 19px; }
  .brand__sub { font-size: 10px; }
  .topbar__tel { font-size: 17px; }
}

/* -------------------------------------------------------------------
   6. HERO — full bleed image, dark overlay, centred text
   ------------------------------------------------------------------- */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80vh;
  padding: 72px 0;
  background: var(--ink);       /* fallback if the photo fails */
  color: #fff;
  overflow: hidden;
}
.hero__media {
  position: absolute; inset: 0;
  background-image: var(--img-hero);
  background-size: cover;
  background-position: center;
  background-color: var(--ink);
}
.hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,11,13,.72) 0%, rgba(10,11,13,.78) 55%, rgba(10,11,13,.9) 100%);
}
.hero__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 900px;
}
.hero h1 {
  font-size: 36px;
  margin: 0 0 18px;
  color: #fff;
  text-wrap: balance;
}
.hero__sub {
  font-size: 17px;
  color: rgba(255,255,255,.82);
  max-width: 560px;
  margin: 0 auto 28px;
}
.hero .btn { margin: 0 auto; }

.hero__trust {
  list-style: none;
  margin: 34px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 22px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85);
}
.hero__trust li { display: flex; align-items: center; gap: 7px; }

@media (min-width: 860px) {
  .hero { min-height: 92vh; }
  .hero h1 { font-size: 56px; }
  .hero__sub { font-size: 19px; }
  .hero__trust { font-size: 14px; gap: 12px 34px; }
}

/* -------------------------------------------------------------------
   7. SOCIAL PROOF STRIP
   ------------------------------------------------------------------- */
.proofstrip {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  padding: 28px 0;
}
.proofstrip__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px 16px;
  text-align: center;
}
.proofstrip__item strong {
  display: block;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.1;
}
.proofstrip__item span {
  display: block;
  font-size: 13px;
  color: var(--muted);
  margin-top: 4px;
}
@media (min-width: 860px) {
  .proofstrip { padding: 34px 0; }
  .proofstrip__grid { grid-template-columns: repeat(4, 1fr); }
  .proofstrip__item strong { font-size: 32px; }
  .proofstrip__item span { font-size: 14px; }
}

/* -------------------------------------------------------------------
   8. FORM SECTION
   ------------------------------------------------------------------- */
.form-section {
  background: var(--paper-2);
  padding: var(--sect-y) 0;
  scroll-margin-top: 8px;
}
.form-section h2 { font-size: 28px; }
.form-section__copy { max-width: var(--measure); margin-bottom: 32px; }

/* Reserve the embed height up front so nothing shifts when it loads. */
.form-shell {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px;
  min-height: 940px;
}
.form-shell iframe {
  display: block;
  width: 100%;
  min-height: 924px;
  border: 0;
  border-radius: 8px;
}
.form-shell__fallback { padding: 24px; }

@media (min-width: 980px) {
  .form-section h2 { font-size: 40px; }
  /* Copy sits above the form, not beside it. The column is narrowed so the
     embed does not stretch the full width of the page. */
  .form-section__inner {
    max-width: 820px;
    margin: 0 auto;
  }
  .form-section__copy { margin-bottom: 40px; }
}

/* -------------------------------------------------------------------
   9. PROBLEM (dark)
   ------------------------------------------------------------------- */
.problem {
  background: var(--ink);
  color: #fff;
  padding: var(--sect-y) 0;
}
.problem h2 { font-size: 28px; }
.problem__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--ink-3);
}
.problem__block {
  padding: 26px 0;
  border-bottom: 1px solid var(--ink-3);
}
.problem__block h3 {
  font-size: 19px;
  margin: 0 0 8px;
  color: #fff;
}
.problem__block p {
  margin: 0;
  color: var(--muted-invert);
  font-size: 16px;
}
@media (min-width: 860px) {
  .problem h2 { font-size: 40px; }
  .problem__grid { grid-template-columns: 1fr 1fr; column-gap: 56px; }
  .problem__block { padding: 32px 0; }
  .problem__block h3 { font-size: 21px; }
}

/* -------------------------------------------------------------------
   10. SECTORS
   ------------------------------------------------------------------- */
.sectors { background: var(--paper); padding: var(--sect-y) 0 0; }
.sectors h2 { font-size: 28px; }
.sectors__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--ink-3);
  margin-top: 8px;
}
.sector {
  background: var(--ink);
  color: #fff;
  padding: 30px var(--pad-x);
}
.sector__num {
  display: block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--accent);
  margin-bottom: 12px;
}
.sector h3 {
  font-size: 24px;
  margin: 0 0 8px;
  color: #fff;
}
.sector p {
  margin: 0;
  font-size: 15px;
  color: var(--muted-invert);
}
@media (min-width: 700px) {
  .sectors__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1060px) {
  .sectors h2 { font-size: 40px; }
  .sectors__grid { grid-template-columns: repeat(3, 1fr); }
  .sector { padding: 44px 40px; }
}

/* -------------------------------------------------------------------
   11. MECHANISM — image + dark copy panel, flush, full bleed
   ------------------------------------------------------------------- */
.mech { display: grid; grid-template-columns: 1fr; background: var(--ink-2); }
.mech__media {
  min-height: 400px;
  background-image: var(--img-mech);
  background-size: cover;
  background-position: center;
  background-color: var(--ink);
}
.mech__panel { background: var(--ink-2); color: #fff; }
.mech__panel-inner { padding: var(--sect-y) var(--pad-x); }
.mech h2 { font-size: 28px; }

.mech__list { list-style: none; margin: 0 0 32px; padding: 0; }
.mech__list li {
  padding: 22px 0;
  border-top: 1px solid var(--ink-3);
}
.mech__list li:last-child { border-bottom: 1px solid var(--ink-3); }
.mech__list h3 {
  font-size: 18px;
  margin: 0 0 6px;
  color: var(--accent);
}
.mech__list p {
  margin: 0;
  font-size: 16px;
  color: var(--muted-invert);
}
@media (min-width: 980px) {
  .mech { grid-template-columns: 1fr 1fr; }
  .mech__media { min-height: 720px; }
  .mech__panel { display: flex; align-items: center; }
  .mech h2 { font-size: 40px; }
  .mech__panel-inner {
    padding: 100px 64px;
    max-width: 660px;
  }
  .mech__list h3 { font-size: 19px; }
}

/* -------------------------------------------------------------------
   12. HOW IT WORKS
   ------------------------------------------------------------------- */
.steps { background: var(--paper); padding: var(--sect-y) 0; }
.steps h2 { font-size: 28px; }
.steps__grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.step {
  padding: 26px 0;
  border-top: 2px solid var(--line);
}
.step:last-child { border-bottom: 2px solid var(--line); }
.step__num {
  display: inline-block;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .1em;
  color: #fff;
  background: var(--accent);
  border-radius: 3px;
  padding: 3px 10px;
  margin-bottom: 12px;
}
.step h3 { font-size: 20px; margin: 0 0 6px; }
.step p { margin: 0; color: var(--muted); font-size: 16px; }

@media (min-width: 880px) {
  .steps h2 { font-size: 40px; }
  .steps__grid { grid-template-columns: repeat(3, 1fr); column-gap: 40px; }
  .step { border-bottom: 0 !important; padding: 30px 0 0; }
  .step h3 { font-size: 22px; }
}

/* -------------------------------------------------------------------
   13. WHAT YOU GET FROM THE CALL
   ------------------------------------------------------------------- */
.value { display: grid; grid-template-columns: 1fr; background: var(--ink); }
.value__media {
  min-height: 400px;
  background-image: var(--img-value);
  background-size: cover;
  background-position: center;
  background-color: var(--ink-2);
  order: 2;
}
.value__panel { background: var(--ink); color: #fff; order: 1; }
.value__panel-inner { padding: var(--sect-y) var(--pad-x); }
.value h2 { font-size: 28px; }

.value__list { list-style: none; margin: 0 0 32px; padding: 0; }
.value__list li {
  position: relative;
  padding: 14px 0 14px 34px;
  border-bottom: 1px solid var(--ink-3);
  color: rgba(255,255,255,.9);
  font-size: 16px;
}
.value__list li::before {
  content: "";
  position: absolute;
  left: 2px; top: 22px;
  width: 14px; height: 7px;
  border-left: 3px solid var(--accent);
  border-bottom: 3px solid var(--accent);
  transform: rotate(-45deg);
}
.value .friction { color: rgba(255,255,255,.6); }

@media (min-width: 980px) {
  .value { grid-template-columns: 1fr 1fr; }
  .value__media { min-height: 700px; order: 1; }
  .value__panel { order: 2; display: flex; align-items: center; }
  .value h2 { font-size: 40px; }
  .value__panel-inner { padding: 100px 64px; max-width: 660px; }
}

/* -------------------------------------------------------------------
   14. PROOF GALLERY — full bleed, flush grid, no cards
   ------------------------------------------------------------------- */
.proof { background: var(--paper); padding: var(--sect-y) 0 0; }
.proof h2 { font-size: 28px; }

.gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  background: var(--ink);
  margin-top: 8px;
}
.gallery__item {
  position: relative;
  margin: 0;
  min-height: 400px;
  background: var(--ink-2);
  overflow: hidden;
}
.gallery__item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gallery__item figcaption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 48px 20px 18px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
  background: linear-gradient(180deg, rgba(10,11,13,0) 0%, rgba(10,11,13,.82) 70%);
}
@media (min-width: 760px) {
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .gallery__item { min-height: 420px; }
  .gallery__item--wide { grid-column: 1 / -1; min-height: 460px; }
  .gallery__item figcaption { font-size: 15px; padding: 56px 26px 22px; }
}
@media (min-width: 1100px) {
  .proof h2 { font-size: 40px; }
  .gallery__item { min-height: 460px; }
  .gallery__item--wide { min-height: 560px; }
}

/* Company credibility block */
.credblock {
  max-width: var(--measure);
  margin: 0 auto;
  padding: var(--sect-y) 0;
  border-bottom: 0;
}
.credblock h3 {
  font-size: 22px;
  margin: 0 0 10px;
  padding-top: 18px;
  border-top: 4px solid var(--accent);
  display: inline-block;
}
.credblock p { margin: 0; color: var(--muted); }

.proof--thanks .credblock { display: none; }
.proof--thanks { padding-bottom: 0; }

/* -------------------------------------------------------------------
   15. FAQ ACCORDION
   ------------------------------------------------------------------- */
.faq { background: var(--paper-2); padding: var(--sect-y) 0; }
.faq h2 { font-size: 28px; margin-bottom: 28px; }

.acc { border-top: 1px solid var(--line); }
.acc:last-child { border-bottom: 1px solid var(--line); }

.acc__q {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  background: none;
  border: 0;
  padding: 22px 0;
  font: inherit;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.acc__q:hover { color: var(--accent); }

.acc__icon {
  position: relative;
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 3px;
}
.acc__icon::before, .acc__icon::after {
  content: "";
  position: absolute;
  background: var(--accent);
  transition: transform .18s ease, opacity .18s ease;
}
.acc__icon::before { left: 0; top: 8px; width: 18px; height: 2px; }
.acc__icon::after  { left: 8px; top: 0; width: 2px; height: 18px; }
.acc__q[aria-expanded="true"] .acc__icon::after { transform: rotate(90deg); opacity: 0; }

.acc__a { padding: 0 0 24px; max-width: var(--measure); }
.acc__a p { margin: 0; color: var(--muted); font-size: 16px; }

@media (min-width: 860px) {
  .faq h2 { font-size: 40px; }
  .acc__q { font-size: 19px; padding: 26px 0; }
}

/* -------------------------------------------------------------------
   16. FINAL CTA
   ------------------------------------------------------------------- */
.finalcta {
  position: relative;
  padding: var(--sect-y) 0;
  background: var(--ink);
  color: #fff;
  text-align: center;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  align-items: center;
}
.finalcta__media {
  position: absolute; inset: 0;
  background-image: var(--img-final);
  background-size: cover;
  background-position: center;
  background-color: var(--ink);
}
.finalcta__overlay {
  position: absolute; inset: 0;
  background: rgba(10,11,13,.78);
}
.finalcta__inner { position: relative; z-index: 2; }
.finalcta h2 { font-size: 28px; color: #fff; }
.finalcta .lede { margin-left: auto; margin-right: auto; }
.finalcta .btn { margin: 0 auto; }
.finalcta__tel {
  margin: 22px 0 0;
  font-size: 15px;
  color: rgba(255,255,255,.72);
}
.finalcta__tel a {
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  border-bottom: 2px solid var(--accent);
}
@media (min-width: 860px) {
  .finalcta { min-height: 560px; }
  .finalcta h2 { font-size: 42px; }
}

/* -------------------------------------------------------------------
   17. FOOTER
   ------------------------------------------------------------------- */
.footer {
  background: var(--ink);
  color: rgba(255,255,255,.62);
  padding: 44px 0 100px;   /* bottom room for the sticky mobile bar */
  font-size: 14px;
  border-top: 1px solid var(--ink-3);
}
.footer__brand {
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin: 0 0 10px;
}
.footer__desc { max-width: 480px; margin: 0 0 18px; }
.footer__links { margin: 0 0 14px; }
.footer__links a { color: #fff; text-decoration: none; border-bottom: 1px solid var(--ink-3); }
.footer__links a:hover { color: var(--accent); border-color: var(--accent); }
.footer__links span { margin: 0 10px; opacity: .45; }
.footer__copy { margin: 0; font-size: 13px; opacity: .7; }
@media (min-width: 860px) {
  .footer { padding: 60px 0; }
}

/* -------------------------------------------------------------------
   18. STICKY MOBILE CTA (appears after the hero)
   ------------------------------------------------------------------- */
.stickybar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 60;
  display: flex;
  gap: 10px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: rgba(20,22,26,.97);
  border-top: 1px solid var(--ink-3);
  transform: translateY(110%);
  transition: transform .2s ease;
}
.stickybar.is-visible { transform: translateY(0); }
.stickybar__main { flex: 1 1 auto; padding: 16px 14px; font-size: 16px; }
.stickybar__tel {
  flex: none;
  width: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
}
.stickybar__tel:hover { background: var(--paper-2); }

@media (min-width: 860px) {
  .stickybar { display: none; }
}

/* -------------------------------------------------------------------
   19. THANK YOU PAGE
   ------------------------------------------------------------------- */
.thanks {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 52vh;
  padding: 64px 0;
  background: var(--ink);
  color: #fff;
  text-align: center;
  overflow: hidden;
}
.thanks__media {
  position: absolute; inset: 0;
  background-image: var(--img-thanks);
  background-size: cover;
  background-position: center;
  background-color: var(--ink);
}
.thanks__overlay { position: absolute; inset: 0; background: rgba(10,11,13,.8); }
.thanks__inner { position: relative; z-index: 2; max-width: 820px; }
.thanks h1 { font-size: 32px; color: #fff; text-wrap: balance; }
.thanks__sub {
  font-size: 17px;
  color: rgba(255,255,255,.82);
  margin: 0 auto;
  max-width: 520px;
}
@media (min-width: 860px) {
  .thanks { min-height: 58vh; }
  .thanks h1 { font-size: 48px; }
  .thanks__sub { font-size: 19px; }
}

.next { background: var(--paper); padding: var(--sect-y) 0; }
.next__list { list-style: none; margin: 0 0 32px; padding: 0; }
.next__list li {
  display: flex;
  gap: 18px;
  padding: 26px 0;
  border-top: 2px solid var(--line);
}
.next__list li:last-child { border-bottom: 2px solid var(--line); }
.next__num {
  flex: none;
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  background: var(--accent);
  color: #fff;
  border-radius: 50%;
  font-weight: 800;
  font-size: 16px;
}
.next__list h2 { font-size: 20px; margin: 4px 0 6px; }
.next__list p { margin: 0; color: var(--muted); font-size: 16px; }

.next__reinforce {
  background: var(--ink);
  color: #fff;
  padding: 26px 24px;
  border-left: 5px solid var(--accent);
  border-radius: 4px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.55;
}
.next__help {
  margin: 22px 0 0;
  font-size: 15px;
  color: var(--muted);
}
.next__help a {
  color: var(--text);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 2px solid var(--accent);
}
@media (min-width: 860px) {
  .next__list h2 { font-size: 22px; }
  .next__num { width: 44px; height: 44px; font-size: 18px; }
}

.page-thanks .footer { padding-bottom: 60px; }

/* -------------------------------------------------------------------
   20. LEGAL PAGES
   ------------------------------------------------------------------- */
.legal { background: var(--paper); padding: var(--sect-y) 0; display: block; }
.legal h1 { font-size: 32px; }
.legal h2 { font-size: 21px; margin: 2em 0 .5em; }
.legal p, .legal li { color: var(--muted); font-size: 16px; }
.legal a { color: var(--text); border-bottom: 2px solid var(--accent); text-decoration: none; }
.legal__meta { font-size: 14px; margin-bottom: 28px; }
.legal__note {
  background: var(--paper-2);
  border-left: 5px solid var(--accent);
  padding: 18px 20px;
  border-radius: 4px;
  font-size: 15px;
}
.legal__note strong { color: var(--text); }
.legal__back { margin-top: 48px; }
.page-legal .footer { padding-bottom: 60px; }
@media (min-width: 860px) {
  .legal h1 { font-size: 42px; }
}
