/* vanilla base reset (no framework) */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--gpvfp-font, system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif); line-height: 1.5; color: var(--gpvfp-ink, #111); background: var(--gpvfp-bg, #fff); }
h1, h2, h3, h4, h5, h6 { font-family: var(--gpvfp-font-display, var(--gpvfp-font, system-ui, sans-serif)); }
img, svg, video, canvas { max-width: 100%; height: auto; }
a { color: inherit; }
*:focus-visible { outline: 2px solid var(--gpvfp-primary, #2563eb); outline-offset: 2px; }
/* visibility shim for framework toggles */
.hidden { display: none !important; }

/* design tokens */
:root {
  --gpvfp-primary: #111111;
  --gpvfp-secondary: #3F3B35;
  --gpvfp-accent: #A85E22;
  --gpvfp-ink: #111111;
  --gpvfp-slate: #6B6B6B;
  --gpvfp-mist: #E5DFD4;
  --gpvfp-border: #D9D3C7;
  --gpvfp-surface: #F2F0EB;
  --gpvfp-bg: #F9F9F9;
  --gpvfp-text: #1A1A1A;
  --gpvfp-font: 'Iowan Old Style', Palatino, Georgia, 'Times New Roman', serif;
  --gpvfp-font-display: 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
}

/* state utilities */
.is-open { display: block !important; }
.is-active { display: block !important; }
[hidden] { display: none !important; }

/* framework-injected components (vanilla) */
[data-gpvfp-ui="cookie-banner"] { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9999; margin: 0 auto; max-width: 56rem; border: 1px solid var(--gpvfp-border, #e5e7eb); background: var(--gpvfp-surface, #fff); border-radius: 1rem; padding: 1rem; box-shadow: 0 10px 30px rgba(0,0,0,.15); }
[data-gpvfp-ui="cookie-banner"] > div { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-start; justify-content: space-between; }
[data-gpvfp-ui="cookie-banner"] > div > div:last-child { display: flex; flex-wrap: wrap; gap: .5rem; }
[data-gpvfp-ui="cookie-banner"] a { text-decoration: underline; }
[data-gpvfp-cs-action], [data-gpvfp-ag-action] { cursor: pointer; border-radius: .5rem; padding: .5rem .9rem; font-size: .8rem; border: 1px solid var(--gpvfp-border, #d1d5db); background: transparent; color: var(--gpvfp-ink, #111); }
[data-gpvfp-cs-action="accept-all"], [data-gpvfp-cs-action="save"], [data-gpvfp-ag-action="confirm"] { background: var(--gpvfp-primary, #2563eb); color: #fff; border-color: transparent; font-weight: 600; }
[data-gpvfp-cs-action="reject-all"] { background: var(--gpvfp-ink, #111); color: #fff; border-color: transparent; font-weight: 600; }
[data-gpvfp-cs-panel] { margin-top: 1rem; border: 1px solid var(--gpvfp-border, #e5e7eb); background: var(--gpvfp-surface, #fff); border-radius: .75rem; padding: 1rem; font-size: .875rem; }
[data-gpvfp-cs-panel] > div { display: flex; flex-wrap: wrap; gap: .75rem; }
[data-gpvfp-ui="cookie-banner"] label { display: inline-flex; align-items: center; gap: .5rem; }
[data-gpvfp-ui="age-gate-overlay"] { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.8); }
[data-gpvfp-ui="age-gate-overlay"] > div { width: 100%; max-width: 28rem; margin: 0 1rem; background: var(--gpvfp-surface, #1a1a2e); color: var(--gpvfp-ink, #fff); border-radius: 1rem; padding: 2rem; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.4); }
[data-gpvfp-ui="age-gate-overlay"] > div > div:last-of-type { display: flex; flex-direction: column; gap: .75rem; }
[data-gpvfp-ag-action] { padding: .75rem 1.5rem; }

/* sections */
/* gpvfp:header */
/* gpvfp:header */
#header{position:sticky;top:0;z-index:60;background:var(--gpvfp-bg);border-bottom:1px solid var(--gpvfp-border);font-family:'Iowan Old Style',Palatino,Georgia,serif}
#header .header-inner{max-width:72rem;margin:0 auto;padding:.85rem clamp(1rem,4vw,3rem);display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
#header .brand{display:flex;flex-direction:column;text-decoration:none;color:var(--gpvfp-ink);line-height:1.1}
#header .brand-mark{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}
#header .brand-sub{font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gpvfp-slate);margin-top:.3rem}
#header .primary-nav{display:flex;align-items:center;gap:clamp(1rem,3vw,2.25rem)}
#header .nav-list{display:flex;align-items:center;gap:clamp(.9rem,2.4vw,1.6rem);list-style:none;margin:0;padding:0}
#header .nav-list a{display:inline-block;padding:.35rem 0;color:var(--gpvfp-secondary);text-decoration:none;font-size:.9375rem;border-bottom:1px solid transparent}
#header .nav-list a:hover{color:var(--gpvfp-ink);border-bottom-color:var(--gpvfp-accent)}
#header .nav-actions{display:flex;align-items:center;gap:1.25rem}
#header .nav-phone{color:var(--gpvfp-secondary);text-decoration:none;font-size:.9375rem;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--gpvfp-border)}
#header .nav-phone:hover{color:var(--gpvfp-ink);border-bottom-color:var(--gpvfp-accent)}
#header .nav-cta{display:inline-block;padding:.72rem 1.15rem;background:var(--gpvfp-accent);color:var(--gpvfp-bg);text-decoration:none;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;transition:background .2s ease}
#header .nav-cta:hover{background:var(--gpvfp-ink)}
#header .menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;background:transparent;border:1px solid var(--gpvfp-border);cursor:pointer}
#header .menu-bar{display:block;height:2px;background:var(--gpvfp-ink)}
#header a:focus-visible,#header .menu-toggle:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
#header ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (max-width:900px){
#header .menu-toggle{display:flex}
#header .primary-nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:flex-start;gap:1rem;padding:1.25rem clamp(1rem,4vw,3rem) 1.75rem;background:var(--gpvfp-surface);border-bottom:1px solid var(--gpvfp-border)}
#header .primary-nav[hidden]{display:none}
#header .nav-list{flex-direction:column;align-items:flex-start;gap:.75rem;width:100%}
#header .nav-actions{flex-direction:column;align-items:flex-start;gap:.9rem;width:100%}
#header .nav-cta{width:100%;text-align:center}
}
/* gpvfp:footer */
/* gpvfp:footer */
#footer{background:var(--gpvfp-ink);color:var(--gpvfp-mist);padding:clamp(3rem,7vw,5rem) clamp(1rem,4vw,3rem) 2rem;line-height:1.6;}
#footer a{color:var(--gpvfp-mist);text-decoration:none;border-bottom:1px solid var(--gpvfp-secondary);padding-bottom:1px;}
#footer a:hover,#footer a:focus-visible{color:var(--gpvfp-accent);border-bottom-color:var(--gpvfp-accent);}
#footer :focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px;}
#footer ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg);}
.footer-inner{max-width:72rem;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:start;}
.footer-label{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-accent);margin:0 0 .5rem;}
.footer-title{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 1rem;color:var(--gpvfp-bg);text-wrap:balance;}
.footer-note{max-width:44ch;margin:0 0 1.5rem;font-size:.9375rem;}
.footer-address{font-style:normal;font-size:.9375rem;line-height:1.8;font-variant-numeric:tabular-nums;}
.footer-legal-name{color:var(--gpvfp-bg);font-weight:600;}
.footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;}
.footer-col-title{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gpvfp-bg);margin:0 0 .85rem;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;}
.footer-col a{display:inline-block;min-height:24px;}
.footer-notes{max-width:72rem;margin:clamp(2rem,5vw,3.25rem) auto 0;padding-top:1.5rem;border-top:1px solid var(--gpvfp-secondary);}
.footer-notes p{margin:0 0 .75rem;font-size:.8125rem;line-height:1.7;max-width:80ch;}
.footer-notes strong{color:var(--gpvfp-bg);}
.footer-base{max-width:72rem;margin:1.75rem auto 0;padding-top:1.1rem;border-top:1px solid var(--gpvfp-secondary);display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;font-size:.8125rem;font-variant-numeric:tabular-nums;}
.footer-base p{margin:0;}
@media (max-width:768px){.footer-inner{grid-template-columns:1fr;}.footer-nav{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.footer-nav{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){#footer *{transition:none!important;}}
/* gpvfp:hero */
/* gpvfp:hero */
#hero{position:relative;isolation:isolate;display:grid;min-height:min(92vh,880px);overflow:hidden;background:var(--gpvfp-ink);color:var(--gpvfp-bg)}
#hero .hero-media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06)}
#hero .hero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(95deg,color-mix(in srgb,var(--gpvfp-ink) 84%,transparent) 0%,color-mix(in srgb,var(--gpvfp-ink) 48%,transparent) 52%,color-mix(in srgb,var(--gpvfp-ink) 14%,transparent) 100%)}
#hero .hero-inner{width:100%;max-width:72rem;margin:0 auto;padding:clamp(4rem,10vw,8rem) clamp(1rem,4vw,3rem) clamp(2.25rem,5vw,3.5rem);display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(1.25rem,3vw,2rem)}
#hero .hero-label{margin:0;font-size:.8125rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-mist)}
#hero .hero-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.25rem,4vw,3rem);align-items:end;padding-top:clamp(1.25rem,3vw,2rem);border-top:1px solid color-mix(in srgb,var(--gpvfp-bg) 38%,transparent)}
#hero .hero-title{margin:0;max-width:22ch;font-family:'Iowan Old Style',Palatino,Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(2rem,4.6vw,3.75rem);line-height:1.06;letter-spacing:-.02em;text-wrap:balance}
#hero .hero-aside{display:flex;flex-direction:column;gap:.75rem;padding-left:clamp(1rem,2.5vw,1.75rem);border-left:1px solid color-mix(in srgb,var(--gpvfp-bg) 38%,transparent)}
#hero .hero-lede{margin:0;font-size:1.0625rem;line-height:1.6;color:var(--gpvfp-mist)}
#hero .hero-note{margin:0;font-size:.8125rem;line-height:1.5;color:var(--gpvfp-bg)}
#hero .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1rem,3vw,2.25rem)}
#hero .hero-cta,#hero .hero-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
#hero .hero-cta{gap:.6rem;padding:.5rem 0;color:var(--gpvfp-bg);font-size:1.0625rem;letter-spacing:.01em;border-bottom:2px solid var(--gpvfp-accent)}
#hero .hero-arrow{color:var(--gpvfp-accent);transition:transform .2s ease}
#hero .hero-cta:hover{border-bottom-color:var(--gpvfp-bg)}
#hero .hero-cta:hover .hero-arrow{transform:translateX(4px)}
#hero .hero-link{padding:.5rem 0;color:var(--gpvfp-mist);font-size:.9375rem;text-decoration:underline;text-underline-offset:4px}
#hero .hero-link:hover{color:var(--gpvfp-bg)}
#hero a:focus-visible{outline:2px solid var(--gpvfp-mist);outline-offset:4px}
#hero ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (max-width:768px){
#hero .hero-split{grid-template-columns:1fr;align-items:start}
#hero .hero-aside{padding-left:0;padding-top:1rem;border-left:0;border-top:1px solid color-mix(in srgb,var(--gpvfp-bg) 38%,transparent)}
}
@media (prefers-reduced-motion:reduce){
#hero .hero-arrow{transition:none}
#hero .hero-cta:hover .hero-arrow{transform:none}
}
/* gpvfp:services-overview */
/* gpvfp:services-overview */
.services-overview{background:var(--gpvfp-bg);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) 0;}
.services-overview__inner{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);}
.services-overview__label{font-family:'Iowan Old Style',Palatino,Georgia,serif;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--gpvfp-slate);border-top:1px solid var(--gpvfp-border);padding-top:.85rem;margin:0 0 clamp(1.5rem,4vw,3rem);}
.services-overview__head{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.25rem,3vw,2rem);margin-bottom:clamp(2rem,5vw,3.5rem);}
.services-overview__title{font-family:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif;font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0;max-width:26ch;}
.services-overview__intro{margin:0;color:var(--gpvfp-secondary);font-size:.95rem;line-height:1.7;border-left:1px solid var(--gpvfp-border);padding-left:1.25rem;max-width:58ch;}
.services-overview__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--gpvfp-border);}
.service-row{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:0 1rem;align-items:start;padding:clamp(1.25rem,3vw,2rem) 0;border-bottom:1px solid var(--gpvfp-border);}
.service-row__num{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;letter-spacing:.08em;color:var(--gpvfp-accent);padding-top:.4rem;font-variant-numeric:tabular-nums;}
.service-row__title{font-family:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif;font-size:clamp(1.1rem,1.8vw,1.4rem);letter-spacing:-.01em;line-height:1.25;margin:0 0 .5rem;text-wrap:balance;}
.service-row__body p{margin:0;color:var(--gpvfp-secondary);font-size:.95rem;line-height:1.7;max-width:56ch;}
.service-row__link{grid-column:2;justify-self:start;margin-top:.85rem;color:var(--gpvfp-ink);text-decoration:none;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--gpvfp-accent);padding-bottom:3px;min-height:44px;display:inline-flex;align-items:center;}
.service-row__link:hover{color:var(--gpvfp-accent);border-bottom-color:var(--gpvfp-ink);}
.services-overview__note{margin:clamp(2rem,5vw,3rem) 0 0;font-size:.85rem;line-height:1.75;color:var(--gpvfp-slate);max-width:68ch;border-left:2px solid var(--gpvfp-accent);padding-left:1.25rem;}
.services-overview__cta{margin:clamp(1.5rem,3vw,2.25rem) 0 0;}
.services-overview__cta a{display:inline-block;background:var(--gpvfp-ink);color:var(--gpvfp-bg);border:1px solid var(--gpvfp-ink);text-decoration:none;padding:.85rem 1.6rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;min-height:44px;line-height:1.4;}
.services-overview__cta a:hover{background:var(--gpvfp-accent);border-color:var(--gpvfp-accent);color:var(--gpvfp-bg);}
.services-overview a:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px;}
.services-overview ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg);}
@media (min-width:768px){
.services-overview__head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,4vw,3rem);align-items:end;}
.service-row{grid-template-columns:3.5rem minmax(0,1fr) auto;padding:clamp(1.5rem,3vw,2.25rem) 0;}
.service-row__link{grid-column:auto;margin-top:.3rem;}
}
@media (prefers-reduced-motion:reduce){
.services-overview *{transition:none!important;animation:none!important;}
}
/* gpvfp:portfolio */
/* gpvfp:portfolio */
.portfolio{background:var(--gpvfp-surface);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) 0}
.portfolio-inner{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem)}
.section-label{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--gpvfp-slate);border-top:1px solid var(--gpvfp-border);padding-top:.9rem;margin:0 0 clamp(1.5rem,4vw,3rem)}
.portfolio-title{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;margin:0 0 1rem;max-width:34ch;text-wrap:balance}
.portfolio-lede{color:var(--gpvfp-slate);line-height:1.6;max-width:60ch;margin:0 0 clamp(1.5rem,4vw,3rem)}
.portfolio-controls{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;padding-bottom:clamp(1.5rem,4vw,3rem);border-bottom:1px solid var(--gpvfp-border);margin-bottom:clamp(1.5rem,4vw,3rem)}
.filter-group{display:flex;flex-wrap:wrap;gap:.5rem}
.filter-btn{min-height:44px;padding:.6rem 1rem;border:1px solid var(--gpvfp-border);background:var(--gpvfp-bg);color:var(--gpvfp-ink);font:inherit;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:background .22s ease,color .22s ease,border-color .22s ease}
.filter-btn:hover{border-color:var(--gpvfp-ink)}
.filter-btn[aria-pressed="true"]{background:var(--gpvfp-ink);color:var(--gpvfp-bg);border-color:var(--gpvfp-ink)}
.portfolio-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,3rem)}
.portfolio-feature{margin:0}
.portfolio-feature img{display:block;width:100%;height:auto;filter:grayscale(1);transition:filter .25s ease}
.portfolio-feature:hover img{filter:grayscale(0)}
.portfolio-feature figcaption{margin-top:.75rem;font-size:.8rem;line-height:1.5;color:var(--gpvfp-slate);font-variant-numeric:tabular-nums}
.meta-artist{color:var(--gpvfp-ink)}
.work-list{list-style:none;margin:0;padding:0}
.work-row{padding:1rem 0;border-bottom:1px solid var(--gpvfp-border)}
.work-row[hidden]{display:none}
.work-title{font-size:1.05rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .25rem}
.work-meta{margin:0;font-size:.82rem;color:var(--gpvfp-slate);font-variant-numeric:tabular-nums}
.work-empty{margin:1.5rem 0 0;font-size:.9rem;color:var(--gpvfp-secondary)}
.portfolio-note{margin:clamp(1.5rem,4vw,3rem) 0 0;max-width:62ch;font-size:.85rem;color:var(--gpvfp-secondary)}
.filter-btn:focus-visible,.portfolio a:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:2px}
.portfolio ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (max-width:768px){.portfolio-body{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.filter-btn,.portfolio-feature img{transition:none}}
/* gpvfp:process */
/* gpvfp:process */
.process {
  background: var(--gpvfp-bg);
  color: var(--gpvfp-text);
  padding: clamp(3rem, 8vw, 7rem) 0;
}
.process-inner {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 3rem);
}
.process-label {
  margin: 0 0 clamp(1.5rem, 4vw, 3rem);
  padding-top: 1rem;
  border-top: 1px solid var(--gpvfp-border);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gpvfp-slate);
}
.process-title {
  margin: 0 0 1rem;
  max-width: 24ch;
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--gpvfp-ink);
  text-wrap: balance;
}
.process-lead {
  margin: 0 0 clamp(2rem, 5vw, 3.5rem);
  max-width: 58ch;
  line-height: 1.65;
  color: var(--gpvfp-secondary);
}
.process-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--gpvfp-border);
}
.process-step {
  padding: 1.75rem 1.5rem 0 0;
  border-right: 1px solid var(--gpvfp-border);
}
.process-step:last-child {
  border-right: 0;
  padding-right: 0;
}
.process-num {
  display: block;
  margin-bottom: 0.85rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  font-variant-numeric: tabular-nums;
  color: var(--gpvfp-accent);
}
.process-step h3 {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--gpvfp-ink);
}
.process-step p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--gpvfp-slate);
}
.process-note {
  margin: clamp(2rem, 4vw, 3rem) 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gpvfp-border);
  max-width: 62ch;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--gpvfp-secondary);
}
.process a:focus-visible,
.process :focus-visible {
  outline: 2px solid var(--gpvfp-accent);
  outline-offset: 3px;
}
.process ::selection {
  background: var(--gpvfp-accent);
  color: var(--gpvfp-bg);
}
@media (max-width: 768px) {
  .process-steps {
    grid-template-columns: 1fr;
    border-top: 0;
    border-left: 1px solid var(--gpvfp-border);
    padding-left: 1.25rem;
  }
  .process-step {
    padding: 0 0 1.75rem;
    border-right: 0;
  }
  .process-step:last-child {
    padding-bottom: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .process * {
    transition: none;
    animation: none;
  }
}
/* gpvfp:artists */
/* gpvfp:artists */
#artists{background:var(--gpvfp-surface);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) 0}
#artists .artists-inner{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem)}
#artists .section-label{margin:0 0 clamp(1.5rem,4vw,3rem);padding-top:.9rem;border-top:1px solid var(--gpvfp-border);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-slate)}
#artists .artists-head{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,3vw,2rem);align-items:end;margin-bottom:clamp(2rem,5vw,3.5rem)}
#artists h2{grid-column:1/8;margin:0;font-size:clamp(1.75rem,4vw,3.25rem);line-height:1.05;letter-spacing:-.02em;font-weight:400;text-wrap:balance}
#artists .artists-intro{grid-column:9/13;margin:0;color:var(--gpvfp-secondary);line-height:1.6}
#artists .artists-split{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:start}
#artists .artists-figure{grid-column:1/6;margin:0}
#artists .artists-figure img{display:block;width:100%;height:auto;filter:grayscale(1) contrast(1.05);transition:filter .25s}
#artists .artists-figure:hover img{filter:grayscale(0)}
#artists .artists-figure figcaption{margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--gpvfp-border);font-size:.8125rem;color:var(--gpvfp-slate)}
#artists .artists-body{grid-column:7/13}
#artists h3{font-size:1.125rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .3rem}
#artists .artists-role{margin:0 0 .75rem;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gpvfp-accent)}
#artists .artists-body p,#artists .artist-row p{margin:0 0 .85rem;color:var(--gpvfp-secondary);line-height:1.65}
#artists .artists-link{display:inline-block;margin-top:.5rem;padding-bottom:2px;border-bottom:1px solid var(--gpvfp-accent);color:var(--gpvfp-accent);text-decoration:none}
#artists .artists-link:hover{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
#artists .artists-roster{list-style:none;margin:clamp(2.5rem,6vw,4rem) 0 0;padding:0;border-top:1px solid var(--gpvfp-border)}
#artists .artist-row{padding:1.35rem 0;border-bottom:1px solid var(--gpvfp-border)}
#artists :focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
#artists ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media(min-width:768px){#artists .artist-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) minmax(0,4fr);gap:clamp(1rem,3vw,2rem);align-items:baseline}#artists .artist-row h3,#artists .artist-row .artists-role,#artists .artist-row p{margin:0}}
@media(max-width:767px){#artists h2,#artists .artists-intro,#artists .artists-figure,#artists .artists-body{grid-column:1/13}}
@media(prefers-reduced-motion:reduce){#artists .artists-figure img{transition:none}}
/* gpvfp:testimonials */
/* gpvfp:testimonials */
.testimonials{padding:clamp(3rem,8vw,7rem) 0;background:var(--gpvfp-surface);color:var(--gpvfp-text)}
.testimonials-inner{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem)}
.section-label{margin:0 0 clamp(1.5rem,4vw,3rem);padding-top:.9rem;border-top:1px solid var(--gpvfp-border);font-family:var(--gpvfp-sans,inherit);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gpvfp-slate)}
.testimonials-title{max-width:34ch;margin:0 0 1rem;font-family:var(--gpvfp-serif,Georgia,serif);font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;color:var(--gpvfp-ink)}
.testimonials-lead{max-width:56ch;margin:0 0 clamp(2rem,5vw,3.5rem);font-size:1rem;line-height:1.7;color:var(--gpvfp-secondary)}
.quote{margin:0;padding:0}
.quote blockquote{margin:0}
.quote p{margin:0;font-family:var(--gpvfp-serif,Georgia,serif);font-size:1.05rem;line-height:1.6;color:var(--gpvfp-ink)}
.quote-feature{border-left:3px solid var(--gpvfp-accent);padding-left:clamp(1rem,3vw,2rem);max-width:38rem}
.quote-feature p{font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1.25;letter-spacing:-.02em}
.quote figcaption{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:baseline;margin-top:1.1rem}
.quote-initials{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gpvfp-ink);border-bottom:1px solid var(--gpvfp-accent)}
.quote-meta{font-size:.8rem;color:var(--gpvfp-slate)}
.quote-rail{display:grid;grid-template-columns:1fr;gap:clamp(1.75rem,4vw,2.75rem);margin-top:clamp(2.5rem,6vw,4rem);border-top:1px solid var(--gpvfp-border);padding-top:clamp(1.75rem,4vw,2.75rem)}
.testimonials-note{max-width:60ch;margin:clamp(2.5rem,6vw,4rem) 0 0;font-size:.875rem;line-height:1.7;color:var(--gpvfp-slate)}
.testimonials-note a{color:var(--gpvfp-accent);text-decoration:underline;text-underline-offset:3px}
.testimonials-note a:focus-visible,.testimonials a:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:2px}
::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (min-width:768px){.quote-rail{grid-template-columns:repeat(3,1fr)}.quote-rail .quote{position:relative;padding-left:1.25rem;border-left:1px solid var(--gpvfp-border)}}
@media (prefers-reduced-motion:reduce){.testimonials *{transition:none;animation:none}}
/* gpvfp:contact */
/* gpvfp:contact */
#contact{background:var(--gpvfp-surface);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) 0;font-family:'Iowan Old Style',Palatino,Georgia,serif}
#contact .wrap{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem)}
#contact .label{margin:0 0 1rem;padding-top:1rem;border-top:1px solid var(--gpvfp-border);font-family:system-ui,-apple-system,sans-serif;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-slate)}
#contact h2{margin:0 0 1rem;font-size:clamp(1.75rem,3.5vw,2.75rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;color:var(--gpvfp-ink)}
#contact .intro{margin:0 0 clamp(2rem,5vw,3.25rem);max-width:36rem;line-height:1.65;color:var(--gpvfp-secondary)}
#contact .grid{display:grid;gap:clamp(2rem,5vw,4rem)}
#contact .field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}
#contact label,#contact .consent,#contact .submit,#contact .label{font-family:system-ui,-apple-system,sans-serif}
#contact label{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gpvfp-secondary)}
#contact input,#contact select,#contact textarea{width:100%;min-height:44px;padding:.75rem .875rem;font:inherit;font-size:1rem;color:var(--gpvfp-text);background:var(--gpvfp-bg);border:1px solid var(--gpvfp-border);border-radius:0}
#contact textarea{min-height:7rem;resize:vertical}
#contact input:focus-visible,#contact select:focus-visible,#contact textarea:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:2px;border-color:var(--gpvfp-accent)}
#contact .consent{display:flex;gap:.625rem;margin:0 0 1.5rem;font-size:.8125rem;line-height:1.5;color:var(--gpvfp-slate);text-transform:none;letter-spacing:0}
#contact .consent input{width:1.05rem;height:1.05rem;min-height:0;flex:0 0 auto;margin:.15rem 0 0}
#contact .submit{display:inline-flex;align-items:center;min-height:48px;padding:.875rem 1.75rem;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gpvfp-bg);background:var(--gpvfp-ink);border:1px solid var(--gpvfp-ink);border-radius:0;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}
#contact .submit:hover{background:var(--gpvfp-accent);border-color:var(--gpvfp-accent);color:var(--gpvfp-bg)}
#contact .submit:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
#contact .aside{border-top:1px solid var(--gpvfp-border);padding-top:1.5rem;font-size:.9375rem;line-height:1.8;color:var(--gpvfp-secondary)}
#contact .aside h3{margin:0 0 .75rem;font-size:1rem;color:var(--gpvfp-ink)}
#contact .aside p{margin:0 0 .75rem}
#contact .aside a{color:var(--gpvfp-accent);text-decoration:underline;text-underline-offset:3px}
#contact .aside a:hover{color:var(--gpvfp-ink)}
#contact .note{font-size:.8125rem;color:var(--gpvfp-slate)}
#contact ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (min-width:768px){#contact .grid{grid-template-columns:7fr 4fr}}
@media (prefers-reduced-motion:reduce){#contact .submit{transition:none}}
/* gpvfp:studio-story */
/* gpvfp:studio-story */
#studio-story{background:var(--gpvfp-bg);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);font-family:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif}
.studio-story__inner{max-width:72rem;margin:0 auto}
.studio-story__rule{border:0;border-top:1px solid var(--gpvfp-border);margin:0 0 .85rem}
.studio-story__label{display:block;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gpvfp-slate)}
.studio-story__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(1.75rem,4vw,4rem);margin-top:clamp(1.5rem,3vw,2.5rem);align-items:start}
.studio-story__text h2{margin:0 0 1.25rem;font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.02em;font-weight:500;text-wrap:balance}
.studio-story__text p{margin:0 0 1rem;line-height:1.7;max-width:34rem}
.studio-story__lede{font-size:1.125rem;color:var(--gpvfp-secondary);border-left:2px solid var(--gpvfp-accent);padding-left:1.15rem}
.studio-story__facts{list-style:none;margin:1.4rem 0;padding:0;border-top:1px solid var(--gpvfp-border)}
.studio-story__facts li{padding:.6rem 0;border-bottom:1px solid var(--gpvfp-border);font-size:.95rem;color:var(--gpvfp-secondary)}
.studio-story__link{display:inline-block;margin-top:.4rem;color:var(--gpvfp-accent);text-decoration:none;border-bottom:1px solid var(--gpvfp-accent);padding-bottom:2px}
.studio-story__link:hover{color:var(--gpvfp-ink);border-bottom-color:var(--gpvfp-ink)}
.studio-story__link:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
.studio-story__figure{margin:0}
.studio-story__figure img{display:block;width:100%;height:auto;filter:grayscale(1);transition:filter .25s ease}
.studio-story__figure img:hover{filter:grayscale(0)}
.studio-story__figure figcaption{margin-top:.75rem;font-size:.8rem;color:var(--gpvfp-slate)}
.studio-story__timeline{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(2.5rem,5vw,4rem) 0 0;padding:1.25rem 0 0;border-top:1px solid var(--gpvfp-border)}
.studio-story__timeline li{padding-right:1.5rem;font-size:.95rem;line-height:1.6;color:var(--gpvfp-secondary)}
.studio-story__timeline span{display:block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;letter-spacing:.12em;color:var(--gpvfp-accent);margin-bottom:.35rem;font-variant-numeric:tabular-nums}
::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (max-width:768px){.studio-story__grid,.studio-story__timeline{grid-template-columns:1fr}.studio-story__timeline li{padding:0 0 1rem}}
@media (prefers-reduced-motion:reduce){.studio-story__figure img{transition:none}}
/* gpvfp:artists */
/* gpvfp:artists */
#artists{--sans:ui-sans-serif,system-ui,Arial,sans-serif;max-width:72rem;margin:0 auto;padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);font-family:'Iowan Old Style',Palatino,Georgia,serif;color:var(--gpvfp-text);background:var(--gpvfp-bg)}
#artists .label{font:600 .75rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gpvfp-accent);border-top:1px solid var(--gpvfp-border);padding-top:1rem;margin:0 0 clamp(1.5rem,4vw,2.5rem)}
#artists .head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,4vw,3rem);align-items:end;margin-bottom:clamp(2rem,5vw,3.5rem)}
#artists h2{font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.1;letter-spacing:-.02em;margin:0;text-wrap:balance}
#artists .lede{margin:0;color:var(--gpvfp-secondary);line-height:1.6}
#artists .roster{list-style:none;margin:0;padding:0;border-top:1px solid var(--gpvfp-border)}
#artists .profile{display:grid;grid-template-columns:4rem minmax(0,.9fr) minmax(0,1.5fr);gap:clamp(1rem,3vw,2.5rem);padding:clamp(1.5rem,4vw,2.5rem) 0;border-bottom:1px solid var(--gpvfp-border)}
#artists .idx{font:400 .8125rem/1 var(--sans);color:var(--gpvfp-slate);font-variant-numeric:tabular-nums}
#artists h3{font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.15;letter-spacing:-.02em;margin:0 0 .5rem}
#artists .role{font:600 .75rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gpvfp-accent);margin:0 0 .75rem}
#artists .meta{font-size:.875rem;color:var(--gpvfp-slate);margin:0}
#artists .body p{margin:0 0 1rem;line-height:1.65}
#artists .tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0;font:400 .8125rem/1.4 var(--sans);color:var(--gpvfp-secondary)}
#artists .tags li{border:1px solid var(--gpvfp-border);background:var(--gpvfp-surface);padding:.35rem .6rem}
#artists .foot{margin-top:clamp(2rem,5vw,3rem);color:var(--gpvfp-secondary);line-height:1.6}
#artists .foot a{display:inline-block;margin:0 1.25rem .5rem 0;color:var(--gpvfp-ink);text-decoration:none;border-bottom:1px solid var(--gpvfp-accent);padding-bottom:2px}
#artists .foot a:hover,#artists .foot a:focus-visible{color:var(--gpvfp-accent)}
#artists :focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
#artists ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media(max-width:768px){#artists .head{grid-template-columns:1fr;align-items:start}#artists .profile{grid-template-columns:3rem minmax(0,1fr);gap:.75rem}#artists .body{grid-column:1/-1}#artists .idx{color:var(--gpvfp-accent)}}
/* gpvfp:hygiene */
/* gpvfp:hygiene */
#hygiene{background:var(--gpvfp-surface);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);}
#hygiene *{box-sizing:border-box;}
#hygiene .hygiene-inner{max-width:72rem;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,5vw,4rem);}
#hygiene .hygiene-head{border-top:1px solid var(--gpvfp-border);padding-top:1.25rem;}
#hygiene .hygiene-label{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-secondary);}
#hygiene .hygiene-title{margin:.75rem 0 1rem;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:400;line-height:1.1;letter-spacing:-.02em;text-wrap:balance;color:var(--gpvfp-ink);}
#hygiene .hygiene-lede{margin:0 0 1.5rem;max-width:42ch;font-size:1rem;line-height:1.7;color:var(--gpvfp-slate);}
#hygiene .hygiene-link{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;font-size:.875rem;letter-spacing:.04em;color:var(--gpvfp-accent);text-decoration:none;border-bottom:1px solid var(--gpvfp-accent);}
#hygiene .hygiene-link:hover,#hygiene .hygiene-link:active{color:var(--gpvfp-ink);border-bottom-color:var(--gpvfp-ink);}
#hygiene .hygiene-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem 2.5rem;}
#hygiene .hygiene-item{border-top:1px solid var(--gpvfp-border);padding-top:1rem;}
#hygiene .hygiene-num{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;letter-spacing:.14em;color:var(--gpvfp-accent);font-variant-numeric:tabular-nums;}
#hygiene .hygiene-item h3{margin:.5rem 0 .4rem;font-family:Georgia,'Times New Roman',serif;font-size:1.0625rem;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--gpvfp-ink);}
#hygiene .hygiene-item p{margin:0;font-size:.9375rem;line-height:1.65;color:var(--gpvfp-secondary);}
#hygiene .hygiene-note{grid-column:1/-1;margin:0;border-top:1px solid var(--gpvfp-border);padding-top:1.25rem;font-size:.875rem;line-height:1.7;color:var(--gpvfp-slate);max-width:60ch;}
#hygiene a:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px;}
#hygiene ::selection{background:var(--gpvfp-mist);color:var(--gpvfp-ink);}
@media (min-width:768px){#hygiene .hygiene-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1024px){#hygiene .hygiene-inner{grid-template-columns:5fr 7fr;align-items:start;}}
@media (prefers-reduced-motion:reduce){#hygiene *{transition:none!important;animation:none!important;}}
/* gpvfp:location */
/* gpvfp:location */
#location{background:var(--gpvfp-bg);color:var(--gpvfp-text);font-family:'Iowan Old Style',Palatino,Georgia,serif;padding:clamp(3rem,8vw,6rem) clamp(1rem,4vw,3rem)}
#location .location-inner{max-width:72rem;margin:0 auto}
#location .section-label{margin:0;padding-top:1rem;border-top:1px solid var(--gpvfp-border);font-family:Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gpvfp-slate)}
#location h2{margin:1.25rem 0 0;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.1;letter-spacing:-.02em;max-width:24ch;font-weight:600;text-wrap:balance}
#location h3{margin:0 0 1rem;font-size:1.05rem}
#location .location-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,5vw,4rem);margin-top:clamp(1.5rem,4vw,3rem)}
#location .location-intro{margin:0 0 2rem;max-width:46ch;line-height:1.65;color:var(--gpvfp-secondary)}
#location .location-details{margin:0;border-top:1px solid var(--gpvfp-border)}
#location .detail-row{display:grid;grid-template-columns:9rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--gpvfp-border)}
#location dt{font-family:Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gpvfp-slate)}
#location dd{margin:0;line-height:1.55}
#location a{color:var(--gpvfp-ink);text-decoration:none;border-bottom:1px solid var(--gpvfp-accent)}
#location a:hover{color:var(--gpvfp-accent)}
#location .location-cta{display:inline-flex;gap:.5rem;align-items:center;margin-top:1.75rem;min-height:44px;font-weight:600;border-bottom:2px solid var(--gpvfp-accent)}
#location .location-aside{background:var(--gpvfp-surface);border:1px solid var(--gpvfp-border);padding:clamp(1.25rem,3vw,2rem)}
#location .location-list{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}
#location .location-list li{position:relative;padding-left:1.1rem;line-height:1.55;color:var(--gpvfp-secondary);font-size:.95rem}
#location .location-list li::before{content:"";position:absolute;left:0;top:.6em;width:.45rem;height:1px;background:var(--gpvfp-accent)}
#location .location-note{margin:1.5rem 0 0;padding-top:1rem;border-top:1px solid var(--gpvfp-border);font-size:.85rem;line-height:1.6;color:var(--gpvfp-slate)}
#location :focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:2px}
@media(max-width:768px){#location .location-grid{grid-template-columns:1fr}#location .detail-row{grid-template-columns:1fr;gap:.25rem}}
@media(prefers-reduced-motion:reduce){#location *{transition:none!important}}
/* gpvfp:services-detail */
/* gpvfp:services-detail */
#services-detail{background:var(--gpvfp-bg);color:var(--gpvfp-text);font-family:'Iowan Old Style',Palatino,Georgia,serif}
#services-detail .services-inner{max-width:72rem;margin:0 auto;padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem)}
.services-label{margin:0 0 2rem;padding-top:1rem;border-top:1px solid var(--gpvfp-border);font-family:system-ui,sans-serif;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-slate)}
.services-title{max-width:34ch;margin:0 0 1.25rem;font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;color:var(--gpvfp-ink)}
.services-intro{max-width:60ch;margin:0 0 clamp(2rem,5vw,3.5rem);font-size:1.0625rem;line-height:1.65;color:var(--gpvfp-secondary)}
.services-list{list-style:none;margin:0;padding:0}
.service-row{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:clamp(1rem,3vw,2rem);padding:clamp(1.5rem,3vw,2.25rem) 0;border-top:1px solid var(--gpvfp-border)}
.service-row:last-child{border-bottom:1px solid var(--gpvfp-border)}
.service-num{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--gpvfp-accent);padding-top:.3rem}
.service-body h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;letter-spacing:-.01em;color:var(--gpvfp-ink)}
.service-body p{margin:0;max-width:62ch;line-height:1.6;color:var(--gpvfp-secondary)}
.service-meta{margin-top:.6rem;font-family:system-ui,sans-serif;font-size:.8125rem;color:var(--gpvfp-slate);font-variant-numeric:tabular-nums}
.services-note{margin:clamp(2rem,5vw,3rem) 0 0;padding-left:1.15rem;border-left:2px solid var(--gpvfp-accent);max-width:70ch;font-size:.9375rem;line-height:1.6;color:var(--gpvfp-secondary)}
.services-links{margin:1.5rem 0 0;font-size:.9375rem;color:var(--gpvfp-slate)}
.services-links a{color:var(--gpvfp-ink);text-decoration:underline;text-decoration-color:var(--gpvfp-accent);text-underline-offset:3px}
.services-links a:hover{color:var(--gpvfp-accent)}
#services-detail a:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
#services-detail ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (max-width:640px){.service-row{grid-template-columns:1fr;gap:.4rem}.service-num{padding-top:0}}
@media (prefers-reduced-motion:reduce){#services-detail *{transition:none!important;animation:none!important}}
/* gpvfp:pricing */
/* gpvfp:pricing */
.pricing{background:var(--gpvfp-surface);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) 0;}
.pricing__inner{max-width:72rem;margin:0 auto;padding-inline:clamp(1rem,4vw,3rem);}
.pricing__label{margin:0 0 clamp(1.25rem,3vw,2.25rem);padding-top:.75rem;border-top:1px solid var(--gpvfp-border);font-size:.8125rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-slate);}
.pricing__title{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0 0 1rem;max-width:22ch;color:var(--gpvfp-ink);}
.pricing__lead{max-width:56ch;margin:0 0 clamp(2rem,5vw,3.5rem);color:var(--gpvfp-secondary);line-height:1.6;}
.pricing__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);}
.pricing__group-title{margin:0 0 1rem;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gpvfp-accent);font-weight:600;}
.price-list{list-style:none;margin:0;padding:0;}
.price-list li{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;padding:.85rem 0;border-bottom:1px solid var(--gpvfp-border);}
.price-list__name{grid-column:1;grid-row:1;font-size:1rem;line-height:1.4;color:var(--gpvfp-ink);}
.price-list__value{grid-column:2;grid-row:1;font-variant-numeric:tabular-nums;font-weight:600;color:var(--gpvfp-ink);white-space:nowrap;}
.price-list__meta{grid-column:1;grid-row:2;font-size:.8125rem;color:var(--gpvfp-slate);}
.pricing__notes{margin-top:clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,3vw,2.5rem);}
.pricing__note{margin:0;font-size:.9375rem;line-height:1.65;color:var(--gpvfp-secondary);}
.pricing__links{margin:0;font-size:.9375rem;line-height:1.65;color:var(--gpvfp-secondary);grid-column:1 / -1;}
.pricing__links a{color:var(--gpvfp-accent);text-decoration:underline;text-underline-offset:3px;}
.pricing__links a:hover{color:var(--gpvfp-ink);}
.pricing__links a:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px;}
.pricing ::selection{background:var(--gpvfp-mist);color:var(--gpvfp-ink);}
@media (max-width:768px){.pricing__grid,.pricing__notes{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){.pricing *{transition:none !important;animation:none !important;}}
/* gpvfp:aftercare */
/* gpvfp:aftercare */
#aftercare{background:var(--gpvfp-bg);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem);}
#aftercare .aftercare-shell{max-width:72rem;margin-inline:auto;}
#aftercare .aftercare-label{margin:0 0 clamp(1.5rem,4vw,3rem);padding-top:.75rem;border-top:1px solid var(--gpvfp-border);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-accent);}
#aftercare .aftercare-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,4vw,3rem);align-items:end;margin-bottom:clamp(2rem,5vw,3.5rem);}
#aftercare .aftercare-title{margin:0;font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;}
#aftercare .aftercare-lede{margin:0;color:var(--gpvfp-slate);line-height:1.6;}
#aftercare .aftercare-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);border-top:1px solid var(--gpvfp-border);padding-top:clamp(1.5rem,4vw,2.5rem);}
#aftercare .aftercare-track h3{margin:0 0 1rem;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;}
#aftercare .aftercare-steps{list-style:none;margin:0;padding:0;display:grid;gap:1rem;}
#aftercare .aftercare-steps li{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:1rem;font-size:.9375rem;line-height:1.55;color:var(--gpvfp-slate);}
#aftercare .step-day{color:var(--gpvfp-ink);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;}
#aftercare .aftercare-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);margin-top:clamp(2rem,5vw,3.5rem);}
#aftercare .aftercare-card{background:var(--gpvfp-surface);border:1px solid var(--gpvfp-border);padding:clamp(1.25rem,3vw,2rem);}
#aftercare .aftercare-card h3{margin:0 0 .75rem;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;}
#aftercare .aftercare-card ul{margin:0;padding-left:1.1rem;display:grid;gap:.6rem;font-size:.9375rem;line-height:1.55;color:var(--gpvfp-slate);}
#aftercare .aftercare-contact{margin:1.1rem 0 0;font-size:.9375rem;line-height:1.55;}
#aftercare .aftercare-footnote{margin:clamp(2rem,5vw,3rem) 0 0;padding-top:1rem;border-top:1px solid var(--gpvfp-border);font-size:.8125rem;line-height:1.6;color:var(--gpvfp-slate);}
#aftercare a{color:var(--gpvfp-accent);text-decoration:underline;text-underline-offset:3px;}
#aftercare a:hover{color:var(--gpvfp-ink);}
#aftercare :focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px;}
#aftercare ::selection{background:var(--gpvfp-mist);}
@media (max-width:768px){#aftercare .aftercare-intro,#aftercare .aftercare-columns,#aftercare .aftercare-notes{grid-template-columns:1fr;}#aftercare .aftercare-steps li{grid-template-columns:minmax(0,1fr);gap:.3rem;}}
@media (prefers-reduced-motion:reduce){#aftercare *{transition:none !important;animation:none !important;}}
/* gpvfp:faq */
/* gpvfp:faq */
#faq{background:var(--gpvfp-surface);color:var(--gpvfp-text);padding:clamp(3rem,8vw,7rem) 0}
#faq .faq-inner{max-width:72rem;margin:0 auto;padding:0 clamp(1rem,4vw,3rem);display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,4vw,3rem)}
#faq .faq-label{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gpvfp-accent);border-top:1px solid var(--gpvfp-border);padding-top:.9rem;margin:0 0 1rem;font-family:'Iowan Old Style',Palatino,Georgia,serif}
#faq h2{font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:-.02em;line-height:1.1;text-wrap:balance;margin:0;color:var(--gpvfp-ink);max-width:22ch}
#faq .faq-intro{margin:1rem 0 0;max-width:36rem;color:var(--gpvfp-secondary);line-height:1.6}
#faq .faq-intro a{color:var(--gpvfp-ink);text-decoration:underline;text-underline-offset:3px}
#faq .faq-intro a:hover{color:var(--gpvfp-accent)}
#faq .faq-list{border-top:1px solid var(--gpvfp-border)}
#faq .faq-item{border-bottom:1px solid var(--gpvfp-border)}
#faq .faq-trigger{display:flex;justify-content:space-between;align-items:flex-start;gap:1.25rem;width:100%;min-height:44px;padding:1.15rem 0;background:none;border:0;cursor:pointer;text-align:left;font-family:inherit;font-size:1.0625rem;font-weight:600;line-height:1.35;color:var(--gpvfp-ink)}
#faq .faq-trigger:hover{color:var(--gpvfp-accent)}
#faq .faq-trigger:focus-visible{outline:2px solid var(--gpvfp-accent);outline-offset:3px}
#faq .faq-trigger[aria-expanded="true"] .faq-mark{transform:rotate(45deg)}
#faq .faq-mark{flex:none;font-weight:400;font-size:1.375rem;line-height:1;color:var(--gpvfp-accent);transition:transform .18s ease}
#faq .faq-panel p{margin:0 0 1.35rem;max-width:46rem;color:var(--gpvfp-secondary);line-height:1.65}
#faq .faq-panel a{color:var(--gpvfp-ink);text-decoration:underline;text-underline-offset:3px}
#faq .faq-panel a:hover{color:var(--gpvfp-accent)}
#faq ::selection{background:var(--gpvfp-accent);color:var(--gpvfp-bg)}
@media (min-width:768px){#faq .faq-inner{grid-template-columns:5fr 7fr;align-items:start}#faq .faq-head{position:sticky;top:2rem}}
@media (prefers-reduced-motion:reduce){#faq .faq-mark{transition:none}}
.policy-page{background:var(--gpvfp-bg);color:var(--gpvfp-text);font-family:var(--gpvfp-font);padding:2rem 1rem;}.policy-content{max-width:800px;margin:0 auto;background:var(--gpvfp-surface);border:1px solid var(--gpvfp-border);padding:2rem;}.policy-header{border-bottom:1px solid var(--gpvfp-border);margin-bottom:2rem;padding-bottom:1rem;}.policy-header h1{font-family:var(--gpvfp-font-display);font-size:2rem;color:var(--gpvfp-primary);margin:0 0 .5rem;}.policy-updated{color:var(--gpvfp-slate);font-size:.9rem;}.policy-section{margin-bottom:1.5rem;}.policy-section h2{font-family:var(--gpvfp-font-display);font-size:1.3rem;color:var(--gpvfp-secondary);margin:0 0 .5rem;}.policy-section p{line-height:1.6;margin:0 0 .8rem;}.policy-section a{color:var(--gpvfp-accent);text-decoration:underline;}
.risk-page{background:var(--gpvfp-bg);color:var(--gpvfp-text);font-family:var(--gpvfp-font);padding:2rem 1rem;}.risk-content{max-width:60rem;margin:0 auto;background:var(--gpvfp-surface);border:1px solid var(--gpvfp-border);padding:2rem;}.risk-content h1{font-family:var(--gpvfp-font-display);font-size:2rem;color:var(--gpvfp-primary);margin:0 0 1.5rem;line-height:1.2;}.risk-content h2{font-family:var(--gpvfp-font-display);font-size:1.25rem;color:var(--gpvfp-secondary);margin:2rem 0 .5rem;border-bottom:1px solid var(--gpvfp-border);padding-bottom:.25rem;}.risk-content p{font-size:1rem;line-height:1.6;color:var(--gpvfp-text);margin:0 0 1rem;}.risk-list{margin:0 0 1rem;padding-left:1.25rem;color:var(--gpvfp-text);line-height:1.6;}.risk-list li{margin-bottom:.25rem;}.risk-contact{font-style:normal;font-size:.95rem;line-height:1.5;color:var(--gpvfp-slate);}.risk-contact strong{color:var(--gpvfp-primary);}@media(max-width:600px){.risk-page{padding:1rem .5rem;}.risk-content{padding:1.25rem;}.risk-content h1{font-size:1.5rem;}}
:root {
  --gpvfp-primary: #111111;
  --gpvfp-secondary: #3F3B35;
  --gpvfp-accent: #A85E22;
  --gpvfp-ink: #111111;
  --gpvfp-slate: #6B6B6B;
  --gpvfp-mist: #E5DFD4;
  --gpvfp-border: #D9D3C7;
  --gpvfp-surface: #F2F0EB;
  --gpvfp-bg: #F9F9F9;
  --gpvfp-text: #1A1A1A;
  --gpvfp-font: 'Iowan Old Style', Palatino, Georgia, 'Times New Roman', serif;
  --gpvfp-font-display: 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: var(--gpvfp-bg);
  color: var(--gpvfp-text);
  font-family: var(--gpvfp-font);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.policy-page {
  max-width: 48rem;
  margin: 0 auto;
  padding: 3rem 1.5rem;
}

.policy-content {
  background: var(--gpvfp-surface);
  border: 1px solid var(--gpvfp-border);
  padding: 2.5rem;
}

.policy-content h1 {
  font-family: var(--gpvfp-font-display);
  font-size: 2rem;
  color: var(--gpvfp-primary);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.policy-content h2 {
  font-family: var(--gpvfp-font-display);
  font-size: 1.25rem;
  color: var(--gpvfp-primary);
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--gpvfp-border);
}

.policy-content p {
  margin-bottom: 1rem;
  color: var(--gpvfp-text);
}

.policy-content ul {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
}

.policy-content li {
  margin-bottom: 0.25rem;
}

.policy-content a {
  color: var(--gpvfp-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.policy-content a:hover {
  color: var(--gpvfp-secondary);
}

.policy-contact {
  font-style: normal;
  background: var(--gpvfp-bg);
  border-left: 3px solid var(--gpvfp-accent);
  padding: 1rem 1.25rem;
  margin-top: 1rem;
  font-size: 0.95rem;
  line-height: 1.8;
}

.policy-contact a {
  color: var(--gpvfp-accent);
  text-decoration: none;
}

.policy-contact a:hover {
  text-decoration: underline;
}

@media (max-width: 600px) {
  .policy-page { padding: 1.5rem 1rem; }
  .policy-content { padding: 1.5rem; }
  .policy-content h1 { font-size: 1.6rem; }
}
.policy-page{max-width:820px;margin:0 auto;padding:64px 24px 80px;background:var(--gpvfp-bg);color:var(--gpvfp-text);font-family:var(--gpvfp-font);line-height:1.65}
.policy-hero{border-bottom:1px solid var(--gpvfp-border);padding-bottom:32px;margin-bottom:40px}
.policy-eyebrow{margin:0 0 12px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gpvfp-accent)}
.policy-title{margin:0 0 16px;font-family:var(--gpvfp-font-display);font-size:34px;line-height:1.25;font-weight:400;color:var(--gpvfp-ink)}
.policy-lead{margin:0;font-size:18px;color:var(--gpvfp-secondary)}
.policy-section{margin-bottom:40px}
.policy-heading{margin:0 0 14px;font-family:var(--gpvfp-font-display);font-size:21px;font-weight:400;color:var(--gpvfp-ink)}
.policy-page p{margin:0 0 14px}
.policy-steps{margin:0;padding-left:22px}
.policy-steps li{margin-bottom:10px}
.policy-page a{color:var(--gpvfp-accent);text-decoration:underline;text-underline-offset:2px}
.policy-footer{border-top:1px solid var(--gpvfp-border);background:var(--gpvfp-surface);padding:32px 28px;margin-top:48px}
.policy-address{margin:0 0 28px;font-style:normal}
.policy-address p{margin:0 0 6px}
.policy-refs{margin:0;padding-left:22px;font-size:15px;color:var(--gpvfp-slate)}
.policy-refs li{margin-bottom:8px}
@media (max-width:640px){.policy-page{padding:40px 18px 56px}.policy-title{font-size:27px}.policy-footer{padding:26px 18px}}
section[data-gpvfp-fao]:not([data-gpvfp-fao='header']):not([data-gpvfp-fao='footer']) { position: relative; }
section[data-gpvfp-fao]:not([data-gpvfp-fao='header']):not([data-gpvfp-fao='footer']) { border-top: 1px solid var(--gpvfp-border); }
section[data-gpvfp-fao]:not([data-gpvfp-fao='header']) h1,section[data-gpvfp-fao]:not([data-gpvfp-fao='header']) h2 { max-width: 20ch; letter-spacing: -0.035em; }
section[data-gpvfp-fao]:nth-of-type(even)::before { content: ''; position: absolute; top: 0; left: 0; width: 5rem; border-top: 3px solid var(--gpvfp-accent); }
:root {
  --gpvfp-c-content-width: 72rem;
  --gpvfp-c-gutter: clamp(1rem, 4vw, 3rem);
  --gpvfp-c-measure: 65ch;
  --gpvfp-c-heading-display: clamp(2.5rem, 6vw, 5.5rem);
}
[data-gpvfp-dr] { scroll-margin-top: 1.5rem; }
main > section, main [data-gpvfp-fao] { padding-inline: var(--gpvfp-c-gutter); }
[data-gpvfp-dr*='article'], [data-gpvfp-dr*='review'] { max-width: var(--gpvfp-c-measure); }
h1 { font-size: var(--gpvfp-c-heading-display); }
@media (max-width: 768px) { [data-gpvfp-dr] { min-width: 0; } }