/* closeops design system, from option C ("The matchmaker") on the DupeTidy homepage canvas.
   Single light theme by design. Spec: ventures/resale-pricing-extension/DESIGN.md */
:root {
  --ground: #fff3ec;      /* page background, peach cream */
  --ink: #2a1240;         /* text, primary buttons, dark band */
  --ink-2: #4b3563;       /* secondary text */
  --muted: #6d5a80;       /* captions, labels */
  --coral: #ff5a4e;       /* accent fill (text on it is --ink) */
  --coral-deep: #c2392d;  /* eyebrows and accent text on light grounds */
  --blush: #ffd9cc;       /* soft coral panels, secondary buttons */
  --lilac: #e7dcfb;       /* lavender panels */
  --lilac-2: #f1ebfd;
  --band: #2a1240; --band-card: #3a1d55; --band-text: #d6c8e6; --band-accent: #ff8c7f;
  --line: #f0d4c8;
  --surface: #ffffff;
  --display: "Young Serif", Georgia, "Times New Roman", serif;
  --body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r-card: 28px; --r-panel: 20px; --r-pill: 999px;
  --shadow: 0 30px 60px -30px rgba(42, 18, 64, .45);
  color-scheme: light;
}
* { box-sizing: border-box }
body { margin: 0; background: var(--ground); color: var(--ink); font: 17px/1.6 var(--body); overflow-x: clip }
a { color: var(--ink) } a:hover { color: #5b2a86 }
.wrap { max-width: 1200px; margin: 0 auto; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px)) }

/* header and footer */
.top .wrap { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font: 400 22px/1.1 var(--display) }
nav { display: flex; flex-wrap: wrap; gap: 6px 24px; font-weight: 700; font-size: 15px } nav a { text-decoration: none }
.foot { border-top: 1px solid var(--line); margin-top: 32px }
.foot .wrap { padding-block: 32px 48px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 14px; color: var(--muted) }
.foot a { color: var(--muted) }

/* type */
.eyebrow { margin: 0 0 18px; font-weight: 800; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--coral-deep) }
h1 { font: 400 clamp(40px, 6.4vw, 80px)/1 var(--display); letter-spacing: -.02em; margin: 0 0 24px; text-wrap: balance }
h2 { font: 400 clamp(30px, 4.4vw, 52px)/1.05 var(--display); margin: 0 0 16px; text-wrap: balance }
h3 { font: 400 24px/1.2 var(--display); margin: 0 0 8px }
.lede { font-size: 20px; color: var(--ink-2); max-width: 34rem; margin: 0 0 32px }
.hint { color: var(--muted); font-size: 15px; margin: 10px 0 0 }

/* buttons */
.btn, button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border-radius: var(--r-pill); border: 0; background: var(--ink); color: var(--ground); font: 800 16px var(--body); text-decoration: none; cursor: pointer }
.btn:hover { color: var(--ground) }
.btn.soft { background: var(--blush); color: var(--ink) }
.btn.coral, button.coral { background: var(--coral); color: var(--ink) }
button.ghost { background: var(--surface); color: var(--ink); border: 2px solid var(--ink) }
button.link { min-height: 0; padding: 0; background: none; color: var(--ink); font-weight: 800; text-decoration: underline; border-radius: 0 }
:is(a, button, input, select, summary):focus-visible { outline: 3px solid var(--coral-deep); outline-offset: 2px }

/* hero */
.hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 56px; align-items: center; padding-block: 40px 88px }
.ctas { display: flex; flex-wrap: wrap; gap: 12px }
.stage { position: relative }
.blob { position: absolute; border-radius: 50%; pointer-events: none }
.blob.a { width: 380px; height: 380px; background: var(--blush); top: -40px; right: -60px }
.blob.b { width: 170px; height: 170px; background: var(--lilac); bottom: -46px; left: -36px }
.sample { position: relative; background: var(--surface); border-radius: var(--r-card); padding: 28px; box-shadow: var(--shadow) }
.sample .pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin: 14px 0 }
.sample .pane { border-radius: 18px; padding: 16px; background: var(--ground) } .sample .pane.alt { background: var(--lilac-2) }
.label { margin: 0 0 4px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted) }
.big { margin: 0; font: 400 30px/1.1 var(--display) }
.caption { position: relative; margin: 14px 0 0; text-align: center; font-size: 13px; color: var(--muted) }

