/* AI Image Costs — "Proof sheet" theme. Drop-in for the staged wave-1 markup (same class names).
   Fonts: Bricolage Grotesque 800 (headings) + DM Mono 500 (figures), both SIL OFL 1.1, self-hosted woff2 subsets.
   Body text uses the system UI stack (no download). */
@font-face{font-family:"Bricolage Grotesque";src:url(/fonts/Bricolage-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"DM Mono";src:url(/fonts/DMMono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
:root{
  --bg:#FBF8F3;        /* warm proof paper */
  --surface:#FFFFFF;
  --fg:#221A1E;        /* warm ink */
  --mut:#5E5459;       /* secondary text, 6.9:1 on --bg */
  --line:#E3D8D3;      /* hairlines (decorative only) */
  --brand:#C2185B;     /* process rose: buttons, crop marks, top rule */
  --acc:#A3144D;       /* links / focus on light surfaces, 7.2:1 on --bg */
  --tint:#FBE9EF;      /* rose wash behind notes */
  --hi:#FFD84D;        /* proof-yellow highlight, ink text only */
  --head:#221A1E; --head-fg:#FBF8F3;
  --soft:#F5EFE8; --note:#FBE9EF; --note-line:#E7B3C6;
  --f-display:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-fig:"DM Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --step--1:.875rem; --step-0:1rem; --step-1:1.125rem; --step-2:clamp(1.3rem,1.1rem + 1vw,1.55rem); --step-3:clamp(1.75rem,1.2rem + 3.2vw,2.6rem);
  --r:4px;             /* print-sharp corners */
  --crop:var(--brand);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:var(--step-0)/1.6 var(--f-body);color:var(--fg);background:var(--bg)}
img,svg,video{max-width:100%;height:auto}
a{color:var(--acc);text-underline-offset:.18em;text-decoration-thickness:.08em}
a:hover{text-decoration-thickness:.16em}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.skip{position:absolute;left:8px;top:8px;background:var(--surface);color:var(--fg);padding:8px 12px;min-height:48px;z-index:5;transform:translateY(-150%)}
.skip:focus{transform:none}
.wrap{max-width:68rem;margin:0 auto;padding:0 16px;overflow-wrap:anywhere}
h1,h2,h3{font-family:var(--f-display);font-weight:800;letter-spacing:-.015em;color:var(--fg)}
h1{font-size:var(--step-3);line-height:1.08;margin:0 0 14px;text-wrap:balance}
h2{font-size:var(--step-2);line-height:1.2;margin:2.2rem 0 .7rem}
h3{font-size:var(--step-1);line-height:1.3;margin:1.2rem 0 .4rem}
p{margin:.6rem 0}
ul,ol{margin:.4rem 0 .8rem;padding-left:1.2rem}
li{margin:.2rem 0}
.fig,[data-kept],td.num{font-family:var(--f-fig);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* Header: ink strip with a rose rule, wordmark uses the favicon as its bullet */
header.top{background:var(--head);color:var(--head-fg);border-top:6px solid var(--brand)}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding-top:6px;padding-bottom:6px}
.brand{font-family:var(--f-display);font-weight:800;font-size:1.15rem;letter-spacing:-.01em;color:var(--head-fg);text-decoration:none;min-height:48px;display:inline-flex;align-items:center;gap:10px}
.brand::before{content:"";width:28px;height:28px;flex:none;background:url(/favicon.svg) center/contain no-repeat}
.tagline{flex:1 1 14rem;margin:0;color:#D9CFCB;font-size:var(--step--1)}  /* 11.0:1 on ink */
.menu-btn{display:none;margin-left:auto;min-height:48px;min-width:48px;padding:0 14px;background:transparent;border:2px solid var(--head-fg);border-radius:var(--r);color:var(--head-fg);font:600 1rem var(--f-body)}
nav.primary{display:flex;flex-wrap:wrap;gap:2px}
nav.primary a{display:inline-flex;align-items:center;min-height:48px;padding:0 10px;color:var(--head-fg);text-decoration:none;font-weight:600}
nav.primary a:hover{text-decoration:underline;text-decoration-color:var(--hi)}
header.top :focus-visible{outline-color:var(--hi)}

/* Hero: paper with crop marks */
.hero{position:relative;background:var(--bg);border-bottom:1px solid var(--line);padding:30px 0 24px}
.hero .wrap{position:relative}
.byline,.note{color:var(--mut);font-size:var(--step--1)}
.note-box{background:var(--note);border-left:6px solid var(--brand);border-radius:0 var(--r) var(--r) 0;padding:12px 14px;margin:16px 0;font-size:.95rem}
.kicker{display:inline-block;font:500 .8rem/1 var(--f-fig);text-transform:uppercase;letter-spacing:.08em;color:var(--acc);margin:0 0 10px}
mark,.hl{background:var(--hi);color:var(--fg);padding:0 .2em;border-radius:2px}

/* Buttons: sharp corners, hard ink offset like a misregistered print */
.actions,.seg{display:flex;flex-wrap:wrap;gap:10px}
.btn,button.btn,button[type="submit"]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 18px;background:var(--brand);color:#fff;text-decoration:none;border:2px solid var(--fg);border-radius:var(--r);font:700 1rem/1.2 var(--f-body);cursor:pointer;box-shadow:4px 4px 0 var(--fg);transition:transform .08s,box-shadow .08s}
.btn:hover,button.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--fg)}
.btn:active{transform:translate(4px,4px);box-shadow:none}
.btn.secondary,button.btn.secondary,.actions .btn+.btn{background:var(--surface);color:var(--fg)}
.actions .btn:first-child{background:var(--brand);color:#fff}

/* Cards: white sheet with rose crop marks in each corner (pure CSS, no images) */
.cards{display:grid;gap:16px}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:0;padding:18px 18px 14px;
  background-image:
    linear-gradient(var(--crop),var(--crop)),linear-gradient(var(--crop),var(--crop)),
    linear-gradient(var(--crop),var(--crop)),linear-gradient(var(--crop),var(--crop)),
    linear-gradient(var(--crop),var(--crop)),linear-gradient(var(--crop),var(--crop)),
    linear-gradient(var(--crop),var(--crop)),linear-gradient(var(--crop),var(--crop));
  background-repeat:no-repeat;
  background-size:14px 3px,3px 14px,14px 3px,3px 14px,14px 3px,3px 14px,14px 3px,3px 14px;
  background-position:top left,top left,top right,top right,bottom left,bottom left,bottom right,bottom right}
.card h3{margin-top:0;font-size:1.3rem}
.card .meta{color:var(--mut);margin-top:0;font-size:var(--step--1)}
.card ul{padding-left:1.1rem}
.card li::marker{color:var(--brand)}
.card .per-image{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:8px 0;padding:8px 10px;background:var(--hi);color:var(--fg)}
.card .per-image strong{font:500 1.35rem/1 var(--f-fig)}
@media (min-width:900px){.cards.two{grid-template-columns:1fr 1fr}}

/* Tables: contact-sheet rows. Default = scroll inside .scroll with sticky first column (works on staged markup).
   Add class="stack" to a table (and data-label on each td) to get one block per row under 560px. */
.scroll{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:2px solid var(--fg);margin:12px 0;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:20rem;font-size:.95rem}
caption{caption-side:top;text-align:left;padding:10px 12px;font:500 .8rem/1.3 var(--f-fig);text-transform:uppercase;letter-spacing:.06em;color:var(--mut);background:var(--surface)}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--head);color:var(--head-fg);font:700 .8rem/1.3 var(--f-body);text-transform:uppercase;letter-spacing:.06em}
th:first-child,td:first-child{position:sticky;left:0;z-index:1}
td:first-child{background:var(--surface);font-weight:700}
tbody tr:nth-child(even) td{background:#FBF8F3}
td.num,th.num{text-align:right;white-space:nowrap}
td.num{font-size:1rem;color:var(--fg)}
td small,.cell-note{display:block;color:var(--mut);font:400 .8rem/1.4 var(--f-body);margin:2px 0 0}
.na{color:var(--mut);font-style:italic;font-family:var(--f-body)}
@media (max-width:560px){
  table.stack caption{display:block;width:100%}
  table.stack{min-width:0}
  table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.stack tr{padding:10px 12px;border-bottom:2px dashed var(--line)}
  table.stack tbody tr:nth-child(even) td{background:transparent}
  table.stack td:first-child{display:block;text-align:left;font:800 1.1rem/1.3 var(--f-display);background:transparent;padding-bottom:4px}
  table.stack td:first-child::before{content:none}
  table.stack td.num{font-size:1.05rem}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack td{position:relative;border:0;padding:3px 0 3px 7rem;text-align:left;white-space:normal;min-height:1.6em}
  table.stack td::before{content:attr(data-label);position:absolute;left:0;top:5px;width:calc(7rem - .6rem);font:700 .7rem/1.5 var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
  table.stack td:first-child{padding-left:0}
  table.stack td:first-child::before{content:none}
  table.stack td.num{text-align:left}
}

/* Forms + calculator (staged classes) */
.field{margin:0 0 14px}
label,legend{font-weight:700;display:block;margin-bottom:6px}
fieldset{border:0;margin:0 0 14px;padding:0;min-width:0}
input,select{width:100%;max-width:100%;min-height:48px;font:inherit;padding:8px 10px;border:2px solid #8A7E83;border-radius:var(--r);background:var(--surface);color:var(--fg)}
input[readonly]{background:var(--soft)}
.help{margin:.35rem 0 0;color:var(--mut);font-size:var(--step--1)}
.seg{flex-direction:column}
.seg label{display:flex;align-items:center;gap:10px;min-height:48px;margin:0;padding:8px 12px;border:2px solid var(--line);border-radius:var(--r);font-weight:600;position:relative;background:var(--surface)}
.seg label:has(:checked){border-color:var(--brand);background:var(--tint)}
.seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.seg label:has(:focus-visible){outline:3px solid var(--acc);outline-offset:2px}
.results{background:var(--surface);border:2px solid var(--fg);padding:12px 14px;margin:8px 0 16px;box-shadow:4px 4px 0 var(--brand)}
.results p{margin:.45rem 0}
.signup{background:var(--tint);border:1px solid var(--note-line);padding:16px;margin:20px 0}
.site-foot{border-top:6px solid var(--brand);margin-top:32px;padding:18px 0 32px;background:var(--head);color:var(--head-fg)}
.site-foot a{color:var(--head-fg);display:inline-flex;align-items:center;min-height:48px;padding:4px 6px}
.site-foot small,.site-foot .note{color:#D9CFCB}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 8px}
small{display:block;color:var(--mut);margin:16px 0}
code{font-family:var(--f-fig);font-size:.9em}
@media (max-width:768px){
  .menu-btn{display:inline-flex;align-items:center}
  nav.primary{display:none;flex-basis:100%;flex-direction:column;border-top:1px solid #4A3F44}
  nav.primary.open{display:flex}
  nav.primary a{width:100%}
  .seg label{width:100%}
  .tagline{order:3;flex-basis:100%;padding-bottom:6px}
}
@media (min-width:769px){
  .menu-btn{display:none}
  nav.primary{margin-left:auto}
  .seg{flex-direction:row}
  .seg label{flex:1 1 9rem}
}
@media (prefers-reduced-motion:reduce){.btn{transition:none}}

/* Header wordmark: reverse on the ink bar. The file already includes the mark. */
.brand::before{content:none}
.brand img{height:32px;width:auto;max-width:calc(100vw - 7.5rem);display:block}
#how-much-does-one-leonardo-image-cost{scroll-margin-top:6.5rem}
