/* Page styles. Shared header/nav/footer/scroll-top chrome now lives in
   ../chrome.css — do not re-add it here. */

a { color: var(--purple-600); }

.ts-intro, .ts-lede { max-width: calc(var(--maxw) * 0.72); margin-left: auto; margin-right: auto; }
@media (max-width: 1440px) { .ts-intro, .ts-lede { max-width: calc(var(--maxw) * 0.80); } }
@media (max-width: 1024px) { .ts-intro, .ts-lede { max-width: calc(var(--maxw) * 0.88); } }
@media (max-width: 480px)  { .ts-intro, .ts-lede { max-width: 100%; } }
@media (max-width: 1024px) {
    .ts-nav-desktop { display: none !important; }
    .ts-nav-mobile { display: flex !important; }
    .ts-herosec { padding-top: 10.5rem !important; }
    .ts-sec { padding-top: 84px !important; padding-bottom: 84px !important; }
  }
@media (max-width: 1024px) {
    .ts-footer-grid { flex-direction: column !important; align-items: center !important; text-align: center !important; gap: 2.5rem !important; }
    .ts-footer-grid .ts-fbrand, .ts-footer-grid .ts-fright { flex: 1 1 auto !important; width: 100% !important; }
    .ts-footer-grid .ts-flist { align-items: center !important; }
    .ts-footer-grid .ts-flist a { width: auto !important; }
    .ts-frow { gap: 1.5rem !important; }
    .ts-footer-grid .ts-fsocial { justify-content: center !important; }
    .ts-fcopy { text-align: center !important; }
    .ts-cta-row { padding-bottom: calc(var(--section-y) + 2.5rem) !important; }
    .ts-fsocial { flex-direction: column !important; }
  }

@media (max-width: 560px) {
    .ts-flogo { width: 320px !important; height: auto !important; }
    .ts-fseam { height: clamp(10px, 1vw, 14px) !important; top: -4px !important; }
    .ts-pad { padding-left: 20px !important; padding-right: 20px !important; }
  }
/* hero waveform accent */
.ts-hero-eq { position: absolute; left: 0; right: 0; bottom: 0; height: 5.5rem; z-index: 1; display: flex; align-items: flex-end; gap: 0.06rem; padding: 0 var(--section-x); opacity: 0.38; overflow: hidden; pointer-events: none; }
@media (max-width: 1024px) { .ts-hero-eq { padding-left: 0; padding-right: 0; } }
/* scroll reveal */
.ts-reveal { opacity: 0; transform: translateY(1.6rem); transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out); }
.ts-reveal.ts-reveal-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ts-reveal { opacity: 1 !important; transform: none !important; } }
/* footer col stagger */
@media (prefers-reduced-motion: reduce) { .ts-foot-col { opacity: 1 !important; transform: none !important; } }
/* ===================== CONTACT-page specifics ===================== */
.cf-eyebrow { font-family: var(--font-body); font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; font-size: var(--fs-other-4); color: #fff; margin: 0 0 1.5rem; }
.cf-split { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); gap: clamp(1.5rem, 2.5vw, 2.75rem); align-items: stretch; }
@media (max-width: 1024px) { .cf-split { grid-template-columns: 1fr; } }
@media (max-width: 1024px) {
    .cf-info { text-align: center; align-items: center; }
    .cf-info .cf-contact-item { align-items: center; }
    .cf-info .cf-biglink { margin-left: auto; margin-right: auto; }
    .cf-info .cf-social { justify-content: center !important; align-items: center !important; }
  }
