/*
 * Contact SnapGo
 * Post-theme contact and enquiry system aligned with the approved Home canvas.
 */

body[data-page="contact"]{
  --ct-coral:#e94a09;
  --ct-violet:#7b2d8b;
  --ct-peach:#eda197;
  --ct-mauve:#b23b66;
  --ct-red:#d04555;
  --ct-blush:#cb98bf;
  --ct-plum:#9d337a;
  --ct-orange:#e6503b;
  --ct-night:#3a1738;
  --ct-ink:#2b102e;
  --ct-copy:#6f566d;
  --ct-paper:#fffaf8;
  --ct-soft:#fff0ed;
  --ct-warm:#f7ded9;
  --ct-line:rgba(58,23,56,.14);
  --ct-hero-shell:1560px;
  --ct-content-shell:1180px;
  --ct-gutter:clamp(28px,4vw,64px);
  --ct-nav-height:104px;
  --ct-hero-title:clamp(3.15rem,4.8vw,5.25rem);
  --ct-section-title:clamp(2.35rem,3.7vw,3.75rem);
  --ct-body:clamp(.96rem,1.05vw,1.08rem);
  margin:0;
  background:var(--ct-night);
  color:var(--ct-ink);
}

body[data-page="contact"]::selection{
  background:var(--ct-peach);
  color:var(--ct-night);
}

body[data-page="contact"] .site-header{
  min-height:var(--ct-nav-height);
  border:0!important;
  border-bottom:1px solid rgba(58,23,56,.1)!important;
  background:rgba(255,250,248,.9)!important;
  box-shadow:0 10px 34px rgba(37,16,61,.07);
  backdrop-filter:blur(18px) saturate(1.25);
}

body[data-page="contact"] .nav{
  display:grid!important;
  grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);
  align-items:center!important;
  width:100%;
  max-width:var(--ct-hero-shell)!important;
  min-height:var(--ct-nav-height)!important;
  margin-inline:auto!important;
  padding:7px var(--ct-gutter)!important;
  gap:clamp(22px,3vw,48px)!important;
}

body[data-page="contact"] .brand{
  justify-self:start;
  width:170px!important;
  height:90px;
  flex:0 0 170px!important;
  padding:0!important;
}

body[data-page="contact"] .brand img,
body[data-page="contact"] .snapgo-logo-img{
  width:auto!important;
  height:86px!important;
  max-width:164px!important;
  object-fit:contain!important;
  transform:none!important;
}

body[data-page="contact"] .nav-links{
  justify-self:center;
  gap:clamp(20px,2.2vw,34px)!important;
}

body[data-page="contact"] .nav-link{
  padding:10px 1px!important;
  color:var(--ct-night)!important;
  font-size:clamp(.92rem,1.05vw,1.02rem)!important;
  line-height:1.1;
}

body[data-page="contact"] .nav-link::after{
  background:linear-gradient(90deg,var(--ct-orange),var(--ct-red),var(--ct-violet))!important;
}

body[data-page="contact"] .nav-link.active{
  color:var(--ct-violet)!important;
}

body[data-page="contact"] .nav-cta{
  justify-self:end;
}

body[data-page="contact"] .nav-cta .btn,
body[data-page="contact"] .mobile-menu .btn{
  min-height:50px;
  padding:12px 24px!important;
  border-color:var(--ct-night)!important;
  background:linear-gradient(115deg,#b23b66,#702778)!important;
  color:#fff!important;
  font-size:.94rem!important;
  box-shadow:5px 6px 0 var(--ct-night)!important;
}

body[data-page="contact"] .site-footer{
  margin-top:0!important;
  border-top:1px solid rgba(237,161,151,.15);
  background:var(--ct-night)!important;
  background-image:none!important;
}

body[data-page="contact"] .site-footer a:focus-visible{
  outline:3px solid var(--ct-peach);
  outline-offset:4px;
}

#page-contact{
  position:relative;
  display:block;
  overflow:clip;
  isolation:isolate;
  background:
    radial-gradient(circle at 92% 8%,rgba(203,152,191,.18),transparent 24rem),
    radial-gradient(circle at 4% 31%,rgba(233,74,9,.11),transparent 28rem),
    radial-gradient(circle at 96% 58%,rgba(208,69,85,.13),transparent 30rem),
    radial-gradient(circle at 8% 83%,rgba(237,161,151,.1),transparent 28rem),
    linear-gradient(180deg,#48194c 0%,#622069 31%,#772873 58%,#642064 78%,#351333 100%)!important;
  color:#fff!important;
}

#page-contact *,
#page-contact *::before,
#page-contact *::after{
  box-sizing:border-box;
}

#page-contact .contact-shell,
#page-contact .contact-content-shell{
  width:100%;
  margin-inline:auto!important;
  padding-inline:var(--ct-gutter)!important;
}

#page-contact .contact-shell{
  max-width:var(--ct-hero-shell)!important;
}

#page-contact .contact-content-shell{
  position:relative;
  z-index:2;
  max-width:var(--ct-content-shell)!important;
  isolation:isolate;
}

