/* =============================================================
   Art & Print Specs — the print-production reference page (/art-info).

   Same rule as apply.css and seller-info.css: built entirely on home.css's
   tokens (--acc, --grn, --blu, --red, --bg, --panel, --line, --tx, --head,
   --body, --mark), no new colors or fonts. Mirrors seller-info.css's
   structural vocabulary (hairline-bordered card grids, .ai-table, the FAQ
   accordion) under its own "ai-" prefix rather than sharing a stylesheet,
   so each pitch page stays self-contained.
   ============================================================= */

.ai-hero { padding: 148px 0 50px; border-bottom: 2px solid var(--line); }
.ai-hero .kick { margin-bottom: 10px; }
.ai-hero h1 { font-size: clamp(2.4rem, 6.4vw, 4.8rem); }
/* Green, not italic — matches the fix already made on seller-info.css:
   an unstyled <em> falls back to the browser default (italic, same
   off-white as the rest of the heading), which is not visible emphasis
   against a dark page, it's noise. One consistent accent for every
   heading em on this page too, applied from the start rather than
   waiting to be asked a second time. */
.ai-hero h1 em { font-style: normal; color: var(--grn); }
.ai-hero p { color: var(--tx2); max-width: 640px; margin-top: 16px; font-size: 1.05rem; line-height: 1.75; }

.ai-hero-specs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.ai-hero-specs span { border: 2px solid var(--line2); color: var(--tx2); font-family: var(--body); font-weight: 800;
                       font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; padding: 9px 14px; }

.ai-section { padding: 84px 0; border-bottom: 2px solid var(--line); }
.ai-section.tight { padding: 64px 0; }
.ai-head { max-width: 760px; margin-bottom: 40px; }
.ai-head .kick { margin-bottom: 10px; }
.ai-head h2 { font-size: clamp(1.9rem, 4.4vw, 3.2rem); }
.ai-head h2 em { font-style: normal; color: var(--grn); }
.ai-head p { color: var(--tx2); font-size: 1.02rem; line-height: 1.75; margin-top: 14px; }

/* 01 — one-minute spec, six numbers */
.ai-spec-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
                background: var(--line); border: 2px solid var(--line); margin-top: 8px; }
.ai-spec-card { background: var(--bg); padding: 26px 24px; }
.ai-spec-card .label { font-family: var(--body); font-weight: 800; font-size: .68rem; letter-spacing: .1em;
                        text-transform: uppercase; color: var(--tx3); display: block; margin-bottom: 8px; }
.ai-spec-card b { font-family: var(--head); font-weight: 400; font-size: 1.7rem; color: var(--acc); display: block; line-height: 1.05; }
.ai-spec-card .sub { color: var(--tx3); font-size: .78rem; margin-top: 6px; display: block; }
.ai-spec-note { margin-top: 24px; background: var(--panel); border: 2px solid var(--line); padding: 22px 26px; color: var(--tx2); font-size: .92rem; line-height: 1.7; }
.ai-spec-note b { color: var(--tx); }

/* 02 — how DTG works, three stages */
.ai-stage-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
                 background: var(--line); border: 2px solid var(--line); margin-top: 8px; }
.ai-stage-card { background: var(--bg); padding: 28px 26px; }
.ai-stage-card .num { font-family: var(--head); font-weight: 400; font-size: 2.2rem; color: var(--acc); line-height: 1; margin-bottom: 10px; }
.ai-stage-card h3 { font-size: 1.15rem; margin-bottom: 10px; }
.ai-stage-card p { color: var(--tx2); font-size: .9rem; line-height: 1.65; }
.ai-stage-card .means { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.ai-stage-card .means span { font-family: var(--body); font-weight: 800; font-size: .66rem; letter-spacing: .1em;
                              text-transform: uppercase; color: var(--grn); display: block; margin-bottom: 6px; }
.ai-stage-card .means p { color: var(--tx2); font-size: .86rem; line-height: 1.6; }

/* 03 — print areas: three callout cards + full table */
.ai-area-callouts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
                     background: var(--line); border: 2px solid var(--line); margin-top: 8px; }
