/* ============================================
   Print2Accounts pages (product, manual, FAQ, privacy, changelog).
   Builds on style.css and product.css and uses their design tokens.
   ============================================ */

/* ---- Small-screen fixes shared by all five pages ---- */
.screenshots-grid { grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr)); }
.footer__links { flex-wrap: wrap; justify-content: center; row-gap: 10px; }
.product-hero__title { overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .product-hero__title { font-size: 2.2rem; }
  .product-hero__actions { flex-direction: column; align-items: stretch; }
  .product-hero__actions .btn { justify-content: center; }
}

/* ---- Article layout (manual, FAQ, privacy) — same as the GDPR guide ---- */
.doc { max-width: 780px; margin: 0 auto; padding: 140px 24px 80px; position: relative; z-index: 1; }
.doc__back { display: flex; width: fit-content; align-items: center; gap: 8px; color: var(--text-dim); text-decoration: none; font-size: 0.9rem; margin-bottom: 32px; transition: color 0.2s; }
.doc__back:hover { color: var(--cyan); }
.doc__badge { display: inline-block; font-family: var(--font-display); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cyan); border: 1px solid var(--glass-border); background: var(--glass-bg); border-radius: 100px; padding: 6px 16px; margin-bottom: 20px; }
.doc h1 { font-family: var(--font-display); font-size: clamp(1.9rem, 4.5vw, 2.8rem); font-weight: 800; line-height: 1.15; color: var(--text-primary); margin-bottom: 18px; overflow-wrap: break-word; }
.doc h2 { font-family: var(--font-display); font-size: 1.45rem; font-weight: 700; color: var(--text-primary); margin: 44px 0 14px; scroll-margin-top: 90px; overflow-wrap: break-word; }
.doc h3 { font-family: var(--font-display); font-size: 1.12rem; font-weight: 600; color: var(--text-primary); margin: 30px 0 10px; scroll-margin-top: 90px; overflow-wrap: break-word; }
.doc p, .doc li, .doc td, .doc th { font-family: var(--font-body); font-size: 1.02rem; line-height: 1.7; color: var(--text-secondary); }
.doc p { margin-bottom: 14px; }
.doc ul, .doc ol { margin: 0 0 16px 1.4em; }
.doc li { margin-bottom: 8px; }
.doc li > ul { margin-top: 8px; }
.doc a { color: var(--cyan); text-decoration: none; overflow-wrap: anywhere; }
.doc a:hover { text-decoration: underline; }
.doc strong { color: var(--text-primary); font-weight: 600; }
.doc em { color: var(--text-secondary); }
.doc hr { border: none; border-top: 1px solid var(--glass-border); margin: 36px 0; }
.doc code { font-family: Consolas, 'Courier New', monospace; font-size: 0.92em; color: var(--text-primary); background: rgba(255, 255, 255, 0.06); border-radius: 4px; padding: 1px 5px; overflow-wrap: anywhere; }
.doc kbd { font-family: var(--font-display); font-size: 0.85em; color: var(--text-primary); border: 1px solid var(--glass-border-hover); border-bottom-width: 2px; border-radius: 5px; padding: 1px 6px; white-space: nowrap; }
.doc blockquote { border-left: 3px solid var(--cobalt); background: var(--glass-bg); border-radius: var(--radius-sm); padding: 12px 18px; margin: 16px 0; }
.doc blockquote p { margin: 0; }
.doc__lead { font-size: 1.08rem; color: var(--text-secondary); }
.doc__meta { font-size: 0.92rem; color: var(--text-dim); margin-bottom: 20px; }
.doc__note { border-left: 3px solid var(--cyan); background: var(--glass-bg); border-radius: var(--radius-sm); padding: 16px 20px; margin: 20px 0; }
.doc__note p { margin: 0; }
.doc__note p + p { margin-top: 10px; }
.doc__disclaimer { border-left: 3px solid var(--violet); background: var(--glass-bg); border-radius: var(--radius-sm); padding: 16px 20px; margin: 24px 0 8px; }
.doc__disclaimer p { margin: 0; font-size: 0.98rem; }
.doc__footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--glass-border); color: var(--text-dim); }
.doc__footer p { font-size: 0.95rem; }

/* Table of contents */
.toc { border: 1px solid var(--glass-border); background: var(--glass-bg); border-radius: var(--radius-md); padding: 18px 22px 8px; margin: 28px 0 8px; }
.toc__title { font-family: var(--font-display); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 8px; }
.doc .toc ol, .doc .toc ul { margin-bottom: 10px; }
.doc .toc li { margin-bottom: 4px; }

