/**
 * Personal Assistant Plus: site core
 * Fonts, brand colors, shared header (index-card menu) and footer.
 * Every rule for the header and footer is scoped under .pap-header / .pap-footer,
 * so the older page styles can't override them (and they don't leak into pages).
 * No drop shadows anywhere: depth comes from color blocks and outlines.
 */

/* ---------- Fonts (self-hosted, no Google requests) ---------- */
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-300-normal.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-300-italic.woff2") format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Be Vietnam Pro";src:url("../fonts/be-vietnam-pro-latin-800-normal.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

/* ---------- Brand tokens ---------- */
:root{
    --pap-purple:#850D8C; --pap-purple-deep:#5E0863; --pap-lime:#CFE132;
    --pap-ink:#1C1220; --pap-chalk:#F7F6F2; --pap-mist:#ECE9EF; --pap-lilac:#F3E6F4; --pap-muted:#6A6070;
    --pap-sans:"Be Vietnam Pro","Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;
    --pap-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
    --pap-ease:cubic-bezier(.2,.7,.1,1);
    --pap-head-h:104px;            /* topbar 34 + bar 70 */
}
@media (max-width:640px){ :root{ --pap-head-h:64px; } }

html{background-color:var(--pap-ink)}
/* the old fixed header pushed every page down; this header sits in the page */
html body{padding-top:0!important}

.skip-to-main{position:absolute;left:-9999px;top:8px;z-index:300;background:var(--pap-lime);color:var(--pap-ink);padding:10px 16px;border-radius:999px;font:700 14px/1 var(--pap-sans);text-decoration:none}
.skip-to-main:focus{left:12px}


/* buttons used across pages */
.pap-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 14px/1 var(--pap-sans);border-radius:999px;padding:12px 18px;white-space:nowrap;cursor:pointer;border:0;transition:transform .25s var(--pap-ease),background .25s,color .25s}
.pap-btn:hover{transform:translateY(-2px)}
.pap-btn-ghost{background:transparent;color:var(--pap-chalk);box-shadow:inset 0 0 0 1.5px rgba(247,246,242,.55)}
.pap-btn-ghost:hover{background:var(--pap-chalk);color:var(--pap-ink)}
.pap-btn-purple{background:var(--pap-purple);color:var(--pap-chalk)}
.pap-btn-purple:hover{background:var(--pap-lime);color:var(--pap-ink)}
.pap-btn-lime{background:var(--pap-lime);color:var(--pap-ink)}
.pap-btn-lime:hover{background:var(--pap-chalk);color:var(--pap-purple)}

/* ==========================================================================
   HEADER (transparent over the home hero, solid ink everywhere else)
   ========================================================================== */
.pap-hdr{position:sticky;top:0;z-index:100;display:flex;align-items:center;background:var(--pap-ink);color:#fff;font-family:var(--pap-sans);-webkit-font-smoothing:antialiased;
  padding:calc(clamp(14px,2.2vh,22px) + env(safe-area-inset-top,0px)) max(clamp(18px,2.6vw,42px),env(safe-area-inset-right,0px)) clamp(14px,2.2vh,22px) max(clamp(18px,2.6vw,42px),env(safe-area-inset-left,0px));
  font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;transition:background .35s var(--pap-ease)}