#page-contact .contact-content-shell > *{
  position:relative;
  z-index:2;
}

#page-contact :is(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--ct-peach);
  outline-offset:3px;
}

#page-contact :is(h1,h2,h3){
  color:inherit;
  text-wrap:balance;
}

#page-contact p{
  text-wrap:pretty;
}

#page-contact #contact-enquiry{
  scroll-margin-top:calc(var(--ct-nav-height) + 24px);
}

#page-contact .contact-flow-ambient{
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}

#page-contact .contact-flow-ambient span{
  position:absolute;
  display:block;
  width:clamp(340px,48vw,760px);
  aspect-ratio:1;
  border-radius:50%;
  filter:blur(90px);
  opacity:.15;
}

#page-contact .contact-flow-ambient span:nth-child(1){
  top:8%;
  right:-24%;
  background:var(--ct-blush);
}

#page-contact .contact-flow-ambient span:nth-child(2){
  top:48%;
  left:-28%;
  background:var(--ct-coral);
  opacity:.1;
}

#page-contact .contact-flow-ambient span:nth-child(3){
  right:-22%;
  bottom:4%;
  background:var(--ct-peach);
  opacity:.09;
}

#page-contact > :not(.contact-flow-ambient){
  position:relative;
  z-index:2;
}

#page-contact .contact-reveal{
  opacity:1;
  transform:none;
}

#page-contact.contact-motion-ready .contact-reveal{
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:
    opacity .58s ease var(--contact-reveal-delay,0ms),
    transform .72s cubic-bezier(.2,.8,.2,1) var(--contact-reveal-delay,0ms);
}

#page-contact.contact-motion-ready .contact-reveal.is-visible{
  opacity:1;
  transform:none;
}

#page-contact .contact-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 0 16px;
  color:var(--ct-peach);
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.11em;
  line-height:1.2;
  text-transform:uppercase;
}

#page-contact .contact-eyebrow--hero{
  padding:9px 14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,250,248,.09);
  color:#fff;
  backdrop-filter:blur(12px);
}

#page-contact .contact-eyebrow i,
#page-contact .contact-form-kicker i{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
  background:var(--ct-peach);
  box-shadow:0 0 0 5px rgba(237,161,151,.13);
}

#page-contact .contact-btn-primary,
#page-contact .contact-btn-secondary{
  min-height:54px;
  justify-content:center;
  padding:14px 25px!important;
  border-radius:999px!important;
  font-size:.94rem!important;
  font-weight:900!important;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease!important;
}

#page-contact .contact-btn-primary{
  border:2px solid var(--ct-night)!important;
  background:linear-gradient(115deg,var(--ct-coral),var(--ct-red),var(--ct-violet))!important;
  background-size:180% 100%!important;
  color:#fff!important;
  box-shadow:6px 7px 0 var(--ct-night),0 16px 32px rgba(35,10,35,.22)!important;
}

#page-contact .contact-btn-secondary{
  border:1px solid rgba(255,255,255,.28)!important;
  background:rgba(255,250,248,.1)!important;
  color:#fff!important;
  box-shadow:none!important;
  backdrop-filter:blur(12px);
}

@media (hover:hover) and (pointer:fine){
  #page-contact .contact-btn-primary:hover,
  #page-contact .contact-btn-secondary:hover{
    transform:translateY(-3px);
  }

  #page-contact .contact-btn-primary:hover{
    background-position:100% 0!important;
    box-shadow:8px 10px 0 var(--ct-night),0 22px 40px rgba(35,10,35,.26)!important;
  }

  #page-contact .contact-btn-secondary:hover{
    background:rgba(255,250,248,.17)!important;
  }
}

/* Hero and enquiry form */
#page-contact .contact-hero{
  position:relative;
  min-height:calc(100svh - var(--ct-nav-height));
  padding:clamp(54px,5vw,78px) 0 clamp(76px,7vw,108px);
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 83% 18%,rgba(237,161,151,.18),transparent 28rem),
    radial-gradient(circle at 6% 84%,rgba(233,74,9,.13),transparent 24rem),
    linear-gradient(125deg,var(--ct-night) 0%,#66216f 48%,#8f2d68 100%)!important;
  color:#fff;
}

#page-contact .contact-hero::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 74%);
  mask-image:linear-gradient(90deg,#000,transparent 74%);
  pointer-events:none;
}

#page-contact .contact-hero-ambient{
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}

#page-contact .contact-hero-ambient span{
  position:absolute;
  width:clamp(360px,44vw,700px);
  aspect-ratio:1;
  border-radius:46% 54% 64% 36%/54% 42% 58% 46%;
  filter:blur(4px);
  opacity:.13;
}

#page-contact .contact-hero-ambient span:first-child{
  top:-30%;
  right:-10%;
  background:linear-gradient(145deg,var(--ct-blush),var(--ct-plum),var(--ct-violet));
  animation:contactAmbientDrift 12s ease-in-out infinite alternate;
}