/* tool */
.tool { display: grid; gap: 20px; padding-bottom: 88px }
.card { background: var(--surface); border-radius: var(--r-card); padding: clamp(22px, 3vw, 32px) }
.card h2 { font-size: clamp(26px, 3vw, 34px); display: flex; align-items: center; gap: 14px }
.n { flex: none; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: var(--ground); font: 800 17px var(--body) }
.choices { display: grid; gap: 10px }
.choices label { display: flex; gap: 12px; align-items: center; min-height: 52px; padding: 0 18px; border-radius: 16px; background: var(--ground); font-weight: 700; cursor: pointer }
.choices label:has(input:checked) { background: var(--blush) }
.tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px }
.tabs button { background: var(--ground); color: var(--ink); min-height: 44px; font-size: 15px }
.tabs button[aria-selected=true] { background: var(--ink); color: var(--ground) }
.drop { position: relative; display: grid; gap: 4px; justify-items: center; text-align: center; border: 2px dashed var(--line); border-radius: var(--r-panel); padding: 32px 20px; background: var(--ground); cursor: pointer }
.drop strong { font: 400 24px var(--display) }
.drop.over { border-color: var(--coral); background: var(--blush) }
.drop input { position: absolute; opacity: 0; width: 1px; height: 1px }
.drop:focus-within { outline: 3px solid var(--coral-deep) }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px }
label { display: grid; gap: 6px; font-size: 15px; font-weight: 700 } label.inline { display: inline-flex; align-items: center; gap: 8px }
input, select { font: 500 16px var(--body); min-height: 48px; padding: 8px 14px; border: 2px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); min-width: 0 }
select[multiple] { min-height: 0; padding: 6px }
input[type=radio], input[type=checkbox] { min-height: 0; width: 20px; height: 20px; accent-color: var(--ink) }
.file { border-top: 2px solid var(--ground); padding-top: 16px; margin-top: 16px; display: grid; gap: 12px }
.file-head { display: flex; gap: 14px; align-items: center; flex-wrap: wrap }
.map { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px }

/* results */
.result { background: var(--surface); border-radius: var(--r-card); padding: clamp(22px, 3vw, 32px); margin-bottom: 16px }
.result.register { background: var(--blush) }
.result.personal { background: var(--lilac) }
.tag { font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--coral-deep) }
.result h3 { font-size: clamp(26px, 3vw, 34px); margin: 6px 0 8px }
table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; margin-top: 12px }
td { padding: 9px 0; border-bottom: 1px solid var(--line); vertical-align: top } td:last-child { text-align: right; font-weight: 700 }
tr.best td { font-weight: 800 }
.pill { font-size: 12px; font-weight: 800; padding: 3px 9px; border-radius: var(--r-pill); background: var(--ink); color: var(--ground); white-space: nowrap }
.pill.warnp { background: var(--coral); color: var(--ink) }
.figure { margin: 18px 0 0; font: 400 26px/1.2 var(--display) }
.warn { background: var(--blush); color: var(--ink); padding: 12px 16px; border-radius: 14px; font-size: 15px; font-weight: 500 }
.pro { background: var(--coral) }
.pro .row { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; margin-top: 12px }
.pro input { border-color: var(--ink) }

/* dark band, panels, pricing, faq */
.band { background: var(--band); color: var(--ground) }
.band .wrap { padding-block: 88px }
.band p.sub { color: var(--band-text); font-size: 19px; max-width: 40rem; margin: 0 0 40px }
.catches { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px }
.catch { background: var(--band-card); border-radius: 22px; padding: 24px }
.catch .k { margin: 0 0 12px; font-weight: 800; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--band-accent) }
.catch .v { margin: 0 0 12px; font: 400 22px/1.25 var(--display) }
.catch p { margin: 0; color: var(--band-text); font-size: 15px }
.section { padding-block: 88px }
.panel { background: var(--lilac); border-radius: 32px; padding: clamp(28px, 5vw, 60px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 36px }
.panel p { margin: 0 0 14px; font-size: 18px }
.prices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; max-width: 860px; margin: 0 auto }
.price { background: var(--surface); border-radius: var(--r-card); padding: 32px } .price.pro-card { background: var(--coral) }
.price .amt { font: 400 52px/1.1 var(--display); margin: 8px 0 16px }
.price ul, .small ul { margin: 0; padding-left: 20px; display: grid; gap: 8px }
.center { text-align: center } .center .sub-dark { color: var(--ink-2); font-size: 19px; max-width: 36rem; margin: 0 auto 40px }
details { background: var(--surface); border-radius: var(--r-panel); padding: 18px 22px; margin-bottom: 10px }
summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; font-weight: 800; font-size: 18px }
summary::-webkit-details-marker { display: none } summary::after { content: "+"; color: var(--coral-deep) } details[open] summary::after { content: "–" }
details p { margin: 10px 0 0; color: var(--ink-2) }

/* guides */
article.guide { max-width: 44rem; padding-block: 24px 64px }
article.guide h1 { font-size: clamp(36px, 5.4vw, 60px) }
article.guide h2 { font-size: clamp(26px, 3vw, 34px); margin-top: 36px }
article.guide p, article.guide li { margin: 0 0 14px; font-size: 18px; color: var(--ink-2) }
article.guide a { font-weight: 800 }
.guide-cta { margin-top: 32px; background: var(--blush); border-radius: var(--r-card); padding: 28px }
.guide-cta p { color: var(--ink) !important }

@media print { .top, .foot, .hero, .band, .section, .tabs, #pane-file, #pane-manual, .pro, #s1-card, #s2-card { display: none } body { background: #fff } .card, .result { padding: 0 } }
@media (prefers-reduced-motion: no-preference) { .btn, button { transition: transform .12s } .btn:active, button:active { transform: scale(.98) } }
@media (max-width: 700px) { .blob.a { width: 240px; height: 240px; right: -12px; top: -24px } .blob.b { width: 120px; height: 120px; left: -12px } }