.ai-area-callout { background: var(--bg); padding: 26px 22px; text-align: center; }
.ai-area-callout .name { font-family: var(--head); font-weight: 400; font-size: 1.3rem; color: var(--tx); }
.ai-area-callout .dims { color: var(--acc); font-family: var(--head); font-weight: 400; font-size: 1.6rem; margin: 8px 0 2px; }
.ai-area-callout .px { color: var(--tx3); font-size: .78rem; margin-bottom: 12px; }
.ai-area-callout .role { color: var(--tx2); font-size: .84rem; line-height: 1.5; }

.ai-table-wrap { overflow-x: auto; margin-top: 30px; border: 2px solid var(--line); }
.ai-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.ai-table th { text-align: left; font-family: var(--body); font-weight: 800; font-size: .68rem; letter-spacing: .1em;
               text-transform: uppercase; color: var(--tx3); padding: 14px 16px; border-bottom: 2px solid var(--line); background: var(--panel); }
.ai-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: .9rem; color: var(--tx2); vertical-align: top; }
.ai-table td:first-child { color: var(--tx); font-weight: 700; white-space: nowrap; }
.ai-table td.num { color: var(--acc); font-family: var(--head); font-weight: 400; white-space: nowrap; }
.ai-table tbody tr:last-child td { border-bottom: none; }
.ai-table-note { margin-top: 22px; color: var(--tx2); font-size: .92rem; line-height: 1.7; max-width: 720px; }
.ai-table-note b { color: var(--tx); }

/* 04 — size checker */
.ai-checker { background: var(--panel); border: 2px solid var(--line); padding: 32px; margin-top: 8px; display: grid;
              grid-template-columns: 1fr 1fr; gap: 36px; align-items: start; }
.ai-checker-field { margin-bottom: 20px; }
.ai-checker-field label { display: block; font-family: var(--body); font-weight: 800; font-size: .7rem; letter-spacing: .1em;
                           text-transform: uppercase; color: var(--tx2); margin-bottom: 10px; }
.ai-checker-dims { display: flex; align-items: center; gap: 12px; }
.ai-checker-dims input { width: 100%; background: var(--bg); border: 2px solid var(--line2); color: var(--tx);
                          font-family: var(--head); font-weight: 400; font-size: 1.3rem; padding: 12px 14px; }
.ai-checker-dims input:focus { outline: none; border-color: var(--acc); }
.ai-checker-dims span { color: var(--tx3); font-family: var(--head); font-size: 1.2rem; }
.ai-checker-field select { width: 100%; background: var(--bg); border: 2px solid var(--line2); color: var(--tx);
                            font-family: var(--body); font-weight: 700; font-size: .94rem; padding: 12px 14px; }
.ai-checker-floor { color: var(--tx3); font-size: .78rem; }

.ai-checker-result h3 { font-size: 1rem; margin-bottom: 4px; }
.ai-checker-row { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--line); }
.ai-checker-row span:first-child { font-family: var(--body); font-weight: 800; font-size: .7rem; letter-spacing: .08em;
                                    text-transform: uppercase; color: var(--tx3); }
.ai-checker-row b { font-family: var(--head); font-weight: 400; font-size: 1.5rem; color: var(--tx); }
.ai-checker-verdict { margin-top: 20px; padding: 18px 20px; border: 2px solid var(--line2); }
.ai-checker-verdict .tag { font-family: var(--body); font-weight: 800; font-size: .8rem; letter-spacing: .04em; display: block; margin-bottom: 6px; }
.ai-checker-verdict p { color: var(--tx2); font-size: .88rem; line-height: 1.6; }
.ai-checker-verdict.clear { border-color: var(--grn); }
.ai-checker-verdict.clear .tag { color: var(--grn); }
.ai-checker-verdict.tight { border-color: var(--acc); }
.ai-checker-verdict.tight .tag { color: var(--acc); }
.ai-checker-verdict.fail { border-color: var(--red); }
.ai-checker-verdict.fail .tag { color: var(--red); }