#page-contact .contact-hero-ambient span:last-child{
  bottom:-46%;
  left:-14%;
  background:linear-gradient(145deg,var(--ct-peach),var(--ct-coral),var(--ct-red));
  animation:contactAmbientDrift 14s ease-in-out -4s infinite alternate-reverse;
}

@keyframes contactAmbientDrift{
  to{transform:translate3d(24px,-18px,0) rotate(12deg) scale(1.08)}
}

#page-contact .contact-hero-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,.84fr) minmax(560px,1.16fr);
  grid-template-areas:
    "copy form"
    "brief form";
  align-items:start;
  gap:clamp(46px,6vw,96px);
  row-gap:34px;
}

#page-contact .contact-hero-copy{
  grid-area:copy;
  max-width:720px;
  padding-top:clamp(10px,2.5vw,38px);
}

#page-contact .contact-hero h1{
  max-width:780px;
  margin:0;
  color:#fff!important;
  font-size:var(--ct-hero-title)!important;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:.95!important;
}

#page-contact .contact-hero h1 span{
  display:block;
  color:var(--ct-peach);
  text-shadow:0 12px 36px rgba(35,10,35,.24);
}

#page-contact .contact-hero-lead{
  max-width:680px;
  margin:26px 0 0;
  color:#f1deea;
  font-size:var(--ct-body);
  line-height:1.72;
}

#page-contact .contact-hero-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:32px;
}

#page-contact .contact-hero-trust{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:28px 0 0;
  padding:0;
  list-style:none;
}

#page-contact .contact-hero-trust li{
  display:flex;
  align-items:center;
  gap:8px;
  color:#f4e5ef;
  font-family:var(--font-mono);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
}

#page-contact .contact-hero-trust i{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:var(--ct-peach);
  color:var(--ct-night);
  font-size:.64rem;
  font-style:normal;
}

#page-contact .contact-brief-card{
  grid-area:brief;
  max-width:610px;
  margin-top:0;
  padding:22px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:26px 14px 26px 14px;
  background:rgba(255,250,248,.08);
  box-shadow:0 22px 50px rgba(25,5,27,.13);
  backdrop-filter:blur(14px);
}

#page-contact .contact-brief-kicker{
  display:block;
  margin-bottom:14px;
  color:var(--ct-peach);
  font-family:var(--font-mono);
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}

#page-contact .contact-brief-card ol{
  display:grid;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

#page-contact .contact-brief-card li{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  align-items:center;
  gap:11px;
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(35,10,35,.18);
}

#page-contact .contact-brief-card li > span{
  display:grid;
  place-items:center;
  width:38px;
  height:34px;
  border-radius:11px;
  background:var(--ct-peach);
  color:var(--ct-night);
  font-family:var(--font-mono);
  font-size:.59rem;
  font-weight:900;
}

#page-contact .contact-brief-card li p{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:2px;
  margin:0;
}

#page-contact .contact-brief-card li b{
  color:#fff;
  font-size:.78rem;
  line-height:1.3;
}

#page-contact .contact-brief-card li small{
  color:#e7d3e0;
  font-size:.68rem;
  line-height:1.42;
}

#page-contact .contact-form-wrap{
  grid-area:form;
  min-width:0;
}

#page-contact .contact-form-card{
  position:relative;
  padding:clamp(28px,4vw,46px);
  overflow:hidden;
  border:1px solid rgba(58,23,56,.14);
  border-radius:38px 20px 38px 20px;
  background:rgba(255,250,248,.97);
  color:var(--ct-night);
  box-shadow:12px 14px 0 rgba(35,10,35,.82),0 34px 72px rgba(25,5,27,.28);
  backdrop-filter:blur(18px);
}

#page-contact .contact-form-card::before{
  content:"";
  position:absolute;
  right:-120px;
  top:-140px;
  width:360px;
  height:360px;
  border-radius:50%;
  background:linear-gradient(145deg,var(--ct-peach),var(--ct-red),var(--ct-plum));
  opacity:.1;
  pointer-events:none;
}

#page-contact .contact-form-card > *{
  position:relative;
  z-index:2;
}

#page-contact .contact-form-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:26px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(58,23,56,.11);
}

#page-contact .contact-form-kicker{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  color:var(--ct-violet);
  font-family:var(--font-mono);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}

#page-contact .contact-form-heading h2{
  margin:0;
  color:var(--ct-night)!important;
  font-size:clamp(2rem,3vw,3rem);
  letter-spacing:-.035em;
  line-height:1;
}

#page-contact .contact-form-heading p{
  max-width:530px;
  margin:10px 0 0;
  color:#71586e;
  font-size:.82rem;
  line-height:1.5;
}

#page-contact .contact-required-key{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
  padding:8px 10px;
  border:1px solid rgba(58,23,56,.1);
  border-radius:999px;
  background:var(--ct-soft);
  color:#765d72;
  font-family:var(--font-mono);
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

#page-contact .contact-required-key i{
  color:var(--ct-red);
  font-style:normal;
}

#page-contact .contact-honeypot{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