.pap-hdr *,.pap-hdr *::before{box-sizing:border-box}
.pap-hdr a{color:inherit;text-decoration:none}
.pap-hdr :focus-visible,.pap-ov :focus-visible,.pap-ft :focus-visible{outline:3px solid var(--pap-lime);outline-offset:3px;border-radius:6px}
.pap-hdr-logo{display:flex;align-items:center;gap:11px;margin-right:auto;font-weight:800;font-size:19px;letter-spacing:-.03em;text-transform:none;white-space:nowrap}
.pap-hdr-logo svg{width:28px;height:28px;flex:none}
.pap-hdr-l{margin-left:clamp(16px,2.6vw,38px);opacity:.92;padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.pap-hdr-l:hover{opacity:1;color:var(--pap-lime)}
.pap-hdr-l[aria-current="page"]{color:var(--pap-lime);border-color:var(--pap-lime)}
.pap-hdr-ico{width:44px;height:44px;margin-left:clamp(14px,2.4vw,34px);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.2);border:0;cursor:pointer;flex:none;transition:background .25s}
.pap-hdr-ico:hover{background:rgba(255,255,255,.34)}
.pap-hdr-ico svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
@media (max-width:860px){.pap-hdr-l{display:none}.pap-hdr-logo{font-size:17px}}
/* home: floats over the hero, then turns solid once the hero is done */
.pap-hdr.is-over{position:fixed;left:0;right:0;background:transparent}
.pap-hdr.is-over::before{content:"";position:absolute;inset:0 0 -70px;z-index:-1;pointer-events:none;background:linear-gradient(rgba(28,18,32,.62),rgba(28,18,32,0));transition:opacity .35s}
.pap-hdr.is-over.is-solid{background:var(--pap-ink)}
.pap-hdr.is-over.is-solid::before{opacity:0}
.admin-bar .pap-hdr{top:32px}
@media (max-width:782px){.admin-bar .pap-hdr{top:46px}}

/* full-screen menu */
.pap-ov{position:fixed;inset:0;z-index:200;background:var(--pap-purple-deep);color:#fff;font-family:var(--pap-sans);
  padding:calc(96px + env(safe-area-inset-top,0px)) max(22px,env(safe-area-inset-right,0px)) 40px max(22px,env(safe-area-inset-left,0px));overflow:auto;visibility:hidden;opacity:0;transition:opacity .3s var(--pap-ease),visibility 0s .3s}