/* left info panel */
.cf-info { position: relative; overflow: hidden; border-radius: var(--radius-card); background: linear-gradient(155deg, #2a0057 0%, #14003f 52%, #05002e 100%); color: #fff; padding: clamp(2rem, 3vw, 3rem); display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(3,0,60,0.32); }
.cf-info > * { position: relative; z-index: 1; }
.cf-blob { position: absolute; z-index: 0; top: -20%; right: -14%; width: 62%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(210,79,242,0.68) 0%, rgba(186,0,235,0) 70%); filter: blur(42px); pointer-events: none; animation: cf-blob 17s ease-in-out infinite; will-change: transform; }
@keyframes cf-blob { 0% { transform: translate(0, 0) scale(1); } 33% { transform: translate(-16%, 12%) scale(1.16); } 66% { transform: translate(8%, -6%) scale(0.9); } 100% { transform: translate(0, 0) scale(1); } }
.cf-blob-b { position: absolute; z-index: 0; bottom: -22%; right: -18%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(113,0,255,0.62) 0%, rgba(113,0,255,0) 70%); filter: blur(48px); pointer-events: none; animation: cf-blob-b 22s ease-in-out infinite; will-change: transform; }
@keyframes cf-blob-b { 0% { transform: translate(0, 0) scale(1); } 33% { transform: translate(14%, -12%) scale(1.18); } 66% { transform: translate(-8%, 6%) scale(0.88); } 100% { transform: translate(0, 0) scale(1); } }
.cf-blob-c { position: absolute; z-index: 0; bottom: -30%; left: -26%; width: 96%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(70,0,185,0.82) 0%, rgba(70,0,185,0) 70%); filter: blur(60px); pointer-events: none; animation: cf-blob-c 26s ease-in-out infinite; will-change: transform; }
@keyframes cf-blob-c { 0% { transform: translate(0, 0) scale(1); } 33% { transform: translate(10%, -8%) scale(1.14); } 66% { transform: translate(-6%, 5%) scale(0.9); } 100% { transform: translate(0, 0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .cf-blob, .cf-blob-b, .cf-blob-c { animation: none !important; } }
.cf-contact-item { display: flex; flex-direction: column; gap: 0.4rem; }
.cf-label { font-family: var(--font-body); font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--fs-other-4); color: #fff; }
.cf-biglink { display: inline-block; width: fit-content; font-family: var(--font-heading); font-weight: 400; text-transform: uppercase; font-size: var(--fs-h5); line-height: 1.2; letter-spacing: 0.01em; text-decoration: none; background-image: linear-gradient(90deg, var(--purple-300) 0%, var(--purple-300) 38%, #fff 62%, #fff 100%); background-size: 300% 100%; background-position: 100% center; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; transition: background-position 1.2s var(--ease-out); }
.cf-biglink:hover { background-position: 0% center; }
.cf-rule { height: 1px; background: rgba(255,255,255,0.18); border: 0; margin: clamp(1.75rem, 3vw, 2.5rem) 0; width: 100%; }
.cf-social { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.cf-social a { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: #fff; transition: filter 0.55s var(--ease-out), transform 0.55s var(--ease-out); }
.cf-social a:hover { filter: brightness(1.4); transform: scale(0.9); }
/* right form card */
.cf-card { border-radius: var(--radius-card); border: 2px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #03006D 0%, #7100FF 46%, #d24ff2 100%) border-box; box-shadow: var(--shadow-lg); padding: clamp(1.9rem, 2.8vw, 2.9rem); }
/* dark-purple -> hot-pink gradient border override for every field in the form */
.cf-form { --gradient-brand-soft: linear-gradient(135deg, #03006D 0%, #7100FF 46%, #d24ff2 100%); }
.cf-form .ts-field input, .cf-form .ts-field textarea, .cf-form .ts-field select { border-width: 2px; }
.cf-form .ts-field input:focus, .cf-form .ts-field textarea:focus, .cf-form .ts-field select:focus { border-width: 2px; box-shadow: 0 0 0 3px rgba(186,0,235,0.16), 0 6px 22px rgba(186,0,235,0.42); }
.cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem 1.15rem; }
.cf-grid .cf-full { grid-column: 1 / -1; }
@media (max-width: 560px) { .cf-grid { grid-template-columns: 1fr; } }
.cf-field-label { display: block; font-family: var(--font-body); font-weight: 700; text-transform: uppercase; font-size: var(--fs-other-4); letter-spacing: 0.09em; color: var(--ink-900); margin-bottom: 12px; }
.cf-req { color: var(--purple-600); }
.cf-opt { font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 0.82em; color: var(--text-muted); margin-left: 6px; }
.cf-chips { display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem; }
.cf-chip { cursor: pointer; border: 0; background: none; padding: 0.3rem 0; font-family: var(--font-heading); font-weight: 400; text-transform: uppercase; letter-spacing: 0.02em; font-size: var(--fs-h6); line-height: 1.1; color: var(--text-muted); transition: color 0.3s var(--ease-out), transform 0.3s var(--ease-out); }
.cf-chip:hover { color: var(--purple-600); transform: translateY(-1px); }
.cf-chip[data-on="true"] { color: transparent; background: linear-gradient(120deg, #7100FF 0%, #7100FF 100%); -webkit-background-clip: text; background-clip: text; }
.cf-submit { width: 100%; margin-top: 1.6rem; cursor: pointer; border: 0; border-radius: var(--radius-btn); padding: 1.05rem 1.5rem; font-family: var(--font-body); font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--fs-btn); color: #fff; background: linear-gradient(135deg, #03006D 0%, #7100FF 46%, #d24ff2 100%); background-size: 200% 100%; background-position: 0% center; box-shadow: 0 12px 30px rgba(113,0,255,0.3); transition: background-position 0.6s var(--ease-out), box-shadow 0.5s var(--ease-out); display: inline-flex; align-items: center; justify-content: center; gap: 0.65rem; }
.cf-submit .cf-ar { transition: transform 0.4s var(--ease-out); }
.cf-submit:hover { background-position: 100% center; box-shadow: 0 0 26px rgba(186,0,235,0.6); }
.cf-submit:hover .cf-ar { transform: translateX(0.4rem); }
@media (prefers-reduced-motion: reduce) { .cf-submit, .cf-submit .cf-ar, .cf-chip { transition: none !important; } }
/* ============================================================
   Static-port additions
   (No extra state classes were needed for this page: the scroll
   reveals reuse .ts-reveal/.ts-reveal-in from the helmet CSS via
   the shared [data-reveal] hook, package-chip state is expressed
   through the existing .cf-chip[data-on="true"] rule toggled by
   contact-us.js, and the mobile menu / burger / footer-reveal
   states live in components.css + site.js.)
   ============================================================ */

/* ==========================================================================
   Gravity Forms (form id 2) — restyled to match the design-system contact form.
   Scoped to .cf-gf so nothing leaks to other forms. Mirrors .ts-field /
   .cf-field-label / .cf-chip / .cf-submit exactly; keep the two in sync.
   ========================================================================== */
.cf-gf { --gradient-brand-soft: linear-gradient(135deg, #03006D 0%, #7100FF 46%, #d24ff2 100%); }
.cf-gf .gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 1.15rem; grid-column-gap: 1.15rem; }
.cf-gf .gform_wrapper.gravity-theme .gfield { padding: 0; }

/* Labels — matches .cf-field-label */
.cf-gf .gform_wrapper.gravity-theme .gfield_label,
.cf-gf .gform_wrapper.gravity-theme legend.gfield_label {
  display: block; font-family: var(--font-body); font-weight: 700; text-transform: uppercase;
  font-size: var(--fs-other-4); letter-spacing: 0.09em; color: var(--ink-900);
  margin-bottom: 12px; padding: 0;
}
/* GF prints "(Required)"; the design uses a magenta asterisk */
.cf-gf .gform_wrapper.gravity-theme .gfield_required_text { display: none; }
.cf-gf .gform_wrapper.gravity-theme .gfield_required:not(.gfield_required_text) { color: var(--purple-600); }
.cf-gf .gform_wrapper.gravity-theme .gfield_required:not(.gfield_required_text)::after { content: "*"; }

/* Inputs — matches .ts-field input/select/textarea */
.cf-gf .gform_wrapper.gravity-theme input[type="text"],
.cf-gf .gform_wrapper.gravity-theme input[type="email"],
.cf-gf .gform_wrapper.gravity-theme input[type="tel"],
.cf-gf .gform_wrapper.gravity-theme select,
.cf-gf .gform_wrapper.gravity-theme textarea {
  width: 100%; box-sizing: border-box;
  font-family: var(--font-body); font-size: 1rem; color: var(--text-strong);
  background: linear-gradient(var(--white), var(--white)) padding-box,
              var(--gradient-brand-soft) border-box;
  border: 2px solid transparent; border-radius: var(--radius-input); padding: 13px 16px;
  transition: box-shadow var(--dur-med) var(--ease-out), filter var(--dur-med) var(--ease-out);
  outline: none;
}
.cf-gf .gform_wrapper.gravity-theme textarea { resize: vertical; min-height: 132px; line-height: 1.5; }
.cf-gf .gform_wrapper.gravity-theme input::placeholder,
.cf-gf .gform_wrapper.gravity-theme textarea::placeholder { color: var(--gray-500); }
.cf-gf .gform_wrapper.gravity-theme input:hover,
.cf-gf .gform_wrapper.gravity-theme select:hover,
.cf-gf .gform_wrapper.gravity-theme textarea:hover { filter: brightness(0.985); }
.cf-gf .gform_wrapper.gravity-theme input:focus,
.cf-gf .gform_wrapper.gravity-theme select:focus,
.cf-gf .gform_wrapper.gravity-theme textarea:focus { box-shadow: var(--focus-ring); }
.cf-gf .gform_wrapper.gravity-theme select {
  appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 44px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237100FF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 16px center / 14px no-repeat padding-box,
    linear-gradient(var(--white), var(--white)) padding-box,
    var(--gradient-brand-soft) border-box;
}

/* First/Last sub-labels under the Name field */
.cf-gf .gform_wrapper.gravity-theme .gform-field-label--type-sub {
  font-family: var(--font-body); font-weight: 400; font-size: 0.78rem;
  color: var(--text-muted); letter-spacing: 0; text-transform: none; margin-top: 6px;
}

/* Interested package(s) — real checkboxes styled as the design's toggle chips */
.cf-gf .gform_wrapper.gravity-theme .gfield_checkbox {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem;
}
.cf-gf .gform_wrapper.gravity-theme .gchoice { position: relative; display: flex; align-items: center; }
.cf-gf .gform_wrapper.gravity-theme .gfield-choice-input {
  position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0;
}
.cf-gf .gform_wrapper.gravity-theme .gfield_checkbox label {
  cursor: pointer; margin: 0; padding: 0.3rem 0; max-width: none;
  font-family: var(--font-heading); font-weight: 400; text-transform: uppercase;
  letter-spacing: 0.02em; font-size: var(--fs-h6); line-height: 1.1; color: var(--text-muted);
  transition: color 0.3s var(--ease-out), transform 0.3s var(--ease-out);
}
.cf-gf .gform_wrapper.gravity-theme .gfield_checkbox label:hover {
  color: var(--purple-600); transform: translateY(-1px);
}
.cf-gf .gform_wrapper.gravity-theme .gfield-choice-input:checked + label {
  color: transparent;
  background: linear-gradient(120deg, #7100FF 0%, #7100FF 100%);
  -webkit-background-clip: text; background-clip: text;
}
.cf-gf .gform_wrapper.gravity-theme .gfield-choice-input:focus-visible + label {
  outline: 2px solid var(--purple-400); outline-offset: 4px; border-radius: 2px;
}

/* Submit — matches .cf-submit */
.cf-gf .gform_wrapper.gravity-theme .gform_footer { padding: 0; margin: 0; }
.cf-gf .gform_wrapper.gravity-theme .gform_button {
  width: 100%; margin-top: 1.6rem; cursor: pointer; border: 0;
  border-radius: var(--radius-btn); padding: 1.05rem 1.5rem;
  font-family: var(--font-body); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.12em; font-size: var(--fs-btn); color: #fff;
  background: linear-gradient(135deg, #03006D 0%, #7100FF 46%, #d24ff2 100%);
  background-size: 200% 100%; background-position: 0% center;
  box-shadow: 0 12px 30px rgba(113,0,255,0.3);
  transition: background-position 0.6s var(--ease-out), box-shadow 0.5s var(--ease-out);
}
.cf-gf .gform_wrapper.gravity-theme .gform_button:hover {
  background-position: 100% center; box-shadow: 0 0 26px rgba(186,0,235,0.6);
}

/* Validation + confirmation */
.cf-gf .gform_wrapper.gravity-theme .gfield_error input,
.cf-gf .gform_wrapper.gravity-theme .gfield_error select,
.cf-gf .gform_wrapper.gravity-theme .gfield_error textarea {
  background: linear-gradient(var(--white), var(--white)) padding-box,
              linear-gradient(135deg, #BA00EB, #d24ff2) border-box;
}
.cf-gf .gform_wrapper.gravity-theme .gfield_validation_message,
.cf-gf .gform_wrapper.gravity-theme .validation_message {
  font-family: var(--font-body); font-size: 0.85rem; color: var(--purple-600);
  background: none; border: 0; padding: 6px 0 0;
}
.cf-gf .gform_wrapper.gravity-theme .gform_validation_errors {
  border-radius: var(--radius-input); border: 2px solid var(--purple-400);
  background: rgba(210,79,242,0.06); box-shadow: none;
}
.cf-gf .gform_confirmation_message {
  font-family: var(--font-body); font-size: var(--fs-body-text); color: var(--text-strong);
  border-radius: var(--radius-input); padding: 1.5rem 1.25rem; text-align: center;
  background: linear-gradient(var(--white), var(--white)) padding-box,
              var(--gradient-brand-soft) border-box;
  border: 2px solid transparent;
}

@media (prefers-reduced-motion: reduce) {
  .cf-gf .gform_wrapper.gravity-theme .gform_button,
  .cf-gf .gform_wrapper.gravity-theme .gfield_checkbox label { transition: none !important; }
}
@media (max-width: 560px) {
  .cf-gf .gform_wrapper.gravity-theme .gfield--width-half { grid-column: span 12; }
}