#page-contact .contact-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

#page-contact .contact-form-row--last{
  align-items:start;
}

#page-contact .contact-form-group{
  min-width:0;
  margin:0 0 16px;
}

#page-contact .contact-form-group label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 7px;
  color:var(--ct-night);
  font-size:.72rem;
  font-weight:900;
  line-height:1.25;
}

#page-contact .contact-form-group label > span{
  color:var(--ct-red);
}

#page-contact .contact-form-group label small{
  color:#8b7487;
  font-family:var(--font-mono);
  font-size:.53rem;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}

#page-contact .contact-form-group :is(input,select,textarea){
  width:100%;
  margin:0;
  border:1px solid rgba(58,23,56,.17)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:var(--ct-night)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7)!important;
  font-family:var(--font-body);
  font-size:.86rem;
  font-weight:650;
  line-height:1.4;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

#page-contact .contact-form-group :is(input,select){
  min-height:50px;
  padding:12px 14px;
}

#page-contact .contact-form-group textarea{
  min-height:118px;
  padding:13px 14px;
  resize:vertical;
}

#page-contact .contact-form-group :is(input,textarea)::placeholder{
  color:#a08b9c;
  opacity:1;
}

#page-contact .contact-form-group :is(input,select,textarea):focus{
  border-color:var(--ct-violet)!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(123,45,139,.11)!important;
  outline:0;
}

#page-contact .contact-form-group :is(input,select,textarea):user-invalid{
  border-color:var(--ct-red)!important;
  box-shadow:0 0 0 4px rgba(208,69,85,.1)!important;
}

#page-contact .contact-form-status{
  margin:2px 0 14px;
  padding:12px 14px;
  border:1px solid rgba(58,23,56,.12);
  border-radius:13px;
  background:var(--ct-soft);
  color:var(--ct-night);
  font-size:.76rem;
  font-weight:800;
  line-height:1.45;
}

#page-contact .contact-form-status:empty{
  display:none;
}

#page-contact .contact-form-status.is-pending{
  border-color:rgba(123,45,139,.2);
  background:#f4e9f5;
  color:var(--ct-violet);
}

#page-contact .contact-form-status.is-error{
  border-color:rgba(208,69,85,.28);
  background:#fff0f1;
  color:#9c2638;
}

#page-contact .contact-submit-btn{
  display:flex!important;
  width:100%;
  min-height:56px;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:2px;
  padding:15px 22px!important;
  border:2px solid var(--ct-night)!important;
  border-radius:999px!important;
  background:linear-gradient(115deg,var(--ct-coral),var(--ct-red),var(--ct-violet))!important;
  background-size:180% 100%!important;
  color:#fff!important;
  box-shadow:6px 7px 0 var(--ct-night),0 16px 30px rgba(35,10,35,.18)!important;
  font-size:.94rem!important;
  font-weight:900!important;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;
}

#page-contact .contact-submit-btn:disabled{
  cursor:wait;
  filter:saturate(.55);
  opacity:.72;
}

@media (hover:hover) and (pointer:fine){
  #page-contact .contact-submit-btn:not(:disabled):hover{
    background-position:100% 0!important;
    box-shadow:8px 9px 0 var(--ct-night),0 22px 38px rgba(35,10,35,.22)!important;
    transform:translateY(-2px);
  }
}

#page-contact .contact-form-consent{
  max-width:620px;
  margin:17px auto 0;
  color:#8a7386;
  font-size:.63rem;
  line-height:1.5;
  text-align:center;
}

#page-contact .preference-note{
  grid-column:1/-1;
  margin:0 0 16px!important;
  padding:12px 14px;
  border:1px dashed rgba(123,45,139,.3);
  border-radius:14px;
  background:#f4e9f5;
  color:#694f65;
  font-size:.74rem;
  font-weight:800;
  line-height:1.45;
}

#page-contact .contact-form-success{
  display:grid;
  min-height:440px;
  place-items:center;
  align-content:center;
  padding:30px 10px;
  text-align:center;
}

#page-contact .contact-success-mark{
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  margin:0 auto 22px;
  border-radius:24px 12px 24px 12px;
  background:var(--ct-violet);
  color:#fff;
  font-family:var(--font-mono);
  font-size:.8rem;
  font-weight:900;
  box-shadow:7px 8px 0 var(--ct-night);
}

#page-contact .contact-form-success h3{
  margin:0;
  color:var(--ct-night)!important;
  font-size:clamp(2rem,3.4vw,3.1rem);
  line-height:1.02;
}

#page-contact .contact-form-success p{
  max-width:520px;
  margin:15px auto 0;
  color:#71586e;
  line-height:1.6;
}

#page-contact .contact-form-success small{
  display:block;
  margin-top:16px;
  color:var(--ct-violet);
  font-family:var(--font-mono);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.04em;
}

