/* janessaprince.com — hand-coded from the design handoff (design system 8fc0bcdf) */

/* ---------- Fonts (self-hosted, latin subset) ---------- */
@font-face{font-family:'Young Serif';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/young-serif.woff2') format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300 800;font-display:swap;src:url('/assets/fonts/hanken-grotesk.woff2') format('woff2')}
@font-face{font-family:'Caveat';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/caveat.woff2') format('woff2')}

/* ---------- Tokens ---------- */
:root{
/* Pine — brand green (logo ink) */
--pine-950:#12211A;--pine-900:#1E3A2F;--pine-800:#26483A;--pine-700:#2E5645;--pine-500:#49775F;--pine-300:#9CBCA8;--pine-150:#CFDFD2;--pine-100:#DEEAE0;--pine-50:#EFF5EE;
/* Paper & sand — warm neutrals */
--paper:#FAF6EF;--paper-warm:#F3ECDF;--sand-200:#ECE4D4;--sand-300:#E0D5BF;--white:#FFFFFF;
/* Coral — energy accent */
--coral-600:#C94A2A;--coral-500:#E85D3D;--coral-400:#F07B5E;--coral-100:#FBE4DC;--coral-50:#FDF1ED;
/* Marigold — highlight accent */
--marigold-500:#E3A02A;--marigold-400:#F2B84B;--marigold-200:#F9DE9B;--marigold-100:#FBEED0;
/* Semantic */
--success:#3E7C4F;--success-tint:#E3EFE5;--danger:#BC3E2C;--danger-tint:#F9E5E1;
/* Text */
--text-strong:var(--pine-900);--text-body:#33443A;--text-muted:#66756B;--text-faint:#8E9A90;--text-on-dark:var(--paper);--text-on-dark-muted:#AFC2B4;--text-on-accent:#FFF8F3;
/* Surfaces */
--surface-page:var(--paper);--surface-card:var(--white);--surface-tint:var(--pine-50);--surface-warm:var(--paper-warm);--surface-dark:var(--pine-900);
/* Borders & focus */
--border-soft:#EAE2D2;--border-strong:#D6CBB5;--ring:0 0 0 3px rgba(232,93,61,.30);
--highlight:#F9E3A0;
/* Type */
--font-display:'Young Serif',Georgia,'Times New Roman',serif;
--font-body:'Hanken Grotesk','Avenir Next','Segoe UI',sans-serif;
--font-hand:'Caveat','Bradley Hand',cursive;
--text-display-1:clamp(2.625rem,5.5vw,4.25rem);--text-display-2:clamp(2rem,3.8vw,2.875rem);--text-h3:1.5rem;--text-h4:1.1875rem;--text-lead:clamp(1.125rem,1.7vw,1.3125rem);--text-body:1.0625rem;--text-small:.9375rem;--text-caption:.8125rem;--text-eyebrow:.8125rem;--text-hand:1.4375rem;
--leading-display:1.06;--leading-tight:1.25;--leading-body:1.65;--tracking-eyebrow:.14em;--tracking-display:-0.005em;
/* Spacing */
--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-30:120px;
--container:1120px;--container-narrow:720px;
--gutter:clamp(20px,5vw,48px);
--section-pad:var(--space-20);
/* Radius */
--radius-xs:6px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-pill:999px;--radius-arch:999px 999px 20px 20px;
/* Shadows */
--shadow-sm:0 1px 2px rgba(30,58,47,.06),0 2px 6px rgba(30,58,47,.05);
--shadow-md:0 2px 4px rgba(30,58,47,.05),0 10px 24px -6px rgba(30,58,47,.12);
--shadow-lg:0 4px 8px rgba(30,58,47,.05),0 24px 48px -12px rgba(30,58,47,.18);
--shadow-lift:0 6px 14px -4px rgba(30,58,47,.14),0 18px 36px -10px rgba(30,58,47,.16);
/* Motion */
--ease-out:cubic-bezier(.22,.61,.36,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);
--dur-fast:150ms;--dur-base:250ms;--dur-slow:450ms;
}
@media(max-width:640px){:root{--section-pad:var(--space-12)}}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;color:var(--text-strong);line-height:var(--leading-tight);margin:0}
p{margin:0}
a{color:var(--coral-600);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--coral-500)}
img{max-width:100%;display:block}
::selection{background:var(--marigold-200)}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-xs)}

