/* New-client intake ("Get Started" + homepage section). Self-contained: gold/pink on warm black. */
.gs2 { --g-bg: #1d1814; --g-card: #130f0c; --g-cream: #fbfaf6; --g-soft: #d8d0c1; --g-muted: #a9a093; --g-gold: #c99b2f; --g-gold-l: #f4d77a; --g-pink: #e6498b; --g-pink-l: #f28fb9; --g-line: rgba(201, 155, 47, .38);
  position: relative; overflow: hidden; padding: clamp(72px, 9vw, 120px) clamp(18px, 4vw, 48px); color: var(--g-cream); font: 400 1.0625rem/1.65 Georgia, "Times New Roman", serif; text-align: left;
  background: radial-gradient(ellipse at 12% 0%, rgba(230, 73, 139, .16), transparent 46%), radial-gradient(ellipse at 100% 100%, rgba(201, 155, 47, .14), transparent 50%), var(--g-bg); scroll-margin-top: 80px; }
.gs2 *, .gs2 *::before, .gs2 *::after { box-sizing: border-box; }
.gs2-in { position: relative; max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 88px); align-items: start; }

/* left: pitch */
.gs2-eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; font: 600 .72rem/1 "Avenir Next", "Helvetica Neue", Arial, sans-serif; letter-spacing: .26em; text-transform: uppercase; color: var(--g-gold-l); }
.gs2-eyebrow i { display: block; width: 44px; height: 1px; background: currentColor; opacity: .7; }
.gs2-title { margin: 0; font: 400 clamp(36px, 4.6vw, 62px)/1.05 Georgia, "Times New Roman", serif; letter-spacing: -.01em; color: #fff; text-transform: none; text-shadow: none; }
.gs2-title em { display: block; font-style: italic; color: var(--g-gold-l); }
.gs2-sub { max-width: 44ch; margin: 22px 0 0; color: var(--g-soft); }
.gs2-path { margin: 34px 0 0; padding: 0; list-style: none; counter-reset: p; }
.gs2-path li { position: relative; padding: 0 0 22px 54px; color: var(--g-soft); font-size: 15.5px; line-height: 1.5; }
.gs2-path li::before { content: ""; position: absolute; left: 17px; top: 36px; bottom: 2px; width: 1px; background: var(--g-line); }
.gs2-path li:last-child { padding-bottom: 0; } .gs2-path li:last-child::before { display: none; }
.gs2-path b { position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--g-line); border-radius: 50%; color: var(--g-gold-l); font: 700 .8rem "Avenir Next", Arial, sans-serif; }
.gs2-path li.is-now b { background: var(--g-pink); border-color: var(--g-pink); color: #fff; }
.gs2-path strong { display: block; margin-bottom: 2px; color: #fff; font: 600 1rem Georgia, serif; }
.gs2-aside { margin: 30px 0 0; padding-top: 22px; border-top: 1px solid var(--g-line); color: var(--g-muted); font-size: 14.5px; }
.gs2-aside a { color: var(--g-gold-l); text-decoration: none; border-bottom: 1px solid transparent; } .gs2-aside a:hover { border-color: currentColor; }

/* right: form card */
.gs2-card { padding: clamp(22px, 3.4vw, 40px); border: 1px solid var(--g-line); border-radius: 22px; background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015)), var(--g-card); box-shadow: 0 30px 80px rgba(0, 0, 0, .45); scroll-margin-top: 96px; }
.gs2-prog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 30px; padding: 0; list-style: none; }
.gs2-prog li { padding-top: 10px; border-top: 3px solid rgba(255, 255, 255, .14); color: var(--g-muted); font: 600 .68rem/1.3 "Avenir Next", Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; transition: border-color .3s, color .3s; }
.gs2-prog li.is-done { border-color: var(--g-gold); color: var(--g-soft); }
.gs2-prog li.is-now { border-color: var(--g-pink); color: #fff; }
.gs2-prog li span { display: block; margin-bottom: 2px; opacity: .7; }
.gs2-step { display: none; border: 0; margin: 0; padding: 0; min-width: 0; }
.gs2-step.is-on { display: block; animation: gs2-in .35s ease both; }
@keyframes gs2-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gs2-step.is-on { animation: none; } }
.gs2-h { margin: 0 0 4px; font: 400 1.5rem/1.2 Georgia, serif; color: #fff; text-transform: none; }
.gs2-hint { margin: 0 0 22px; color: var(--g-muted); font-size: 14.5px; }
.gs2-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.gs2-f { margin: 0 0 18px; padding: 0; border: 0; min-width: 0; }
.gs2-f > label, .gs2-f > legend { display: block; margin: 0 0 8px; padding: 0; color: var(--g-cream); font: 600 .86rem "Avenir Next", "Helvetica Neue", Arial, sans-serif; letter-spacing: .02em; }
.gs2-f small { color: var(--g-muted); font-weight: 400; }
.gs2 .req { color: var(--g-pink-l); margin-left: 3px; }
.gs2 input[type=text], .gs2 input[type=email], .gs2 input[type=tel], .gs2 select, .gs2 textarea { width: 100%; padding: 13px 14px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 11px; background: rgba(0, 0, 0, .4); color: var(--g-cream); font: 400 16px/1.4 "Avenir Next", "Helvetica Neue", Arial, sans-serif; transition: border-color .2s, box-shadow .2s; }
.gs2 textarea { min-height: 120px; resize: vertical; }
.gs2 input:focus, .gs2 select:focus, .gs2 textarea:focus { outline: none; border-color: var(--g-gold-l); box-shadow: 0 0 0 3px rgba(244, 215, 122, .18); }
.gs2 .has-error input, .gs2 .has-error select, .gs2 .has-error textarea, .gs2 .has-error .gs2-drop { border-color: #ff7a99; }
.gs2-err { margin: 6px 0 0; color: #ff9db3; font-size: 13px; } .gs2-err:empty { display: none; }
.gs2-chips { display: flex; flex-wrap: wrap; gap: 9px; }
.gs2-chips label { position: relative; margin: 0; cursor: pointer; }
.gs2-chips input { position: absolute; opacity: 0; pointer-events: none; }
.gs2-chips span { display: inline-block; padding: 10px 16px; border: 1px solid rgba(255, 255, 255, .24); border-radius: 999px; color: var(--g-soft); font: 500 14px "Avenir Next", Arial, sans-serif; transition: all .2s; }
.gs2-chips label:hover span { border-color: var(--g-gold-l); }
.gs2-chips input:checked + span { background: var(--g-pink); border-color: var(--g-pink); color: #fff; }
.gs2-chips input:focus-visible + span { outline: 2px solid var(--g-gold-l); outline-offset: 2px; }

/* upload */
.gs2-drop { display: block; position: relative; padding: 26px 18px; border: 2px dashed rgba(244, 215, 122, .45); border-radius: 14px; background: rgba(244, 215, 122, .04); text-align: center; cursor: pointer; transition: background .2s, border-color .2s; }
.gs2-drop:hover, .gs2-drop.is-over { background: rgba(244, 215, 122, .1); border-color: var(--g-gold-l); }
.gs2-drop input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.gs2-drop svg { width: 34px; height: 34px; margin: 0 auto 8px; display: block; stroke: var(--g-gold-l); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.gs2-drop strong { display: block; color: #fff; font: 600 1rem Georgia, serif; }
.gs2-drop span { display: block; margin-top: 4px; color: var(--g-muted); font: 400 13px/1.5 "Avenir Next", Arial, sans-serif; }
.gs2-files { margin: 12px 0 0; padding: 0; list-style: none; }
.gs2-files li { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; padding: 9px 12px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 10px; background: rgba(255, 255, 255, .03); font: 400 14px "Avenir Next", Arial, sans-serif; }
.gs2-files .n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--g-cream); }
.gs2-files .s { flex: none; color: var(--g-muted); font-size: 12.5px; }
.gs2-files button { flex: none; width: 28px; height: 28px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 50%; background: none; color: var(--g-soft); font-size: 16px; line-height: 1; cursor: pointer; }
.gs2-files button:hover { border-color: #ff7a99; color: #ff9db3; }

.gs2-consent { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0 4px; color: var(--g-soft); font: 400 14px/1.5 "Avenir Next", Arial, sans-serif; cursor: pointer; }
.gs2-consent input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--g-pink); }
.gs2-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gs2-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 26px; }
.gs2-back { padding: 13px 8px; border: 0; background: none; color: var(--g-soft); font: 600 .78rem "Avenir Next", Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.gs2-back:hover { color: var(--g-gold-l); } .gs2-back[hidden] { display: none; }
.gs2-next { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 32px; border: 0; border-radius: 999px; background: linear-gradient(135deg, #f4d77a, #c99b2f 60%, #8b6617); color: #140f03; font: 800 .8rem "Avenir Next", Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; box-shadow: 0 10px 30px rgba(201, 155, 47, .28); transition: transform .2s, box-shadow .2s; }
.gs2-next:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(201, 155, 47, .4); }
.gs2-next:disabled { opacity: .6; cursor: progress; transform: none; }
.gs2-note { margin: 14px 0 0; min-height: 1.3em; text-align: center; color: var(--g-soft); font: 400 14px "Avenir Next", Arial, sans-serif; } .gs2-note.is-error { color: #ff9db3; }
.gs2-fine { margin: 12px 0 0; color: var(--g-muted); font: 400 12.5px/1.55 "Avenir Next", Arial, sans-serif; text-align: center; } .gs2-fine a { color: var(--g-gold-l); }
.gs2-off { margin: 0 0 18px; padding: 14px 16px; border: 1px solid #ff7a99; border-radius: 12px; color: #fff; font: 400 14.5px "Avenir Next", Arial, sans-serif; } .gs2-off a { color: var(--g-gold-l); }

@media (max-width: 980px) { .gs2-in { grid-template-columns: 1fr; } .gs2-sub { max-width: 60ch; } }
@media (max-width: 600px) { .gs2-row { grid-template-columns: 1fr; } .gs2-prog li { font-size: .6rem; letter-spacing: .08em; } .gs2-next { padding: 0 24px; } }

/* Schedule page: pointer to the intake form for people who arrive without one */
.sched-intake-banner { max-width: 60ch; margin: 14px auto 0; padding: 10px 16px; border: 1px solid rgba(244, 215, 122, .35); border-radius: 12px; color: var(--soft, #d8d0c1); font-size: 14px; text-align: center; }
.sched-intake-banner a { color: var(--gold-light, #f4d77a); font-weight: 700; }
.gs2 .gs2-consent input[type=checkbox] { -webkit-appearance: checkbox; appearance: auto; flex: none; width: 20px; height: 20px; min-height: 0; margin: 2px 0 0; padding: 0; border: 0; background: none; box-shadow: none; }
/* Homepage: in-place thank-you panel */
.gs2-done{display:grid;gap:12px;padding:clamp(8px,2vw,18px);text-align:left}
.gs2-done:focus{outline:none}
.gs2-done-k{margin:0;font:700 .72rem 'Avenir Next',Arial,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#f28fb9}
.gs2-done h3{margin:0;font:400 clamp(1.6rem,3vw,2.2rem)/1.1 Georgia,'Times New Roman',serif;color:#fbfaf6}
.gs2-done p{margin:0;color:#d8d0c1}
.gs2-done-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
/* Homepage: button card that replaces the on-page form */
.gs2-card--cta{display:grid;gap:14px;align-content:start}
.gs2-cta-k{margin:0;font:700 .72rem 'Avenir Next',Arial,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#f28fb9}
.gs2-card--cta h3{margin:0;font:400 clamp(1.7rem,3vw,2.4rem)/1.1 Georgia,'Times New Roman',serif;color:#fbfaf6}
.gs2-cta-p{margin:0;color:#d8d0c1;line-height:1.6}
.gs2-cta-btn{justify-self:start;margin-top:6px}
.gs2-card--cta .gs2-fine{margin:6px 0 0}
@media(max-width:700px){.gs2-cta-btn{justify-self:stretch;text-align:center;justify-content:center}}

/* cart summary (cart -> form -> call workflow) */
.gs2-cart { margin: 0 0 22px; padding: 18px 20px; border: 1px solid var(--g-gold); border-radius: 14px; background: rgba(255, 255, 255, .04); }
.gs2-cart-k { margin: 0 0 10px; font: 700 .7rem "Avenir Next", Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--g-gold-l); }
.gs2-cart-list { list-style: none; margin: 0; padding: 0; }
.gs2-cart-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); font: 500 .95rem "Avenir Next", Arial, sans-serif; color: #fbfaf6; }
.gs2-cart-list li small { display: block; color: var(--g-muted); font-size: .76rem; }
.gs2-cart-list li b { white-space: nowrap; color: var(--g-gold-l); font-weight: 600; }
.gs2-cart-list li button { margin-left: 10px; width: 26px; height: 26px; border: 1px solid rgba(255, 255, 255, .24); border-radius: 50%; background: transparent; color: var(--g-soft); cursor: pointer; }
.gs2-cart-tot p { display: flex; justify-content: space-between; margin: 8px 0 0; font: 600 .95rem "Avenir Next", Arial, sans-serif; color: #fff; }
.gs2-cart-more { margin: 12px 0 0; font-size: .82rem; color: var(--g-muted); }
.gs2-cart-more a { color: var(--g-gold-l); }
.gs2-chips label.is-cart span::after { content: " ✓ in cart"; font-size: .72rem; opacity: .85; }
.gs2-chips label.is-cart { cursor: default; }
.gs2-chips input:disabled:checked + span { background: var(--g-pink); border-color: var(--g-pink); color: #fff; }