/* Tables scroll inside their own box on a narrow screen, never the page */
.table-wrap { overflow-x: auto; margin: 8px 0 20px; border: 1px solid var(--glass-border); border-radius: var(--radius-sm); -webkit-overflow-scrolling: touch; }
.doc table { width: 100%; border-collapse: collapse; }
.doc .table-wrap--wide table { min-width: 480px; }
.doc th, .doc td { text-align: left; vertical-align: top; padding: 10px 14px; border-bottom: 1px solid var(--glass-border); font-size: 0.96rem; }
.doc th { color: var(--text-primary); font-family: var(--font-display); font-weight: 600; background: rgba(255, 255, 255, 0.03); }
.doc tr:last-child td { border-bottom: none; }

/* Screenshots inside the article: click to see full size */
.shot { margin: 18px 0 26px; }
.shot img { width: 100%; height: auto; display: block; border-radius: 12px; border: 1px solid rgba(120, 110, 255, 0.18); box-shadow: 0 18px 50px rgba(40, 30, 120, 0.35); cursor: zoom-in; background: #fff; }
.shot--narrow img { max-width: 560px; }
.shot figcaption { margin-top: 10px; font-size: 0.88rem; color: var(--text-dim); }

/* Placeholder for something Vesa still has to fill in (privacy policy draft) */
.todo { color: #ffd479; border: 1px dashed rgba(255, 212, 121, 0.6); border-radius: 4px; padding: 0 5px; font-style: normal; }

/* ---- Product page ---- */
/* The screenshots have different shapes (main window, settings, dialog): one frame keeps the grid even */
.screenshots-grid .screenshot img { aspect-ratio: 4 / 3; object-fit: contain; background: #e9edf4; }
.p2a-hero-shot { margin-top: 48px; }
.p2a-hero-shot img { width: 100%; height: auto; border-radius: 18px; box-shadow: 0 24px 80px rgba(80, 70, 220, .25); border: 1px solid rgba(120, 110, 255, .18); cursor: zoom-in; }
.p2a-hero-shot figcaption { margin-top: 12px; font-size: 0.86rem; color: var(--text-dim); }

.tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tier { background: var(--glass-bg); border: 1px solid var(--glass-border); border-radius: var(--radius-lg); padding: 30px 28px; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.tier--accent { border-color: rgba(0, 212, 255, 0.25); box-shadow: 0 0 40px rgba(0, 212, 255, 0.06); }
.tier__name { font-family: var(--font-display); font-weight: 800; font-size: 1.45rem; letter-spacing: -0.02em; margin-bottom: 4px; }
.tier__sub { font-family: var(--font-display); font-weight: 500; font-size: 0.9rem; color: var(--cyan); margin-bottom: 18px; }
.tier ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.tier li { font-size: 0.95rem; color: var(--text-secondary); line-height: 1.6; padding-left: 22px; position: relative; }
.tier li::before { content: ''; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--cobalt); opacity: 0.75; }
.tier-grid--two { grid-template-columns: repeat(2, 1fr); margin-top: 24px; }
.tier__price { font-family: var(--font-display); font-weight: 800; font-size: 2rem; letter-spacing: -0.02em; color: var(--text-primary); line-height: 1.1; }
.tier__price--text { font-size: 1.15rem; font-weight: 700; }
.tier__per { font-size: 0.88rem; color: var(--text-dim); margin: 4px 0 16px; }
.tier__cta { display: inline-block; margin-top: 16px; font-family: var(--font-display); font-weight: 600; font-size: 0.92rem; color: var(--cyan); }
.tier__cta:hover { text-decoration: underline; }
.tier-note { margin-top: 28px; text-align: center; color: var(--text-secondary); font-size: 0.98rem; }

/* Comparison table of the five tiers (product page, dark section) */
.compare-wrap { margin-top: 40px; overflow-x: auto; border: 1px solid var(--glass-border); border-radius: var(--radius-md); background: var(--glass-bg); -webkit-overflow-scrolling: touch; }
.compare { width: 100%; min-width: 640px; border-collapse: collapse; }
.compare caption { text-align: left; padding: 14px 18px 0; font-family: var(--font-display); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dim); }
.compare th, .compare td { text-align: left; vertical-align: top; padding: 12px 16px; border-bottom: 1px solid var(--glass-border); font-size: 0.93rem; line-height: 1.55; color: var(--text-secondary); }
.compare th { font-family: var(--font-display); font-weight: 600; color: var(--text-primary); }
.compare thead th { background: rgba(255, 255, 255, 0.03); }
.compare tr:last-child td, .compare tr:last-child th { border-bottom: none; }

/* Ordering block under the tiers */
.order-box { max-width: 820px; margin: 40px auto 0; background: var(--glass-bg); border: 1px solid var(--glass-border); border-radius: var(--radius-lg); padding: 28px 30px; }
.order-box h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; margin-bottom: 12px; }
.order-box p { color: var(--text-secondary); line-height: 1.7; margin-bottom: 10px; }
.order-box p:last-child { margin-bottom: 0; }
.order-box a { color: var(--cyan); }
.order-box a:hover { text-decoration: underline; }
.order-box strong { color: var(--text-primary); }
.tier-note a, .p2a-inline-link { color: var(--cyan); }
.tier-note a:hover, .p2a-inline-link:hover { text-decoration: underline; }

.privacy-points { max-width: 820px; margin: 0 auto; display: grid; gap: 14px; }
.privacy-points li { list-style: none; background: var(--glass-bg); border: 1px solid var(--glass-border); border-radius: var(--radius-md); padding: 16px 20px; color: var(--text-secondary); line-height: 1.65; }
.privacy-points strong { color: var(--text-primary); }

.link-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; }
.link-card { display: block; background: #fff; border: 1px solid var(--light-border); border-radius: var(--radius-md); padding: 24px; transition: all 0.35s var(--ease-out); }
.link-card:hover { border-color: rgba(20, 57, 252, 0.2); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06); }
.link-card__title { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; color: var(--light-text); margin-bottom: 6px; }
.link-card__desc { font-size: 0.9rem; color: var(--light-text-secondary); line-height: 1.6; }