/* ---------- Utilities ---------- */
.jp-eyebrow{font-family:var(--font-body);font-size:var(--text-eyebrow);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--coral-600)}
.jp-eyebrow.on-dark{color:var(--marigold-400)}
.jp-hand{font-family:var(--font-hand);font-size:var(--text-hand);color:var(--pine-700);line-height:1.3}
.jp-hand.marigold{color:var(--marigold-500)}
.jp-highlight{background:linear-gradient(104deg,transparent 1.5%,var(--highlight) 2.5%,var(--highlight) 97%,transparent 98%);padding:.05em .25em;margin:0 -.1em;border-radius:.3em .5em .4em .45em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.jp-underline{text-decoration:underline;text-decoration-color:var(--coral-500);text-decoration-thickness:.14em;text-underline-offset:.18em;text-decoration-skip-ink:none}

.display-1{font-size:var(--text-display-1);line-height:var(--leading-display);letter-spacing:var(--tracking-display)}
.display-2{font-size:var(--text-display-2);letter-spacing:var(--tracking-display);max-width:22ch}
.display-2.on-dark{color:var(--text-on-dark)}
.lead{font-size:var(--text-lead);line-height:1.6;color:var(--text-body);max-width:58ch}
.lead.on-dark{color:var(--text-on-dark-muted)}
.h3{font-size:var(--text-h3)}
.h4{font-size:var(--text-h4)}
.small{font-size:var(--text-small);line-height:1.6;color:var(--text-body)}
.muted{color:var(--text-muted)}

/* ---------- Sections ---------- */
.sec{background:var(--paper)}
.sec-tint{background:var(--surface-tint)}
.sec-warm{background:var(--surface-warm)}
.sec-dark{background:var(--surface-dark)}
.wrap{max-width:var(--container);margin:0 auto;padding:var(--section-pad) var(--gutter)}
.wrap.pt-0{padding-top:0}
.wrap.pb-0{padding-bottom:0}
.prose{max-width:var(--container-narrow);display:grid;gap:var(--space-6)}
.prose p{line-height:var(--leading-body);color:var(--text-body)}

/* Auto grids */
.auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--min,280px)),1fr));gap:var(--gap,var(--space-5))}
.grid-hero{--min:320px;--gap:var(--space-16);align-items:center}
.grid-hero-start{align-items:start}

.jp-numrow{display:grid;grid-template-columns:minmax(84px,120px) 1fr;gap:var(--space-8);align-items:start}
.jp-numrow .num{font-family:var(--font-display);font-size:clamp(3rem,6vw,4.5rem);line-height:1}
.num-pine{color:var(--pine-300)}
.num-coral{color:var(--coral-400)}
.jp-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media(max-width:640px){.jp-numrow{grid-template-columns:1fr;gap:var(--space-3)}}
@media(max-width:480px){.jp-2col{grid-template-columns:1fr}}