/* Embedded contact journey */
#page-contact .contact-flow-ribbon{
  z-index:8;
  width:104%;
  margin:-10px -2% -18px;
  overflow:hidden;
  border:0;
  background:linear-gradient(90deg,var(--ct-violet),var(--ct-plum),var(--ct-mauve),var(--ct-red),var(--ct-violet));
  background-size:220% 100%;
  color:#fff;
  box-shadow:0 16px 36px rgba(35,10,35,.16);
  transform:rotate(-.55deg);
}

#page-contact .contact-flow-ribbon-track{
  display:flex;
  align-items:center;
  width:max-content;
  min-height:60px;
  animation:contactRibbonRun 28s linear infinite;
}

#page-contact .contact-flow-ribbon-track span{
  padding-inline:22px;
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
  white-space:nowrap;
}

#page-contact .contact-flow-ribbon-track i{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
  background:var(--ct-peach);
  box-shadow:0 0 0 4px rgba(237,161,151,.11);
}

@keyframes contactRibbonRun{
  to{transform:translateX(-50%)}
}

/* What happens next */
#page-contact .contact-section{
  position:relative;
  margin-top:-1px;
  padding:clamp(76px,8vw,112px) 0;
  color:#fff;
}

#page-contact .contact-section.contact-next,
#page-contact .contact-final-section{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}

#page-contact .contact-section-head{
  max-width:940px;
  margin-bottom:clamp(30px,4vw,46px);
}

#page-contact .contact-section-head--split{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);
  align-items:end;
  gap:clamp(36px,6vw,82px);
  max-width:none;
}

#page-contact .contact-section-head h2{
  margin:0;
  color:#fff!important;
  font-size:var(--ct-section-title)!important;
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.02!important;
}

#page-contact .contact-section-head > p,
#page-contact .contact-section-head--split > p{
  max-width:760px;
  margin:18px 0 0;
  color:#f0dce9;
  font-size:var(--ct-body);
  line-height:1.68;
}

#page-contact .contact-section-head--split > p{
  margin:0 0 4px;
}

#page-contact .contact-next > .contact-content-shell::before{
  content:"";
  position:absolute;
  z-index:0;
  right:-21%;
  top:-3%;
  width:clamp(280px,38vw,520px);
  aspect-ratio:1;
  border-radius:50%;
  background:
    repeating-radial-gradient(
      circle at 50% 50%,
      transparent 0 24px,
      rgba(255,255,255,.05) 25px 27px,
      transparent 28px 42px
    )!important;
  opacity:.68;
  -webkit-mask-image:radial-gradient(circle,#000 0 44%,rgba(0,0,0,.72) 62%,transparent 76%);
  mask-image:radial-gradient(circle,#000 0 44%,rgba(0,0,0,.72) 62%,transparent 76%);
  transform:scaleY(.82) rotate(-10deg);
  pointer-events:none;
}

#page-contact .contact-next > .contact-content-shell::after{
  content:"";
  position:absolute;
  z-index:0;
  top:clamp(20px,4vw,48px);
  right:clamp(18px,4vw,52px);
  width:84px;
  height:84px;
  background-image:radial-gradient(circle,rgba(237,161,151,.82) 0 2px,transparent 3px)!important;
  background-size:18px 18px;
  opacity:.34;
  pointer-events:none;
}

#page-contact .contact-next-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}

#page-contact .contact-next-card{
  --next-accent:var(--ct-coral);
  position:relative;
  display:flex;
  min-width:0;
  min-height:340px;
  flex-direction:column;
  padding:30px 25px 25px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  border-radius:22px 34px 22px 34px;
  background:rgba(255,250,248,.94);
  color:var(--ct-night);
  box-shadow:0 18px 46px rgba(35,10,35,.13),inset 0 5px var(--next-accent);
  backdrop-filter:blur(14px);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease;
}

#page-contact .contact-next-card:nth-child(2){--next-accent:var(--ct-red)}
#page-contact .contact-next-card:nth-child(3){--next-accent:var(--ct-plum)}
#page-contact .contact-next-card:nth-child(4){--next-accent:var(--ct-peach)}

#page-contact .contact-next-card::after{
  content:"";
  position:absolute;
  z-index:0;
  right:-74px;
  top:-86px;
  width:210px;
  height:210px;
  border-radius:50%;
  background:var(--next-accent);
  opacity:.08;
  transition:transform .4s ease;
}

#page-contact .contact-next-card > *{
  position:relative;
  z-index:2;
}

#page-contact .contact-card-index{
  position:absolute;
  right:22px;
  top:21px;
  color:var(--next-accent);
  font-family:var(--font-mono);
  font-size:1.7rem;
  font-weight:900;
  line-height:1;
  opacity:.5;
}

#page-contact .contact-next-mark{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:18px 10px 18px 10px;
  background:var(--next-accent);
  color:#fff;
  font-family:var(--font-mono);
  font-size:1rem;
  font-weight:900;
  box-shadow:5px 6px 0 var(--ct-night);
}

#page-contact .contact-next-card:nth-child(4) .contact-next-mark{
  color:var(--ct-night);
}

#page-contact .contact-next-card h3{
  margin:38px 0 12px;
  color:var(--ct-night)!important;
  font-size:1.42rem;
  line-height:1.08;
}