/* 05 — design rules: do/don't pairs */
.ai-rule-block { margin-top: 40px; }
.ai-rule-block:first-child { margin-top: 8px; }
.ai-rule-block h3 { font-size: 1.2rem; margin-bottom: 16px; }
.ai-rule-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--line); border: 2px solid var(--line); }
.ai-rule-col { background: var(--bg); padding: 24px 26px; }
.ai-rule-col .tag { font-family: var(--body); font-weight: 800; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; display: block; margin-bottom: 14px; }
.ai-rule-col.do .tag { color: var(--grn); }
.ai-rule-col.dont .tag { color: var(--red); }
.ai-rule-col ul { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.ai-rule-col li { color: var(--tx2); font-size: .89rem; line-height: 1.6; padding-left: 20px; position: relative; }
.ai-rule-col.do li::before { content: '✓'; position: absolute; left: 0; color: var(--grn); }
.ai-rule-col.dont li::before { content: '✕'; position: absolute; left: 0; color: var(--red); }
.ai-transparency-note { margin-top: 30px; background: var(--panel); border: 2px solid var(--acc); padding: 24px 26px; }
.ai-transparency-note h4 { color: var(--acc); font-size: 1rem; margin-bottom: 10px; }
.ai-transparency-note p { color: var(--tx2); font-size: .92rem; line-height: 1.7; }

/* 06 — fabric */
.ai-fabric-list { display: flex; flex-direction: column; gap: 2px; background: var(--line); border: 2px solid var(--line); margin-top: 8px; }
.ai-fabric-item { background: var(--bg); padding: 22px 26px; display: grid; grid-template-columns: .8fr 2fr; gap: 24px; align-items: start; }
.ai-fabric-item h3 { font-size: 1.05rem; color: var(--tx); }
.ai-fabric-item p { color: var(--tx2); font-size: .9rem; line-height: 1.65; }
.ai-fabric-note { margin-top: 24px; color: var(--tx2); font-size: .92rem; line-height: 1.7; }
.ai-fabric-note b { color: var(--tx); }

/* 07 — export recipes, tabbed */
.ai-tabs { margin-top: 8px; }
.ai-tab-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.ai-tab-nav button { background: var(--bg); border: 2px solid var(--line2); color: var(--tx2); font-family: var(--body);
                      font-weight: 800; font-size: .8rem; padding: 10px 18px; cursor: pointer; transition: all .15s; }
.ai-tab-nav button:hover { color: var(--tx); border-color: var(--tx3); }
.ai-tab-nav button.active { background: var(--acc); border-color: var(--acc); color: #0A0A0A; }
.ai-tab-panel { display: none; background: var(--panel); border: 2px solid var(--line); padding: 30px 32px; }
.ai-tab-panel.active { display: block; }
/* Big loose Anton numerals instead of a boxed badge — same "giant numeral"
   language the site already uses for step counters elsewhere (home.css's
   .step b, seller-info's .si-step b), just laid out inline with the text
   rather than stacked above it. The generous gap is deliberate: these are
   meant to read as separate beats, not a cramped checklist. */
.ai-tab-panel ol { list-style: none; counter-reset: step; display: flex; flex-direction: column; gap: 34px; }
.ai-tab-panel li { counter-increment: step; color: var(--tx2); font-size: .96rem; line-height: 1.7; padding-left: 54px; position: relative; }
.ai-tab-panel li::before { content: counter(step); position: absolute; left: 0; top: -6px;
                            font-family: var(--head); font-weight: 400; font-size: 2.6rem; line-height: 1; color: var(--acc); }

/* 08 — pre-flight checklist */
.ai-checklist-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
.ai-checklist-counter { font-family: var(--head); font-weight: 400; font-size: 1.3rem; color: var(--tx3); }
.ai-checklist-counter b { color: var(--acc); }
.ai-checklist-counter.done b, .ai-checklist-counter.done { color: var(--grn); }
.ai-checklist { display: flex; flex-direction: column; gap: 2px; background: var(--line); border: 2px solid var(--line); }
.ai-check-item { background: var(--bg); display: flex; align-items: flex-start; gap: 14px; padding: 16px 20px; cursor: pointer; }
.ai-check-item input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--grn); cursor: pointer; }
.ai-check-item span { color: var(--tx2); font-size: .92rem; line-height: 1.5; }
.ai-check-item:has(input:checked) span { color: var(--tx3); text-decoration: line-through; }