/* Stacks */
.stack{display:grid;gap:var(--space-6);justify-items:start}
.stack-sm{display:grid;gap:var(--space-4);justify-items:start}
.stack-5{display:grid;gap:var(--space-5);justify-items:start}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row-8{display:flex;gap:8px;flex-wrap:wrap}
.row-10{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- Icons (CSS masks, inherit currentColor) ---------- */
.icon{display:inline-block;width:var(--icon-size,18px);height:var(--icon-size,18px);flex:none;background-color:currentColor;-webkit-mask:var(--icon-url) center/contain no-repeat;mask:var(--icon-url) center/contain no-repeat}
.icon-arrow-right{--icon-url:url('/assets/icons/arrow-right.svg')}
.icon-menu{--icon-url:url('/assets/icons/menu.svg')}
.icon-x{--icon-url:url('/assets/icons/x.svg')}
.icon-send{--icon-url:url('/assets/icons/send.svg')}
.icon-file-down{--icon-url:url('/assets/icons/file-down.svg')}
.icon-sparkles{--icon-url:url('/assets/icons/sparkles.svg')}
.icon-chevron-down{--icon-url:url('/assets/icons/chevron-down.svg')}
.icon-rotate-ccw{--icon-url:url('/assets/icons/rotate-ccw.svg')}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1.2;letter-spacing:.005em;border-radius:var(--radius-pill);border:1.5px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.btn .icon{--icon-size:17px;transition:transform var(--dur-fast) var(--ease-out)}
.btn-sm{padding:8px 18px;font-size:.9375rem}.btn-sm .icon{--icon-size:15px}
.btn-lg{padding:15px 30px;font-size:1.0625rem}.btn-lg .icon{--icon-size:18px}
.btn-primary{background:var(--coral-500);color:var(--text-on-accent)}
.btn-primary:hover{background:var(--coral-600);color:var(--text-on-accent)}
.btn-dark{background:var(--pine-900);color:var(--paper)}
.btn-dark:hover{background:var(--pine-950);color:var(--paper)}
.btn-secondary{background:transparent;color:var(--text-strong);border-color:var(--pine-900)}
.btn-secondary:hover{background:var(--pine-50);color:var(--text-strong)}
.btn-ondark{background:var(--paper);color:var(--pine-900)}
.btn-ondark:hover{background:var(--white);color:var(--pine-900)}
.btn-primary:hover,.btn-dark:hover,.btn-secondary:hover,.btn-ondark:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.btn:hover .icon-arrow-right{transform:translateX(2px)}
.btn:active{transform:scale(.98);box-shadow:none}
.btn:focus-visible{box-shadow:var(--ring)}
.btn-ghost{background:transparent;color:var(--coral-600);padding-left:0;padding-right:0}
.btn-ghost:hover{color:var(--coral-600)}
.btn-ghost:hover .label{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.btn-full{display:flex;width:100%}

/* ---------- Badges ---------- */
.badge{display:inline-flex;align-items:center;gap:7px;padding:5px 13px;border-radius:var(--radius-pill);background:var(--pine-100);color:var(--pine-800);font-family:var(--font-body);font-size:var(--text-caption);font-weight:700;letter-spacing:.02em;line-height:1.4;white-space:nowrap}
.badge.dot::before{content:'';width:6px;height:6px;border-radius:99px;background:currentColor}
.badge-coral{background:var(--coral-100);color:var(--coral-600)}
.badge-neutral{background:var(--sand-200);color:var(--text-muted)}
.badge-success{background:var(--success-tint);color:var(--success)}
@media(max-width:480px){.badge{white-space:normal;text-align:left}}

/* ---------- Cards ---------- */
.card{background:var(--surface-card);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:var(--space-8);color:var(--text-body);box-shadow:var(--shadow-sm)}
.card-tint{background:var(--surface-tint);border-color:transparent;box-shadow:none}
.card-warm{background:var(--surface-warm);border-color:transparent;box-shadow:none}
.card-dark{background:var(--surface-dark);border-color:transparent;box-shadow:var(--shadow-md);color:var(--text-on-dark)}
.card-hover{transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.card-hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
a.card{text-decoration:none;color:var(--text-body)}
a.card:hover{color:var(--text-body)}
a.card:hover .btn-ghost .label{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
a.card:hover .btn-ghost .icon-arrow-right{transform:translateX(2px)}
.card-pad-6{padding:var(--space-6)}
.card-pad-12{padding:var(--space-12)}
.card-flush{padding:0;overflow:hidden}

/* ---------- Stats ---------- */
.stat{display:grid;gap:6px}
.stat-value{font-family:var(--font-display);font-size:clamp(2.375rem,3.6vw,3.25rem);line-height:1;color:var(--coral-500)}
.stat-lg .stat-value{font-size:clamp(3rem,5vw,4.25rem)}
.stat-marigold .stat-value{color:var(--marigold-500)}
.stat-label{font-family:var(--font-body);font-size:var(--text-body);font-weight:600;color:var(--text-strong);line-height:1.4;max-width:26ch}
.stat-ondark .stat-label{color:var(--text-on-dark)}
.stat-note{font-family:var(--font-body);font-size:var(--text-caption);color:var(--text-muted);line-height:1.5;max-width:30ch}
.stat-ondark .stat-note{color:var(--text-on-dark-muted)}

/* ---------- Quote ---------- */
.quote{margin:0;display:grid;gap:var(--space-5)}
.quote-mark{font-family:var(--font-display);font-size:3.5rem;line-height:.5;color:var(--coral-500);height:.35em}
.quote blockquote{margin:0;font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.45;color:var(--text-strong)}
.quote figcaption{font-family:var(--font-body);font-size:var(--text-small);color:var(--text-muted)}
.quote figcaption b{font-weight:700;color:var(--text-strong)}

/* ---------- Photo frames ---------- */
.photo{margin:0;display:grid;gap:10px}
.photo-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--paper-warm)}
.photo-arch .photo-media{border-radius:var(--radius-arch)}
.photo-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo figcaption{font-family:var(--font-hand);font-size:var(--text-hand);color:var(--pine-700);line-height:1.25;text-align:left}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,246,239,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft)}
.site-header .bar{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.lockup{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.lockup img{height:38px}
.lockup .words{display:grid;line-height:1;justify-items:center}
.lockup .name{font-family:var(--font-display);font-size:1.375rem;letter-spacing:var(--tracking-display);color:var(--pine-900);white-space:nowrap}
.lockup .sub{display:flex;align-items:center;gap:8px;margin-top:4px;align-self:stretch}
.lockup .sub .rule{flex:1;height:1px;background:var(--coral-400);opacity:.7}
.lockup .sub .word{font-family:var(--font-body);font-size:.6875rem;font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--coral-600)}
.lockup-cream img{height:40px}
.lockup-cream .name{color:var(--paper)}
.lockup-cream .sub .rule{background:var(--text-on-dark-muted)}
.lockup-cream .sub .word{color:var(--text-on-dark-muted)}
.site-nav{display:flex;align-items:center;gap:28px}
.site-nav a:not(.btn){white-space:nowrap;font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:var(--text-strong);text-decoration:none;padding:6px 2px;border-bottom:2px solid transparent;transition:color var(--dur-fast) var(--ease-out)}
.site-nav a:not(.btn):hover{color:var(--coral-600)}
.site-nav a[aria-current="page"]{color:var(--coral-600);border-bottom-color:var(--coral-500)}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--pine-900)}
.menu-btn .icon{--icon-size:24px}
.menu-btn .icon-x{display:none}
.mobile-nav{display:none;border-top:1px solid var(--border-soft);background:var(--paper);padding:var(--space-4) var(--gutter) var(--space-6)}
.mobile-nav a:not(.btn){display:block;font-family:var(--font-body);font-size:1.125rem;font-weight:600;color:var(--text-strong);text-decoration:none;padding:12px 2px;border-bottom:1px solid var(--border-soft)}
.mobile-nav a[aria-current="page"]{color:var(--coral-600)}
.mobile-nav .btn{margin-top:14px}
@media(max-width:819.98px){
  .site-nav{display:none}
  .menu-btn{display:inline-flex}
  .nav-open .mobile-nav{display:grid;gap:4px}
  .nav-open .menu-btn .icon-menu{display:none}
  .nav-open .menu-btn .icon-x{display:inline-block}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--surface-dark);color:var(--text-on-dark)}