.pap-ov.is-open{visibility:visible;opacity:1;transition:opacity .3s var(--pap-ease)}
.pap-ov a{color:inherit;text-decoration:none}
.pap-ov-x{position:absolute;right:max(20px,2.6vw);top:calc(22px + env(safe-area-inset-top,0px));width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:24px;line-height:1}
.pap-ov ul{list-style:none;margin:0 auto;padding:0;display:grid;gap:2px;max-width:1000px}
.pap-ov li a{display:block;font-weight:800;letter-spacing:-.055em;font-size:clamp(42px,8vw,104px);line-height:1.02}
.pap-ov li a:hover,.pap-ov li a[aria-current="page"]{color:var(--pap-lime)}
.pap-ov-foot{max-width:1000px;margin:28px auto 0;display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center}
.pap-ov-cta{display:inline-flex;background:var(--pap-lime);color:var(--pap-ink)!important;font-weight:800;padding:16px 26px;border-radius:999px}
.pap-ov-mail{font-size:14px;opacity:.88}
.pap-ov-mail a:hover{color:var(--pap-lime)}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.pap-ft{font-family:var(--pap-sans);-webkit-font-smoothing:antialiased;color:#fff}
.pap-ft a{color:inherit;text-decoration:none}
.pap-ft-in{max-width:1200px;margin:0 auto;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
.pap-ft-cta{position:relative;overflow:hidden;background:var(--pap-purple);padding-block:clamp(64px,9vw,120px)}
.pap-ft-cta .pap-ft-in{position:relative}
.pap-ft-eye{font:500 11.5px/1.3 var(--pap-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pap-lime)}
.pap-ft-cta h2{margin:14px 0 0;font-weight:800;letter-spacing:-.055em;line-height:.96;font-size:clamp(54px,10vw,150px);text-wrap:balance;color:#fff}
.pap-ft-cta h2 em{font-style:italic;font-weight:300;color:var(--pap-lime)}
.pap-ft-act{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-top:36px}
.pap-ft-go{display:inline-flex;align-items:center;font-weight:800;font-size:15px;padding:16px 26px;border-radius:999px;background:var(--pap-lime);color:var(--pap-ink)!important;transition:background .2s}
.pap-ft-go:hover{background:#fff}
.pap-ft-contact{font-size:15px;opacity:.92}
.pap-ft-contact a:hover{color:var(--pap-lime)}
.pap-ft-plus{position:absolute;right:-.12em;bottom:-.3em;font-weight:800;font-size:clamp(260px,40vw,560px);line-height:1;color:var(--pap-lime);opacity:.16;pointer-events:none}

/* the OPEN sign hanging in the corner of the purple band: give it a push */
.pap-sign{position:absolute;z-index:2;top:0;right:clamp(18px,7vw,120px);display:block;
  touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;color:inherit;text-decoration:none}
.pap-sign:active{cursor:grabbing}
.pap-sign-rod{display:block;width:clamp(100px,13vw,168px);height:6px;border-radius:0 0 3px 3px;background:var(--pap-lime);margin:0 auto}
.pap-sign-sw{position:relative;display:block;padding-top:44px;transform-origin:50% 0}
.pap-sign-ch{position:absolute;top:0;left:50%;width:2px;height:48px;background:var(--pap-lime);opacity:.85;transform-origin:top}
.pap-sign-ch.a{transform:rotate(23deg)}
.pap-sign-ch.b{transform:rotate(-23deg)}
.pap-sign-card{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:clamp(118px,15vw,172px);
  padding:16px 22px 14px;border-radius:8px;background:var(--pap-lime);color:var(--pap-ink);
  font-weight:800;font-size:clamp(20px,2.4vw,30px);letter-spacing:.1em;line-height:1;transition:background .2s}
.pap-sign-card i{font-style:normal;font-size:.72em;color:var(--pap-purple);line-height:1}
.pap-sign-card small{font:500 9.5px/1.2 var(--pap-mono);letter-spacing:.11em;text-transform:uppercase;opacity:.72}
.pap-sign:hover .pap-sign-card,.pap-sign:focus-visible .pap-sign-card{background:#fff}
@media(max-width:820px){
  .pap-sign{position:static;margin:0 0 30px;width:max-content}
  .pap-sign-rod{margin:0 0 0 16px}
  .pap-sign-sw{transform-origin:calc(16px + clamp(50px,6.5vw,84px)) 0}
}
@media (prefers-reduced-motion:reduce){.pap-sign-sw{transform:none!important}}
.pap-ft-main{background:var(--pap-ink);padding-block:clamp(48px,6vw,80px)}
.pap-ft-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:36px 48px}
.pap-ft-logo{display:inline-flex;align-items:center;gap:11px;font-weight:800;font-size:20px;letter-spacing:-.03em}
.pap-ft-logo svg{width:26px;height:26px}
.pap-ft-tag{margin:14px 0 0;font-size:15px;line-height:1.55;color:rgba(255,255,255,.72);max-width:34ch}
.pap-ft-social{display:flex;gap:10px;margin-top:20px}
.pap-ft-social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);transition:background .2s,color .2s}
.pap-ft-social a:hover{background:var(--pap-lime);color:var(--pap-ink)}
.pap-ft-social svg{width:17px;height:17px}
.pap-ft-h{margin:0 0 14px;font:500 11.5px/1.3 var(--pap-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--pap-lime)}
.pap-ft-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:15px}
.pap-ft-list a{color:rgba(255,255,255,.86)}
.pap-ft-list a:hover{color:var(--pap-lime)}
.pap-ft-list .muted{color:rgba(255,255,255,.55)}
.pap-ft-bottom{background:var(--pap-ink);border-top:1px solid rgba(255,255,255,.12)}
.pap-ft-bottom .pap-ft-in{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;padding-block:22px;font-size:13px;color:rgba(255,255,255,.6)}
.pap-ft-bottom a:hover{color:var(--pap-lime)}
@media (max-width:900px){.pap-ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pap-ft-brand{grid-column:1/-1}}
@media (max-width:480px){.pap-ft-grid{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.pap-hdr,.pap-ov,.pap-ft-go{transition:none}}