/* 09 — naming & delivery */
.ai-filename-box { background: var(--panel); border: 2px solid var(--line); padding: 26px 28px; margin-top: 8px; }
.ai-filename-box .pattern { font-family: var(--head); font-weight: 400; font-size: 1.2rem; color: var(--acc); word-break: break-all; margin-bottom: 8px; }
.ai-filename-box .example { color: var(--tx3); font-size: .84rem; font-family: var(--body); }
.ai-filename-box p { color: var(--tx2); font-size: .9rem; line-height: 1.7; margin-top: 16px; }
.ai-naming-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 26px; }
.ai-naming-block h3 { font-size: 1rem; margin-bottom: 10px; color: var(--acc); }
.ai-naming-block p { color: var(--tx2); font-size: .9rem; line-height: 1.7; }

.ai-timeline { display: flex; flex-direction: column; gap: 2px; background: var(--line); border: 2px solid var(--line); margin-top: 30px; }
.ai-timeline-item { background: var(--bg); padding: 20px 24px; display: grid; grid-template-columns: .5fr 2fr; gap: 20px; align-items: baseline; }
.ai-timeline-item .when { font-family: var(--body); font-weight: 800; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; color: var(--grn); }
.ai-timeline-item p { color: var(--tx2); font-size: .9rem; line-height: 1.6; }

/* 10 — care card */
.ai-care-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: var(--line); border: 2px solid var(--line); margin-top: 8px; }
.ai-care-card { background: var(--bg); padding: 24px 22px; }
.ai-care-card h3 { font-size: 1rem; color: var(--acc); margin-bottom: 10px; }
.ai-care-card p { color: var(--tx2); font-size: .87rem; line-height: 1.6; }

/* FAQ — mirrors seller-info.css */
.ai-faq-list { display: flex; flex-direction: column; gap: 2px; background: var(--line); border: 2px solid var(--line); margin-top: 8px; }
.ai-faq-item { background: var(--bg); }
.ai-faq-item summary { padding: 20px 24px; cursor: pointer; font-family: var(--body); font-weight: 800; font-size: .96rem;
                        color: var(--tx); list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ai-faq-item summary::-webkit-details-marker { display: none; }
.ai-faq-item summary::after { content: '+'; font-family: var(--head); font-size: 1.4rem; color: var(--acc); flex: none; transition: transform .2s; }
.ai-faq-item[open] summary::after { transform: rotate(45deg); }
.ai-faq-item summary:hover { color: var(--acc); }
.ai-faq-item .a { padding: 0 24px 22px; color: var(--tx2); font-size: .9rem; line-height: 1.7; max-width: 780px; }

/* closing */
.ai-close { padding: 100px 0; text-align: center; }
.ai-close .kick { display: flex; justify-content: center; margin-bottom: 14px; }
.ai-close h2 { font-size: clamp(2.1rem, 5.6vw, 4rem); max-width: 760px; margin: 0 auto; }
.ai-close h2 em { font-style: normal; color: var(--grn); }
.ai-close p { color: var(--tx2); font-size: 1.02rem; line-height: 1.75; max-width: 600px; margin: 18px auto 0; }
.ai-close .hero-cta { justify-content: center; margin-top: 28px; }
.ai-close .contact { margin-top: 20px; color: var(--tx3); font-size: .9rem; }
.ai-close .contact a { color: var(--tx2); border-bottom: 1px solid var(--line2); }

@media (max-width: 860px) {
  .ai-spec-grid, .ai-stage-grid, .ai-area-callouts, .ai-rule-grid, .ai-naming-grid, .ai-care-grid { grid-template-columns: 1fr; }
  .ai-checker { grid-template-columns: 1fr; }
  .ai-fabric-item, .ai-timeline-item { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ai-section { padding: 60px 0; }
}