#page-contact .contact-next-card p{
  margin:0;
  color:#725a70;
  font-size:.89rem;
  line-height:1.58;
}

#page-contact .contact-next-card small{
  display:block;
  margin-top:auto;
  padding-top:24px;
  color:var(--next-accent);
  font-family:var(--font-mono);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.45;
  text-transform:uppercase;
}

#page-contact .contact-next-note{
  max-width:900px;
  margin:28px auto 0;
  color:#ead8e5;
  font-size:.72rem;
  line-height:1.55;
  text-align:center;
}

@media (hover:hover) and (pointer:fine){
  #page-contact .contact-next-card:hover{
    transform:translateY(-9px) rotate(-.35deg);
    box-shadow:0 28px 60px rgba(35,10,35,.2),0 0 0 5px rgba(255,255,255,.06);
  }

  #page-contact .contact-next-card:hover::after{
    transform:scale(1.2);
  }
}

/* Direct contact destination */
#page-contact .contact-final-section{
  position:relative;
  margin-top:-1px;
  padding:0 0 clamp(82px,8vw,112px);
  overflow:hidden;
  isolation:isolate;
}

#page-contact .contact-final{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  align-items:center;
  gap:clamp(34px,6vw,84px);
  padding:clamp(46px,6vw,72px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:42px;
  background:
    radial-gradient(circle at 88% 18%,rgba(237,161,151,.22),transparent 24rem),
    radial-gradient(circle at 8% 90%,rgba(233,74,9,.14),transparent 20rem),
    linear-gradient(125deg,var(--ct-violet) 0%,var(--ct-plum) 46%,var(--ct-mauve) 100%)!important;
  color:#fff;
  box-shadow:12px 14px 0 #210b24,0 34px 72px rgba(35,10,35,.3)!important;
}

#page-contact .contact-final::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  background:linear-gradient(105deg,transparent 12%,rgba(255,255,255,.08) 48%,transparent 72%);
  transform:translateX(-110%);
  animation:contactCtaLight 7s ease-in-out infinite;
  pointer-events:none;
}

@keyframes contactCtaLight{
  0%,62%{transform:translateX(-110%);opacity:0}
  70%{opacity:1}
  92%,100%{transform:translateX(110%);opacity:0}
}

#page-contact .contact-final > *{
  position:relative;
  z-index:2;
}

#page-contact .contact-eyebrow--final{
  color:var(--ct-peach);
}

#page-contact .contact-final h2{
  max-width:700px;
  margin:0;
  color:#fff!important;
  font-size:clamp(2.35rem,4vw,4.1rem);
  line-height:.98;
  letter-spacing:-.04em;
}

#page-contact .contact-final-copy > p{
  max-width:700px;
  margin:20px 0 0;
  color:#f0deea;
  font-size:var(--ct-body);
  line-height:1.65;
}

#page-contact .contact-final-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px 24px;
  margin-top:28px;
}

#page-contact .contact-final-actions .contact-btn-primary{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}

#page-contact .contact-text-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#fff;
  font-weight:900;
  text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.36);
  text-underline-offset:5px;
}

#page-contact .contact-text-link:hover{
  text-decoration-color:#fff;
}

#page-contact .contact-direct-facts{
  display:grid;
  gap:10px;
  margin:0;
}

#page-contact .contact-direct-facts > div{
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:17px 10px 17px 10px;
  background:rgba(255,250,248,.09);
  backdrop-filter:blur(12px);
}

#page-contact .contact-direct-facts dt{
  margin-bottom:5px;
  color:var(--ct-peach);
  font-family:var(--font-mono);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#page-contact .contact-direct-facts dd{
  margin:0;
  color:#fff;
  font-size:.86rem;
  font-weight:900;
  line-height:1.35;
}

/* Responsive */
@media(max-width:1180px) and (min-width:901px){
  body[data-page="contact"] .nav{
    grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);
    gap:20px!important;
  }

  body[data-page="contact"] .brand{
    width:152px!important;
    flex-basis:152px!important;
  }

  body[data-page="contact"] .brand img,
  body[data-page="contact"] .snapgo-logo-img{
    height:78px!important;
    max-width:150px!important;
  }

  body[data-page="contact"] .nav-links{gap:18px!important}
  body[data-page="contact"] .nav-link{font-size:.88rem!important}
  body[data-page="contact"] .nav-cta .btn{padding-inline:18px!important;font-size:.84rem!important}

  #page-contact .contact-hero-grid{
    grid-template-columns:minmax(0,.78fr) minmax(520px,1.22fr);
    gap:38px;
  }

  #page-contact .contact-next-grid{
    grid-template-columns:1fr 1fr;
  }

  #page-contact .contact-next-card{
    min-height:290px;
  }
}

