/* PhotoFlyVix — design system (cópia para publicação). Gerado a partir de styles.css + tokens/ em 2026-10-06. */

/* ---- tokens/fonts.css ---- */
/* Google Fonts substitutes — logo wordmark is a geometric sans (closest: Poppins). Replace with licensed files if available. */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
/* Icons: Lucide icon font (CDN) — use <i class="icon-shopping-bag"></i> */
@import url('https://unpkg.com/lucide-static@0.460.0/font/lucide.css');


/* ---- tokens/colors.css ---- */
/* PhotoFlyVix Studio — color tokens */
:root{
  /* Brand */
  --pfv-red-50:#FDECEC;
  --pfv-red-100:#FAD0D1;
  --pfv-red-300:#F2666B;
  --pfv-red-500:#E61218; /* Primary Red — crop marks, CTA */
  --pfv-red-600:#C90F15; /* hover */
  --pfv-red-700:#A80C11; /* press */
  --pfv-red-logo:#ED1C24; /* sampled from logo PNG */

  /* Studio neutrals */
  --pfv-black:#000000;
  --pfv-ink-900:#121212;
  --pfv-ink-700:#2B2B2F;
  --pfv-ink-500:#5C5C66;
  --pfv-ink-400:#8A8A94;
  --pfv-gray-300:#C8C8D0;
  --pfv-gray-200:#E0E0E6; /* Cinza Galeria — borders */
  --pfv-gray-100:#F2F2F5; /* Cinza Galeria — surfaces */
  --pfv-paper:#F9F9FB;    /* Branco Papel Fine Art */
  --pfv-white:#FFFFFF;

  /* Acervo palette (sampled from the art collection) */
  --art-cream:#F3F0DD;
  --art-sand:#E8E1CF;
  --art-sage:#E3EBE0;
  --art-blush:#FBE3D7;
  --art-terracotta:#D7765E;
  --art-teal:#5A9EA6;
  --art-navy:#3C405B;
  --art-umber:#2F1F14;
  --art-sun:#FBDD01;
  --art-concrete:#939393;

  /* Semantic feedback */
  --pfv-success:#1F8A4C;
  --pfv-success-bg:#E6F4EC;
  --pfv-warning:#B26A00;
  --pfv-warning-bg:#FFF3DC;
  --pfv-danger:var(--pfv-red-500);
  --pfv-danger-bg:var(--pfv-red-50);
  --pfv-info:#2F5D8A;
  --pfv-info-bg:#E8EFF7;

  /* Semantic aliases */
  --bg-page:var(--pfv-white);
  --bg-subtle:var(--pfv-paper);
  --surface-card:var(--pfv-white);
  --surface-muted:var(--pfv-gray-100);
  --surface-inverse:var(--pfv-ink-900);
  --surface-wall:var(--pfv-gray-100);
  --border-default:var(--pfv-gray-200);
  --border-strong:var(--pfv-ink-900);
  --text-primary:var(--pfv-ink-900);
  --text-secondary:var(--pfv-ink-500);
  --text-muted:var(--pfv-ink-400);
  --text-inverse:var(--pfv-white);
  --text-accent:var(--pfv-red-500);
  --action-primary:var(--pfv-red-500);
  --action-primary-hover:var(--pfv-red-600);
  --action-primary-press:var(--pfv-red-700);
  --action-dark:var(--pfv-ink-900);
  --action-dark-hover:var(--pfv-black);
  --focus-ring:var(--pfv-red-500);
  --crop-mark:var(--pfv-red-500);
}


/* ---- tokens/typography.css ---- */
:root{
  --font-display:'Poppins',ui-sans-serif,system-ui,sans-serif;
  --font-body:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;

  --fw-regular:400;/* @kind font */--fw-medium:500;/* @kind font */--fw-semibold:600;/* @kind font */--fw-bold:700;/* @kind font */--fw-black:900;/* @kind font */

  --fs-display-xl:72px;--fs-display-l:56px;--fs-h1:44px;--fs-h2:34px;--fs-h3:24px;--fs-h4:19px;
  --fs-body-l:18px;--fs-body:16px;--fs-body-s:14px;--fs-caption:12px;--fs-eyebrow:11px;

  --lh-tight:1.05;/* @kind font */--lh-heading:1.15;/* @kind font */--lh-body:1.6;/* @kind font */--lh-snug:1.35;/* @kind font */
  --ls-display:-0.03em;--ls-heading:-0.015em;--ls-studio:0.42em;--ls-eyebrow:0.24em;--ls-button:0.02em;

  /* semantic */
  --type-display:var(--fw-black) var(--fs-display-l)/var(--lh-tight) var(--font-display);
  --type-h1:var(--fw-bold) var(--fs-h1)/var(--lh-heading) var(--font-display);
  --type-h2:var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-display);
  --type-h3:var(--fw-semibold) var(--fs-h3)/var(--lh-snug) var(--font-display);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-body);
  --type-body-s:var(--fw-regular) var(--fs-body-s)/var(--lh-body) var(--font-body);
}


/* ---- tokens/spacing.css ---- */
:root{
  --space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;
  --container-max:1280px;--container-pad:24px;--header-h:72px;
  --radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;
  --border-hair:1px;--border-thick:2px;
  --crop-size:22px;--crop-weight:4px;
}


/* ---- tokens/effects.css ---- */
:root{
  --shadow-xs:0 1px 2px rgba(18,18,18,.06);
  --shadow-sm:0 2px 6px rgba(18,18,18,.06),0 1px 2px rgba(18,18,18,.04);
  --shadow-md:0 10px 24px -8px rgba(18,18,18,.16),0 2px 6px rgba(18,18,18,.05);
  --shadow-lg:0 24px 48px -16px rgba(18,18,18,.24),0 4px 12px rgba(18,18,18,.06);
  /* realistic frame hanging on a wall */
  --shadow-frame:0 2px 3px rgba(0,0,0,.18),0 18px 30px -12px rgba(0,0,0,.35);
  --shadow-canvas-edge:inset -6px 0 8px -6px rgba(0,0,0,.25);
  --shadow-focus:0 0 0 3px rgba(230,18,24,.25);
  --ease-out:cubic-bezier(.2,.7,.2,1);/* @kind other */--ease-in-out:cubic-bezier(.65,0,.35,1);/* @kind other */
  --dur-fast:120ms;/* @kind other */--dur-base:200ms;/* @kind other */--dur-slow:360ms;/* @kind other */
  --overlay-scrim:rgba(18,18,18,.55);
}


/* ---- tokens/base.css ---- */
/* Minimal element defaults for consumers */
html{-webkit-font-smoothing:antialiased}
body{margin:0;font:var(--type-body);color:var(--text-primary);background:var(--bg-page)}
a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--pfv-gray-300)}
a:hover{color:var(--text-accent);text-decoration-color:currentColor}
::selection{background:var(--pfv-red-500);color:#fff}
.pfv-eyebrow{font:var(--fw-semibold) var(--fs-eyebrow)/1 var(--font-display);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-secondary)}
.pfv-studio{font:var(--fw-medium) 12px/1 var(--font-display);letter-spacing:var(--ls-studio);text-transform:uppercase}

