/* GP Contact Page Builder v1.0.2 — authored by Jacob Romano */
.gpcp-page {
  --gpcp-black:#050505;
  --gpcp-panel:#11100f;
  --gpcp-panel-2:#171411;
  --gpcp-cream:#f9f5ee;
  --gpcp-muted:rgba(249,245,238,.76);
  --gpcp-soft:rgba(249,245,238,.58);
  --gpcp-gold:#c7a45e;
  --gpcp-gold-light:#ffd782;
  --gpcp-red:#c1121f;
  --gpcp-red-deep:#8f0c16;
  --gpcp-radius:26px;
  --gpcp-ease:cubic-bezier(.22,.82,.23,1);
  --gpcp-shadow:0 28px 90px rgba(0,0,0,.52);
  background:
    radial-gradient(circle at 50% 0%, rgba(199,164,94,.16), transparent 20%),
    radial-gradient(circle at 12% 16%, rgba(193,18,31,.10), transparent 28%),
    linear-gradient(180deg, #030303 0%, #090806 48%, #030303 100%);
  color:var(--gpcp-cream);
  font-family:Inter, Lato, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow:hidden;
  isolation:isolate;
}
.gpcp-page *, .gpcp-page *::before, .gpcp-page *::after { box-sizing:border-box; }
.gpcp-page a { color:inherit; }
.gpcp-shell { width:min(1180px, calc(100% - clamp(32px, 5vw, 72px))); margin-inline:auto; }
.gpcp-section { position:relative; padding:clamp(54px, 7vw, 112px) 0; }
.gpcp-section::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 18%, rgba(199,164,94,.08), transparent 32%),
    linear-gradient(180deg, transparent, rgba(199,164,94,.032), transparent);
  opacity:.9;
}
.gpcp-section > .gpcp-shell { position:relative; z-index:1; }
.gpcp-card {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(199,164,94,.28);
  border-radius:var(--gpcp-radius);
  background:
    radial-gradient(circle at var(--mx, 55%) var(--my, 20%), rgba(199,164,94,.16), transparent 34%),
    linear-gradient(145deg, rgba(34,31,26,.94), rgba(10,10,9,.965));
  box-shadow:var(--gpcp-shadow), inset 0 1px 0 rgba(255,245,220,.06);
}
.gpcp-card::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg, transparent 0%, transparent 38%, rgba(255,245,220,.10) 48%, transparent 60%, transparent 100%);
  transform:translateX(-130%);
  transition:transform 760ms var(--gpcp-ease);
  z-index:2;
}
.gpcp-card:hover::before { transform:translateX(130%); }
.gpcp-card::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,215,130,.08), 0 0 0 rgba(199,164,94,0);
  transition:box-shadow 280ms ease, opacity 280ms ease;
  opacity:.8;
  z-index:3;
}
.gpcp-card:hover::after { box-shadow:inset 0 0 0 1px rgba(255,215,130,.32), 0 0 38px rgba(199,164,94,.14); }
.gpcp-eyebrow {
  margin:0 0 10px;
  color:var(--gpcp-gold-light);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.74rem;
  font-weight:850;
}
.gpcp-page h1,
.gpcp-page h2,
.gpcp-page h3 {
  margin:0;
  color:var(--gpcp-cream);
  font-family:"Libre Baskerville", Georgia, serif;
  line-height:1.08;
  letter-spacing:-.035em;
}
.gpcp-page h1 { font-size:clamp(2.45rem, 6vw, 5.55rem); max-width:980px; }
.gpcp-page h2 { font-size:clamp(2rem, 4vw, 3.65rem); }
.gpcp-page h3 { font-size:clamp(1.15rem, 1.8vw, 1.55rem); }
.gpcp-page p { color:var(--gpcp-muted); line-height:1.72; font-size:clamp(1rem, 1.2vw, 1.075rem); }
.gpcp-lead { font-size:clamp(1.08rem, 1.45vw, 1.28rem) !important; max-width:890px; color:rgba(249,245,238,.84) !important; }
.gpcp-note,.gpcp-mini,.gpcp-final-line { color:var(--gpcp-soft) !important; }
.gpcp-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; align-items:center; }
.gpcp-actions--small { margin-top:18px; }
.gpcp-btn,
.gpcp-page .gp-ui-btn.gpcp-btn {
  position:relative;
  z-index:4;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 19px;
  border-radius:999px;
  border:1px solid rgba(199,164,94,.45);
  text-decoration:none !important;
  font-weight:850;
  letter-spacing:.02em;
  line-height:1.1;
  cursor:pointer;
  transition:transform 260ms var(--gpcp-ease), box-shadow 260ms var(--gpcp-ease), background 260ms ease, color 260ms ease, border-color 260ms ease;
  font-family:Inter, Lato, system-ui, sans-serif;
}
.gpcp-btn:hover { transform:translateY(-2px); }
.gpcp-btn--red { background:linear-gradient(135deg, var(--gpcp-red), #7e0711); color:#fff !important; box-shadow:0 18px 42px rgba(193,18,31,.28); border-color:rgba(255,200,200,.18); }
.gpcp-btn--red:hover { background:linear-gradient(135deg, #d0182a, #9f0d19); color:#fff !important; box-shadow:0 22px 52px rgba(193,18,31,.35); }
.gpcp-btn--gold { background:linear-gradient(135deg, #e4c574, var(--gpcp-gold)); color:#080706 !important; box-shadow:0 18px 42px rgba(199,164,94,.22); border-color:rgba(255,215,130,.7); }
.gpcp-btn--gold:hover { background:linear-gradient(135deg, #f3d991, #c7a45e); color:#080706 !important; }
.gpcp-btn--cream { background:#f9f5ee; color:#090807 !important; border-color:rgba(249,245,238,.78); box-shadow:0 16px 42px rgba(249,245,238,.12); }
.gpcp-btn--cream:hover { background:#c7a45e; color:#090807 !important; border-color:rgba(255,215,130,.9); }
.gpcp-btn--ghost { background:rgba(255,255,255,.035); color:var(--gpcp-cream) !important; border-color:rgba(199,164,94,.34); }
.gpcp-btn--ghost:hover { background:rgba(199,164,94,.12); color:#ffd782 !important; border-color:rgba(255,215,130,.55); }
.gpcp-media {
  --gpcp-img-pos:50% 50%;
  --gpcp-img-pos-mobile:var(--gpcp-img-pos);
  position:relative;
  overflow:hidden;
  margin:0;
  border-radius:24px;
  border:1px solid rgba(199,164,94,.25);
  min-height:280px;
  background:linear-gradient(145deg, rgba(199,164,94,.14), rgba(0,0,0,.9));
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.gpcp-media img { width:100%; height:100%; display:block; object-fit:cover; object-position:var(--gpcp-img-pos); transition:transform 850ms var(--gpcp-ease), opacity 220ms ease; }
.gpcp-card:hover .gpcp-media img,
.gpcp-media:hover img { transform:scale(1.035); }
.gpcp-media::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, transparent 45%, rgba(0,0,0,.38));
}
.gpcp-media--hero { min-height:clamp(420px, 40vw, 620px); }
.gpcp-media--wide { min-height:clamp(340px, 34vw, 520px); }
.gpcp-media--tall { min-height:clamp(440px, 48vw, 620px); }
.gpcp-media--process { min-height:300px; }
.gpcp-media--short { min-height:230px; margin-bottom:20px; }
.gpcp-media--proof { min-height:230px; border-radius:20px 20px 0 0; border-width:0 0 1px; }
.gpcp-hero-grid { display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(360px, .74fr); gap:clamp(26px, 4vw, 56px); align-items:stretch; }
.gpcp-hero-copy { padding:clamp(28px, 4.6vw, 58px); display:flex; flex-direction:column; justify-content:center; }
.gpcp-hero-media-wrap { position:relative; min-width:0; }
.gpcp-floating-note,
.gpcp-safety-note { position:absolute; left:22px; right:22px; bottom:22px; padding:18px 20px; z-index:5; backdrop-filter:blur(12px); }
.gpcp-floating-note strong,
.gpcp-safety-note strong { display:block; margin-bottom:6px; color:var(--gpcp-gold-light); }
.gpcp-floating-note p,
.gpcp-safety-note p { margin:0; font-size:.95rem; }
.gpcp-trust-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.gpcp-trust-row span,
.gpcp-area-chips span,
.gpcp-intake-list span,
.gpcp-photo-list span { display:inline-flex; align-items:center; border:1px solid rgba(199,164,94,.25); border-radius:999px; background:rgba(255,255,255,.04); color:rgba(249,245,238,.82); padding:8px 12px; font-size:.88rem; font-weight:750; }
.gpcp-jump { position:relative; z-index:6; padding:14px 0; background:rgba(5,5,5,.76); border-top:1px solid rgba(199,164,94,.18); border-bottom:1px solid rgba(199,164,94,.18); backdrop-filter:blur(16px); }
.gpcp-jump-inner { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.gpcp-jump span { color:var(--gpcp-gold-light); font-weight:850; text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; }
.gpcp-jump a { color:rgba(249,245,238,.84); text-decoration:none; border:1px solid rgba(199,164,94,.25); border-radius:999px; padding:8px 11px; font-weight:750; font-size:.88rem; transition:background 220ms ease, color 220ms ease, border-color 220ms ease; }
.gpcp-jump a:hover { background:rgba(199,164,94,.14); color:#ffd782; border-color:rgba(255,215,130,.55); }
.gpcp-section-head { margin-bottom:clamp(22px, 3vw, 40px); }
.gpcp-section-head--split { display:grid; grid-template-columns:minmax(0, .96fr) minmax(300px, .74fr); gap:clamp(20px, 4vw, 46px); align-items:end; }
.gpcp-section-head p:last-child { margin:0; }
.gpcp-route-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:18px; }
.gpcp-route-card { padding:24px; min-height:265px; display:flex; flex-direction:column; }
.gpcp-route-card > span { color:var(--gpcp-gold-light); text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:850; }
.gpcp-route-card p { margin:14px 0 0; }
.gpcp-route-card .gpcp-btn { margin-top:auto; width:fit-content; }
.gpcp-route-card.is-risk { border-color:rgba(193,18,31,.42); background:radial-gradient(circle at 16% 12%, rgba(193,18,31,.24), transparent 34%), linear-gradient(145deg, rgba(36,20,18,.94), rgba(10,10,9,.965)); }
.gpcp-symptom-layout { display:grid; grid-template-columns:minmax(260px, 340px) minmax(0, 1fr); gap:clamp(22px, 3vw, 42px); align-items:start; }
.gpcp-symptom-tabs { padding:16px; display:grid; gap:10px; }
.gpcp-symptom-tab { appearance:none; -webkit-appearance:none; display:grid; gap:5px; text-align:left; width:100%; border-radius:18px; border:1px solid rgba(199,164,94,.20); background:rgba(255,255,255,.035); color:var(--gpcp-cream); padding:14px 15px; cursor:pointer; transition:background 220ms ease, border-color 220ms ease, transform 220ms var(--gpcp-ease), box-shadow 220ms ease; }
.gpcp-symptom-tab span { color:var(--gpcp-gold-light); text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; font-weight:850; }
.gpcp-symptom-tab strong { font-size:.95rem; line-height:1.25; }
.gpcp-symptom-tab:hover,
.gpcp-symptom-tab[aria-selected="true"] { background:rgba(199,164,94,.13); border-color:rgba(255,215,130,.55); transform:translateY(-1px); box-shadow:0 14px 32px rgba(199,164,94,.10); }
.gpcp-symptom-panel { padding:clamp(24px, 3vw, 42px); min-height:460px; }
.gpcp-symptom-panel p { max-width:780px; }
.gpcp-suggestion-box { margin:20px 0; padding:18px; border-radius:18px; border:1px solid rgba(199,164,94,.28); background:rgba(0,0,0,.24); }
.gpcp-suggestion-box strong { color:var(--gpcp-gold-light); }
.gpcp-suggestion-box p { margin:7px 0 0; }
.gpcp-linkchips { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.gpcp-linkchips a { text-decoration:none; border:1px solid rgba(199,164,94,.32); background:rgba(255,255,255,.04); border-radius:999px; padding:9px 12px; color:rgba(249,245,238,.86); font-weight:750; transition:background 220ms ease, color 220ms ease, border-color 220ms ease; }
.gpcp-linkchips a:hover { background:rgba(199,164,94,.16); color:#ffd782; border-color:rgba(255,215,130,.6); }
.gpcp-two-col { display:grid; grid-template-columns:minmax(0, 1fr) minmax(360px, .86fr); gap:clamp(24px, 4vw, 52px); align-items:stretch; }
.gpcp-contact-card,
.gpcp-intake-card { padding:clamp(24px, 3vw, 42px); }
.gpcp-contact-list { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; margin:24px 0; }
.gpcp-contact-list div { border:1px solid rgba(199,164,94,.24); border-radius:18px; padding:15px; background:rgba(255,255,255,.035); }
.gpcp-contact-list dt { color:var(--gpcp-gold-light); text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:850; margin-bottom:6px; }
.gpcp-contact-list dd { margin:0; color:var(--gpcp-cream); font-weight:800; overflow-wrap:anywhere; }
.gpcp-intake-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.gpcp-risk-grid { display:grid; grid-template-columns:minmax(0, .95fr) minmax(420px, 1fr); gap:clamp(24px, 4vw, 52px); align-items:stretch; }
.gpcp-risk-copy { padding:clamp(24px, 3vw, 42px); }
.gpcp-risk-media { position:relative; }
.gpcp-check-list { list-style:none; padding:0; margin:22px 0 0; display:grid; gap:11px; }
.gpcp-check-list li { position:relative; padding-left:26px; color:rgba(249,245,238,.78); line-height:1.55; }
.gpcp-check-list li::before { content:""; position:absolute; left:0; top:.45em; width:10px; height:10px; border-radius:50%; background:var(--gpcp-gold); box-shadow:0 0 18px rgba(199,164,94,.45); }
.gpcp-process-layout { display:grid; grid-template-columns:minmax(360px, .92fr) minmax(520px, 1.15fr); gap:clamp(24px, 4vw, 52px); align-items:start; }
.gpcp-process-feature { padding:20px; }
.gpcp-process-feature > div { padding:20px 6px 4px; }
.gpcp-process-rail { display:grid; gap:13px; }
.gpcp-step-card { display:grid; grid-template-columns:58px minmax(0, 1fr); gap:16px; padding:17px; align-items:start; }
.gpcp-step-card > span { width:46px; height:46px; display:grid; place-items:center; border-radius:16px; background:rgba(199,164,94,.16); border:1px solid rgba(255,215,130,.34); color:var(--gpcp-gold-light); font-weight:950; }
.gpcp-step-card p { margin:7px 0 0; font-size:.96rem; line-height:1.55; }
.gpcp-helper-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; }
.gpcp-mini-card { padding:21px; }
.gpcp-mini-card strong { color:var(--gpcp-gold-light); font-size:1.04rem; }
.gpcp-mini-card p { margin:9px 0 0; font-size:.96rem; }
.gpcp-copy-card { grid-column:span 3; padding:clamp(22px, 3vw, 36px); }
.gpcp-copy-card blockquote { margin:12px 0 18px; padding:18px 20px; border-left:3px solid var(--gpcp-gold); border-radius:14px; background:rgba(0,0,0,.28); color:rgba(249,245,238,.9); line-height:1.65; }
.gpcp-two-col--photo { grid-template-columns:minmax(360px, .82fr) minmax(0, 1fr); align-items:stretch; }
.gpcp-photos .gpcp-card { padding:clamp(24px, 3vw, 42px); }
.gpcp-photo-list { display:grid; gap:10px; margin-top:22px; }
.gpcp-photo-list span { border-radius:16px; justify-content:flex-start; }
.gpcp-photo-list strong { color:var(--gpcp-gold-light); margin-right:8px; }
.gpcp-pricing-grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(380px, .88fr); gap:clamp(24px, 4vw, 52px); align-items:stretch; }
.gpcp-price-card,
.gpcp-expect-card { padding:clamp(24px, 3vw, 42px); }
.gpcp-price-number { display:flex; flex-wrap:wrap; align-items:baseline; gap:14px; margin:24px 0 6px; }
.gpcp-price-number span { font-family:"Libre Baskerville", Georgia, serif; font-size:clamp(3.4rem, 8vw, 7rem); color:var(--gpcp-gold-light); letter-spacing:-.06em; line-height:.92; }
.gpcp-price-number strong { color:var(--gpcp-cream); font-size:1.05rem; text-transform:uppercase; letter-spacing:.12em; }
.gpcp-area-card { display:grid; grid-template-columns:minmax(0, .9fr) minmax(280px, .9fr); gap:24px; align-items:center; padding:clamp(24px, 3vw, 42px); }
.gpcp-area-chips { display:flex; flex-wrap:wrap; gap:10px; }
.gpcp-proof-grid { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:16px; }
.gpcp-proof-card { display:flex; flex-direction:column; }
.gpcp-proof-card > div { padding:18px; }
.gpcp-proof-card p { margin:9px 0 0; font-size:.95rem; line-height:1.55; }
.gpcp-faq-list { display:grid; gap:12px; max-width:980px; }
.gpcp-faq-item { overflow:hidden; }
.gpcp-faq-q { appearance:none; border:0; background:transparent; color:var(--gpcp-cream); width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:20px 22px; cursor:pointer; font-weight:850; font-size:1.02rem; }
.gpcp-faq-q span { max-width:760px; }
.gpcp-faq-q b { width:32px; height:32px; border-radius:999px; display:grid; place-items:center; background:rgba(199,164,94,.16); color:var(--gpcp-gold-light); flex:0 0 auto; transition:transform 220ms ease; }
.gpcp-faq-item.is-open .gpcp-faq-q b { transform:rotate(45deg); }
.gpcp-faq-a { padding:0 22px 20px; }
.gpcp-faq-a p { margin:0; }
.gpcp-final-card { text-align:center; padding:clamp(30px, 5vw, 66px); }
.gpcp-final-card .gpcp-actions { justify-content:center; }
.gpcp-final-card p { max-width:850px; margin:18px auto 0; }
.gpcp-reveal { opacity:0; transform:translateY(14px); transition:opacity 700ms var(--gpcp-ease), transform 700ms var(--gpcp-ease); transition-delay:var(--gpcp-delay, 0ms); }
.gpcp-in { opacity:1; transform:none; }
@media (max-width:1180px) {
  .gpcp-route-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .gpcp-proof-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .gpcp-proof-card:last-child { grid-column:1 / -1; }
}
@media (max-width:1080px) {
  .gpcp-hero-grid,
  .gpcp-section-head--split,
  .gpcp-symptom-layout,
  .gpcp-two-col,
  .gpcp-risk-grid,
  .gpcp-process-layout,
  .gpcp-two-col--photo,
  .gpcp-pricing-grid,
  .gpcp-area-card { grid-template-columns:1fr; }
  .gpcp-process-layout { align-items:stretch; }
  .gpcp-helper-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .gpcp-copy-card { grid-column:span 2; }
  .gpcp-media--hero { min-height:clamp(360px, 62vw, 560px); }
}
@media (max-width:760px) {
  .gpcp-shell { width:min(100% - 28px, 1180px); }
  .gpcp-section { padding:52px 0; }
  .gpcp-page h1 { font-size:clamp(2.15rem, 11vw, 3.55rem); }
  .gpcp-page h2 { font-size:clamp(1.75rem, 8vw, 2.65rem); }
  .gpcp-actions { flex-direction:column; align-items:stretch; }
  .gpcp-btn { width:100%; }
  .gpcp-hero-copy,
  .gpcp-contact-card,
  .gpcp-intake-card,
  .gpcp-risk-copy,
  .gpcp-price-card,
  .gpcp-expect-card,
  .gpcp-area-card,
  .gpcp-final-card { padding:24px; }
  .gpcp-route-grid,
  .gpcp-helper-grid,
  .gpcp-proof-grid,
  .gpcp-contact-list { grid-template-columns:1fr; }
  .gpcp-copy-card,
  .gpcp-proof-card:last-child { grid-column:auto; }
  .gpcp-step-card { grid-template-columns:44px minmax(0, 1fr); gap:12px; padding:14px; }
  .gpcp-step-card > span { width:38px; height:38px; border-radius:13px; font-size:.85rem; }
  .gpcp-symptom-panel { min-height:0; }
  .gpcp-floating-note,
  .gpcp-safety-note { position:relative; left:auto; right:auto; bottom:auto; margin-top:14px; }
  .gpcp-media img { object-position:var(--gpcp-img-pos-mobile); }
  .gpcp-media--hero { min-height:350px; }
  .gpcp-media--tall { min-height:380px; }
  .gpcp-jump-inner { overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; }
  .gpcp-jump-inner a,
  .gpcp-jump-inner span { white-space:nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .gpcp-page *, .gpcp-page *::before, .gpcp-page *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .gpcp-reveal { opacity:1; transform:none; }
  .gpcp-card::before { display:none; }
}

/* v1.0.2: FAQ internal-link polish */
.gpcp-faq-a a {
  color: #f7d996;
  text-decoration: none;
  border-bottom: 1px solid rgba(247,217,150,.46);
  transition: color 180ms ease, border-color 180ms ease, text-shadow 180ms ease;
}
.gpcp-faq-a a:hover,
.gpcp-faq-a a:focus-visible {
  color: #ffffff;
  border-bottom-color: rgba(255,255,255,.72);
  text-shadow: 0 0 18px rgba(199,164,94,.24);
}