.english { max-width: 820px; margin: 0 auto; }
.english p { color: var(--text-secondary); line-height: 1.75; margin-bottom: 14px; }
.english strong { color: var(--text-primary); }
.english ul { margin: 0 0 14px 1.2em; color: var(--text-secondary); }
.english li { line-height: 1.7; margin-bottom: 6px; }
.english a { color: var(--cyan); }

@media (max-width: 900px) {
  .tier-grid, .tier-grid--two { grid-template-columns: 1fr; }
  .order-box { padding: 22px 20px; }
  .link-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .link-grid { grid-template-columns: 1fr; }
}

/* ---- Download block: version, size and link come from /api/updates/print2accounts ---- */
.dl__state { display: none; }
.dl[data-state="checking"] .dl__state--checking,
.dl[data-state="ready"] .dl__state--ready,
.dl[data-state="soon"] .dl__state--soon { display: block; }
.dl__badge { display: inline-block; font-family: var(--font-display); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cyan); background: rgba(0, 212, 255, 0.08); border: 1px solid rgba(0, 212, 255, 0.2); border-radius: 100px; padding: 6px 18px; margin-bottom: 18px; }
.dl__text { color: var(--text-secondary); max-width: 560px; margin: 0 auto 24px; line-height: 1.7; }
.dl__meta { font-family: var(--font-display); font-size: 0.85rem; color: var(--text-dim); font-weight: 500; margin-top: 18px; }
.dl__hash { margin-top: 14px; font-size: 0.82rem; color: var(--text-dim); }
.dl__hash summary { cursor: pointer; display: inline-block; }
.dl__hash code { display: block; margin-top: 8px; font-family: Consolas, 'Courier New', monospace; overflow-wrap: anywhere; color: var(--text-secondary); }

/* ---- Changelog (same look as the Batch PhotoTools changelog) ---- */
.changelog { max-width: 820px; margin: 0 auto; padding: 0 24px 96px; position: relative; z-index: 1; }
.changelog .release { margin-bottom: 56px; scroll-margin-top: 90px; }
.changelog .release__header { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
.changelog .release__version { font-family: 'Outfit', sans-serif; font-size: 1.6rem; font-weight: 700; }
.changelog .release__date { opacity: 0.6; font-size: 0.95rem; }
.changelog .release__tag { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; padding: 3px 10px; border-radius: 999px; background: rgba(120, 140, 255, 0.15); border: 1px solid rgba(120, 140, 255, 0.35); }
.changelog h3 { margin: 20px 0 10px; font-size: 1.05rem; font-weight: 600; opacity: 0.9; }
.changelog p { line-height: 1.65; opacity: 0.85; margin-bottom: 12px; }
.changelog ul { margin: 0 0 8px 1.2em; padding: 0; }
.changelog li { margin-bottom: 10px; line-height: 1.55; opacity: 0.85; }
.changelog li strong { opacity: 1; }
.changelog a { color: var(--cyan); }
.changelog a:hover { text-decoration: underline; }
.changelog hr { border: none; border-top: 1px solid rgba(255,255,255,0.08); margin: 40px 0; }
.changelog .release--latest .release__version { color: #9db1ff; }

/* Terms of use (kayttoehdot.html): numbered TOC entries, "1)" lists, anchors to numbered clauses */
.doc .toc__list { list-style: none; margin-left: 0; }
.doc ol.doc__list--paren { list-style: none; counter-reset: paren; margin-left: 0.4em; }
.doc ol.doc__list--paren > li { counter-increment: paren; padding-left: 2em; position: relative; }
.doc ol.doc__list--paren > li::before { content: counter(paren) ")"; position: absolute; left: 0; color: var(--text-dim); }
.doc p[id] { scroll-margin-top: 90px; }
.doc__address { line-height: 1.8; }