@media(max-width:1020px){
  #page-contact .contact-hero{
    min-height:auto;
    padding-top:54px;
  }

  #page-contact .contact-hero-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "form"
      "brief";
    gap:44px;
  }

  #page-contact .contact-hero-copy{
    max-width:820px;
    margin-inline:auto;
    padding-top:0;
    text-align:center;
  }

  #page-contact .contact-eyebrow--hero,
  #page-contact .contact-hero-actions,
  #page-contact .contact-hero-trust{
    justify-content:center;
    margin-inline:auto;
  }

  #page-contact .contact-hero-lead{
    margin-inline:auto;
  }

  #page-contact .contact-brief-card{
    margin-inline:auto;
    text-align:left;
  }

  #page-contact .contact-form-wrap{
    width:min(780px,100%);
    margin-inline:auto;
  }

  #page-contact .contact-section-head--split{
    grid-template-columns:1fr;
    align-items:start;
    gap:18px;
  }

  #page-contact .contact-section-head--split > p{
    margin:0;
  }

  #page-contact .contact-next-grid{
    grid-template-columns:1fr 1fr;
  }

  #page-contact .contact-next-card{
    min-height:290px;
  }

  #page-contact .contact-final{
    grid-template-columns:1fr;
  }
}

@media(max-width:900px){
  body[data-page="contact"]{
    --ct-nav-height:78px;
    --ct-gutter:20px;
  }

  body[data-page="contact"] .nav{
    display:flex!important;
    min-height:var(--ct-nav-height)!important;
    padding:4px var(--ct-gutter)!important;
  }

  body[data-page="contact"] .brand{
    width:150px!important;
    height:68px;
    flex-basis:150px!important;
  }

  body[data-page="contact"] .brand img,
  body[data-page="contact"] .snapgo-logo-img{
    height:66px!important;
    max-width:145px!important;
  }
}

@media(max-width:680px){
  body[data-page="contact"]{
    --ct-nav-height:72px;
    --ct-gutter:16px;
    --ct-hero-title:clamp(2.75rem,12.8vw,3.75rem);
    --ct-section-title:clamp(2rem,9vw,2.65rem);
    --ct-body:.96rem;
  }

  #page-contact .contact-flow-ambient span{
    width:390px;
    filter:blur(72px);
    opacity:.1;
  }

  #page-contact .contact-next > .contact-content-shell::before{
    width:280px;
    opacity:.44;
  }

  #page-contact .contact-next > .contact-content-shell::after{
    width:64px;
    height:64px;
    background-size:16px 16px;
    opacity:.24;
  }

  body[data-page="contact"] .brand{
    width:136px!important;
    height:62px;
    flex-basis:136px!important;
  }

  body[data-page="contact"] .brand img,
  body[data-page="contact"] .snapgo-logo-img{
    height:60px!important;
    max-width:132px!important;
  }

  #page-contact .contact-hero{
    padding:40px 0 70px;
  }

  #page-contact .contact-hero::after{
    background-size:32px 32px;
  }

  #page-contact .contact-hero h1{
    line-height:.98!important;
  }

  #page-contact .contact-hero-actions{
    flex-direction:column;
  }

  #page-contact .contact-hero-actions .btn{
    width:100%;
  }

  #page-contact .contact-hero-trust{
    display:grid;
    grid-template-columns:1fr;
    width:max-content;
    max-width:100%;
    text-align:left;
  }

  #page-contact .contact-brief-card{
    padding:17px;
  }

  #page-contact .contact-form-card{
    padding:28px 20px;
    border-radius:28px 14px 28px 14px;
    box-shadow:7px 8px 0 rgba(35,10,35,.8),0 24px 48px rgba(25,5,27,.24);
  }

  #page-contact .contact-form-heading{
    flex-direction:column;
    gap:13px;
  }

  #page-contact .contact-form-row{
    grid-template-columns:1fr;
    gap:0;
  }

  #page-contact .contact-form-group :is(input,select,textarea){
    font-size:1rem;
  }

  #page-contact .contact-form-group textarea{
    min-height:130px;
  }

  #page-contact .contact-flow-ribbon{
    width:110%;
    margin:-6px -5% -12px;
    transform:rotate(-.25deg);
  }

  #page-contact .contact-flow-ribbon-track{
    min-height:54px;
  }

  #page-contact .contact-flow-ribbon-track span{
    padding-inline:17px;
    font-size:.64rem;
  }

  #page-contact .contact-section{
    padding:64px 0;
  }

  #page-contact .contact-section-head{
    margin-bottom:28px;
  }

  #page-contact .contact-next-grid{
    grid-template-columns:1fr;
  }

  #page-contact .contact-next-card{
    min-height:280px;
  }

  #page-contact .contact-final-section{
    padding:0 0 82px;
  }

  #page-contact .contact-final{
    padding:38px 24px;
    border-radius:28px;
    box-shadow:7px 8px 0 #210b24,0 24px 50px rgba(35,10,35,.26)!important;
  }

  #page-contact .contact-final-actions{
    align-items:stretch;
    flex-direction:column;
  }

  #page-contact .contact-final-actions .contact-btn-primary{
    width:100%;
    font-size:.78rem!important;
  }

  #page-contact .contact-text-link{
    justify-content:center;
    min-height:48px;
  }
}