.site-footer .top{max-width:var(--container);margin:0 auto;padding:var(--space-16) var(--gutter) var(--space-10);display:flex;flex-wrap:wrap;gap:var(--space-12);justify-content:space-between}
.site-footer .brand{display:grid;gap:var(--space-5);align-content:start;max-width:360px;justify-items:start}
.site-footer .mission{font-size:var(--text-small);line-height:1.6;color:var(--text-on-dark-muted)}
.site-footer .hand-note{font-family:var(--font-hand);font-size:1.3125rem;color:var(--marigold-400)}
.site-footer .cols{display:flex;gap:var(--space-16);flex-wrap:wrap}
.site-footer .col{display:grid;gap:12px;align-content:start}
.site-footer .col-title{font-size:var(--text-eyebrow);font-weight:700;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-on-dark-muted)}
.site-footer .col a{color:var(--text-on-dark);text-decoration:none;font-size:var(--text-small);font-weight:500;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out)}
.site-footer .col a:hover{color:var(--marigold-400)}
.site-footer .col a.email{text-decoration:underline;text-decoration-color:var(--coral-400);text-decoration-thickness:1.5px;text-underline-offset:3px}
.site-footer .loc{font-size:var(--text-caption);color:var(--text-on-dark-muted)}
.site-footer .bottom{border-top:1px solid rgba(250,246,239,.14)}
.site-footer .bottom-in{max-width:var(--container);margin:0 auto;padding:18px var(--gutter);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:var(--text-caption);color:var(--text-on-dark-muted)}

/* ---------- Dark band pull-quote ---------- */
.bandquote{display:grid;gap:var(--space-6);justify-items:center;text-align:center;padding:var(--space-4) 0}
.bandquote .icon{--icon-size:22px;color:var(--marigold-400)}
.bandquote p{font-family:var(--font-display);font-size:clamp(1.875rem,4.2vw,3.25rem);line-height:1.25;letter-spacing:var(--tracking-display);color:var(--text-on-dark);max-width:24ch}
.bandquote .mg{color:var(--marigold-400)}

/* ---------- CTA block ---------- */
.cta-card{display:grid;gap:var(--space-6);justify-items:center;text-align:center}
.cta-card .display-2{max-width:24ch}

/* ---------- Forms ---------- */
.field{display:block}
.field-label{display:block;font-family:var(--font-body);font-size:var(--text-small);font-weight:700;color:var(--text-strong);margin-bottom:8px}
.control{width:100%;font-family:var(--font-body);font-size:var(--text-body);color:var(--text-strong);background:var(--white);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);padding:12px 16px;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.control::placeholder{color:var(--text-faint);opacity:1}
.control:focus{border-color:var(--coral-500);box-shadow:var(--ring)}
textarea.control{resize:vertical;line-height:1.55}
.select-wrap{position:relative;display:block}
.select-wrap select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer}
.select-wrap select.placeholder{color:var(--text-faint)}
.select-wrap .icon{position:absolute;right:15px;top:50%;transform:translateY(-50%);pointer-events:none;--icon-size:17px;color:var(--pine-700)}
.form-note{font-size:var(--text-caption);color:var(--text-muted);line-height:1.4}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Misc ---------- */
.center-note{display:grid;justify-items:center;text-align:center;gap:6px}
.mb-4{margin-bottom:var(--space-4)}
.mb-6{margin-bottom:var(--space-6)}
.mb-10{margin-bottom:var(--space-10)}
.mt-8{margin-top:var(--space-8)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