@media(max-width:410px){
  #page-contact .contact-brief-card li{
    grid-template-columns:34px minmax(0,1fr);
  }

  #page-contact .contact-brief-card li > span{
    width:34px;
    height:32px;
  }

  #page-contact .contact-form-card{
    padding-inline:17px;
  }
}

@media(prefers-reduced-motion:reduce){
  #page-contact *,
  #page-contact *::before,
  #page-contact *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }

  #page-contact.contact-motion-ready .contact-reveal,
  #page-contact.contact-motion-ready .contact-reveal.is-visible{
    opacity:1!important;
    transform:none!important;
  }
}

@media(forced-colors:active){
  #page-contact .contact-flow-ambient,
  #page-contact .contact-hero-ambient{
    display:none!important;
  }

  #page-contact :is(.contact-brief-card,.contact-form-card,.contact-next-card,.contact-final){
    border:2px solid CanvasText!important;
    box-shadow:none!important;
  }
}

/* Dual partnership enquiry selector and conditional fields. */
#page-contact [hidden]{display:none!important;}

#page-contact .contact-intent{
  min-width:0;
  margin:0 0 22px;
  padding:0;
  border:0;
}

#page-contact .contact-intent legend{
  width:100%;
  margin:0 0 10px;
  color:var(--ct-night);
  font-size:.75rem;
  font-weight:900;
  line-height:1.35;
}

#page-contact .contact-intent legend span{
  float:right;
  color:var(--ct-red);
  font:900 .53rem/1.4 var(--font-mono);
  letter-spacing:.06em;
  text-transform:uppercase;
}

#page-contact .contact-intent-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

#page-contact .contact-intent-option{
  position:relative;
  display:block;
  min-width:0;
  cursor:pointer;
}

#page-contact .contact-intent-option input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}

#page-contact .contact-intent-option > span{
  position:relative;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  grid-template-areas:"index title" "index copy";
  align-items:center;
  column-gap:11px;
  min-height:102px;
  padding:16px;
  border:1px solid rgba(58,23,56,.15);
  border-radius:18px 10px 18px 10px;
  background:#fff;
  color:var(--ct-night)!important;
  box-shadow:0 8px 22px rgba(58,23,56,.06);
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;
}

#page-contact .contact-intent-option > span::after{
  content:"";
  position:absolute;
  top:12px;
  right:12px;
  width:12px;
  height:12px;
  border:2px solid rgba(58,23,56,.25);
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 3px #fff;
}

#page-contact .contact-intent-option b{
  grid-area:index;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:11px 6px 11px 6px;
  background:var(--ct-soft);
  color:var(--ct-violet);
  font:900 .58rem/1 var(--font-mono);
}

#page-contact .contact-intent-option strong{
  grid-area:title;
  padding-right:17px;
  color:var(--ct-night);
  font-size:.82rem;
  line-height:1.28;
}

#page-contact .contact-intent-option small{
  grid-area:copy;
  margin-top:4px;
  color:#826b7f;
  font-size:.66rem;
  line-height:1.4;
}

#page-contact .contact-intent-option input:checked + span{
  border-color:var(--ct-violet);
  background:linear-gradient(145deg,#fff,#f4e9f5);
  box-shadow:0 0 0 3px rgba(123,45,139,.1),6px 7px 0 rgba(58,23,56,.85);
  transform:translate(-2px,-2px);
}

#page-contact .contact-intent-option input:checked + span::after{
  border-color:var(--ct-violet);
  background:var(--ct-violet);
}

#page-contact .contact-intent-option input:focus-visible + span{
  outline:3px solid var(--ct-peach);
  outline-offset:3px;
}

#page-contact .contact-intent-panel{
  margin:4px 0 18px;
  padding:18px 18px 2px;
  border:1px solid rgba(123,45,139,.13);
  border-radius:20px 11px 20px 11px;
  background:linear-gradient(145deg,rgba(244,233,245,.58),rgba(255,240,237,.5));
}

#page-contact .contact-intent-panel--brand{
  border-color:rgba(208,69,85,.18);
  background:
    radial-gradient(circle at 96% 0,rgba(237,161,151,.18),transparent 30%),
    linear-gradient(145deg,rgba(255,240,237,.72),rgba(244,233,245,.58));
}

#page-contact .contact-panel-label{
  margin:0 0 14px;
  color:var(--ct-violet)!important;
  font:900 .62rem/1.3 var(--font-mono);
  letter-spacing:.09em;
  text-transform:uppercase;
}

#page-contact .contact-form-row--single{grid-template-columns:1fr;}

#page-contact .contact-form-group label > .contact-label-text{
  color:inherit;
}

@media(max-width:640px){
  #page-contact .contact-intent-options{grid-template-columns:1fr;}
  #page-contact .contact-intent-panel{padding:16px 13px 1px;}
}

@media(forced-colors:active){
  #page-contact .contact-intent-option > span,
  #page-contact .contact-intent-panel{border:2px solid CanvasText!important;box-shadow:none!important;}
}
