@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

/* ============================================================================
   SWIMSHOW — public registration forms
   ----------------------------------------------------------------------------
   Shared by buyer, press and exhibitor registration.
   Tokens are copied from swimshow-theme.css (the admin portal) so the public
   forms and the admin portal stay visually identical. If a token changes
   there, change it here too.
   ============================================================================ */

:root{
  --ss-ink:        #15172B;
  --ss-ink-soft:   #5B5F76;
  --ss-ink-faint:  #9A9EB2;

  --ss-navy:       #0C1430;
  --ss-navy-deep:  #070C20;
  --ss-navy-line:  rgba(255,255,255,.09);

  --ss-sand:       #FBF3EC;
  --ss-sand-2:     #F6EADF;
  --ss-sand-line:  #ECDFD2;
  --ss-card:       #FFFFFF;

  --ss-coral:      #FF7A45;
  --ss-pink:       #FF2E74;
  --ss-magenta:    #B12BD6;
  --ss-gradient:   linear-gradient(118deg, var(--ss-coral) 0%, var(--ss-pink) 52%, var(--ss-magenta) 100%);

  --ss-ocean:      #2456E8;
  --ss-green:      #0F9F73;
  --ss-green-bg:   #E4F7EF;

  --ss-shadow-card: 0 1px 2px rgba(21,23,43,.04), 0 12px 28px -16px rgba(21,23,43,.18);
  --ss-shadow-pop:  0 8px 22px -10px rgba(255,46,116,.55);

  --ss-font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --ss-font-body:    "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;

  --ss-maxw: 1000px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }

body.ss-page{
  margin:0; background:var(--ss-sand); color:var(--ss-ink);
  font-family:var(--ss-font-body); font-size:15.5px; line-height:1.55; font-weight:400;
  -webkit-font-smoothing:antialiased;
}
.ss-page h1,.ss-page h2,.ss-page h3{ font-family:var(--ss-font-display); margin:0; }

/* ===== TOP BAR — mirrors .main-header ==================================== */
.ss-masthead{ background:var(--ss-gradient); box-shadow:0 8px 22px -10px rgba(255,46,116,.45); }
.ss-masthead__in{
  max-width:var(--ss-maxw); margin:0 auto; padding:15px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.ss-wordmark{ display:inline-flex; align-items:center; line-height:0; }
.ss-wordmark img{
  height:34px; width:auto; display:block;
  /* the asset is white artwork on transparent — it sits on the gradient bar */
}
@media (max-width:760px){ .ss-wordmark img{ height:27px; } }
.ss-masthead__tag{
  font-size:12.5px; font-weight:600; letter-spacing:.05em;
  color:rgba(255,255,255,.82); text-transform:uppercase;
}

/* ===== HERO — mirrors .content-header ==================================== */
.ss-hero{
  background:linear-gradient(180deg, var(--ss-sand-2), var(--ss-sand));
  border-bottom:1px solid var(--ss-sand-line); position:relative;
}
.ss-hero__in{ max-width:var(--ss-maxw); margin:0 auto; padding:34px 24px 30px; }
.ss-hero::after{
  content:""; position:absolute; left:24px; right:24px; bottom:0; height:3px;
  background:var(--ss-gradient); border-radius:3px; max-width:calc(var(--ss-maxw) - 48px);
  margin:0 auto;
}
.ss-hero h1{
  font-weight:800; font-size:clamp(30px,5vw,44px); letter-spacing:-.015em;
  line-height:1.05; color:var(--ss-ink);
}
.ss-lede{ margin:12px 0 0; max-width:60ch; font-size:16px; color:var(--ss-ink-soft); }

/* ===== SECTIONS ========================================================== */
.ss-wrap{ max-width:var(--ss-maxw); margin:0 auto; padding:0 24px; }
.ss-section{ margin-top:30px; }
.ss-section__head{ display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.ss-section__head::before{
  content:""; width:7px; height:22px; border-radius:4px; background:var(--ss-gradient); flex:none;
}
.ss-section__title{
  font-weight:700; font-size:20px; letter-spacing:-.01em; color:var(--ss-ink);
}
.ss-section__note{ font-size:13px; color:var(--ss-ink-soft); margin-left:auto; font-weight:500; }

.ss-card{
  background:var(--ss-card); border:1px solid var(--ss-sand-line);
  border-radius:18px; padding:26px 24px; box-shadow:var(--ss-shadow-card);
}

/* ===== NEW vs RETURNING fork — mirrors .small-box ======================== */
.ss-fork{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.ss-forkcard{
  position:relative; display:block; text-align:left; width:100%;
  background:#fff; border:1px solid var(--ss-sand-line); border-radius:16px;
  padding:22px 24px 20px; cursor:pointer; overflow:hidden;
  font-family:var(--ss-font-body); color:var(--ss-ink); text-decoration:none;
  box-shadow:var(--ss-shadow-card);
  transition:transform .18s ease, box-shadow .24s ease, border-color .18s ease;
}
.ss-forkcard::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:var(--acc, var(--ss-pink)); z-index:2;
}
.ss-forkcard:hover{
  transform:translateY(-3px); text-decoration:none; color:var(--ss-ink);
  box-shadow:0 1px 2px rgba(21,23,43,.04),
             0 16px 34px -16px rgba(255,46,116,.32),
             0 12px 26px -16px rgba(255,122,69,.30);
}
.ss-forkcard:focus-visible{ outline:3px solid var(--ss-pink); outline-offset:3px; }
.ss-forkcard.is-active{
  border-color:transparent;
  background:linear-gradient(#fff,#fff) padding-box, var(--ss-gradient) border-box;
  border:2px solid transparent;
  box-shadow:0 0 0 4px rgba(255,46,116,.12), var(--ss-shadow-pop);
}
.ss-forkcard__k{
  font-family:var(--ss-font-display); font-weight:800; font-size:19px;
  letter-spacing:-.01em; display:block;
}
.ss-forkcard__d{
  font-size:13.5px; color:var(--ss-ink-soft); margin-top:5px; display:block;
}
.ss-forkcard__go{
  display:inline-flex; align-items:center; gap:6px; margin-top:12px;
  font-weight:700; font-size:13.5px; color:var(--acc, var(--ss-pink));
}
.ss-forkcard.is-new{ --acc:var(--ss-pink); }
.ss-forkcard.is-returning{ --acc:var(--ss-ocean); }

/* the form stays out of the way until the fork is answered */
#ss-formzone[hidden]{ display:none; }

/* ===== GOOD TO KNOW strip =============================================== */
.ss-notes{
  list-style:none; margin:16px 0 0; padding:0;
  display:grid; gap:9px; font-size:13.5px; color:var(--ss-ink-soft);
}
.ss-notes li{ position:relative; padding-left:22px; }
.ss-notes li::before{
  content:""; position:absolute; left:0; top:7px; width:7px; height:7px;
  border-radius:50%; background:var(--ss-gradient);
}

/* ===== SHOW CARDS ======================================================= */
.ss-shows{ display:grid; gap:12px; }
.ss-shows__year{
  font-family:var(--ss-font-display); font-weight:700; font-size:11.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--ss-ink-soft);
  margin:10px 0 0;
}
.ss-shows__year:first-child{ margin-top:0; }
.ss-showcard{ position:relative; display:block; cursor:pointer; }
.ss-showcard input{ position:absolute; opacity:0; width:1px; height:1px; }
.ss-showcard__body{
  display:flex; align-items:center; gap:16px;
  background:#fff; border:2px solid var(--ss-sand-line); border-radius:14px;
  padding:16px 18px;
  transition:border-color .18s ease, box-shadow .22s ease, transform .16s ease;
}
.ss-showcard:hover .ss-showcard__body{
  border-color:#e3c9b7; transform:translateY(-2px);
  box-shadow:0 6px 18px -10px rgba(255,122,69,.45);
}
.ss-showcard input:focus-visible + .ss-showcard__body{
  outline:3px solid var(--ss-pink); outline-offset:3px;
}
.ss-showcard input:checked + .ss-showcard__body{
  border-color:transparent;
  background:linear-gradient(#fff,#fff) padding-box, var(--ss-gradient) border-box;
  box-shadow:0 0 0 4px rgba(255,46,116,.12), 0 10px 26px -10px rgba(255,122,69,.40);
}
.ss-showcard__mark{
  width:26px; height:26px; border-radius:9px; flex:none;
  border:2px solid var(--ss-sand-line); display:grid; place-items:center;
  transition:background .18s ease, border-color .18s ease;
}
.ss-showcard input:checked + .ss-showcard__body .ss-showcard__mark{
  background:var(--ss-gradient); border-color:transparent;
}
.ss-showcard__mark svg{ opacity:0; transition:opacity .16s ease; }
.ss-showcard input:checked + .ss-showcard__body .ss-showcard__mark svg{ opacity:1; }
.ss-showcard__season{
  font-family:var(--ss-font-display); font-weight:700; font-size:16.5px;
  letter-spacing:-.01em; display:block;
}
.ss-showcard__dates{ font-size:13.5px; color:var(--ss-ink-soft); margin-top:1px; display:block; }
.ss-showcard__dates.is-tba{ color:var(--ss-ink-faint); font-style:italic; }
.ss-showcard__flag{
  margin-left:auto; font-size:11px; letter-spacing:.03em; font-weight:700;
  color:var(--ss-ocean); background:#E7EEFE; padding:5px 11px; border-radius:999px;
  white-space:nowrap;
}
.ss-history{
  margin-top:18px; padding-top:16px; border-top:1px solid var(--ss-sand-line);
  font-size:13.5px; color:var(--ss-ink-soft);
}
.ss-history strong{ color:var(--ss-ink); font-weight:700; }

/* ===== FIELDS — mirrors .form-control =================================== */
.ss-grid{ display:grid; gap:22px 20px; grid-template-columns:repeat(2,1fr); }
.ss-field{ display:flex; flex-direction:column; }
.ss-field--full{ grid-column:1/-1; }
.ss-field label{
  font-weight:600; font-size:13.5px; letter-spacing:.005em;
  color:var(--ss-ink); margin-bottom:8px; display:inline-block;
}
.ss-hint{ font-size:12.5px; color:var(--ss-ink-faint); margin:-4px 0 8px; }
.ss-req{ color:var(--ss-pink); font-size:13px; margin-left:2px; }

.ss-field input[type=text],
.ss-field input[type=email],
.ss-field input[type=tel],
.ss-field select,
.ss-field textarea{
  font-family:var(--ss-font-body);
  height:48px; padding:11px 16px; border-radius:14px;
  border:2px solid var(--ss-sand-line);
  background:#fff; color:var(--ss-ink); font-size:14.5px; width:100%;
  box-shadow:none;
  transition:border-color .18s ease, box-shadow .22s ease, background .18s ease;
}
.ss-field textarea{ height:auto; min-height:108px; padding-top:13px; border-radius:16px; resize:vertical; }
.ss-field input::placeholder,.ss-field textarea::placeholder{ color:var(--ss-ink-faint); }

.ss-field input:hover,.ss-field select:hover,.ss-field textarea:hover{
  border-color:#e3c9b7; box-shadow:0 6px 18px -10px rgba(255,122,69,.45);
}
.ss-field input:focus,.ss-field select:focus,.ss-field textarea:focus{
  border-color:transparent; outline:0;
  background:linear-gradient(#fff,#fff) padding-box, var(--ss-gradient) border-box;
  box-shadow:0 0 0 4px rgba(255,46,116,.12),
             0 10px 26px -8px rgba(255,122,69,.40),
             0 12px 34px -10px rgba(177,43,214,.30);
}
.ss-field select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding-right:40px; cursor:pointer;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF2E74' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E") right 15px center no-repeat;
}
.ss-field select:focus{
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23FF2E74' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E") right 15px center no-repeat padding-box,
             linear-gradient(#fff,#fff) padding-box,
             var(--ss-gradient) border-box;
}

/* jquery.validate output */
.ss-field input.error,.ss-field select.error,.ss-field textarea.error{ border-color:#E5484D !important; }
.ss-field input.error:focus,.ss-field textarea.error:focus{
  border-color:#E5484D !important; background:#fff !important;
  box-shadow:0 0 0 3px rgba(229,72,77,.14) !important;
}
label.error{ color:#E5484D; font-weight:500; font-size:12.5px; margin-top:6px; display:block; }

/* ===== PILLS (store type) =============================================== */
.ss-pills{ display:flex; flex-wrap:wrap; gap:10px; }
.ss-pill{ position:relative; }
.ss-pill input{ position:absolute; opacity:0; width:1px; height:1px; }
.ss-pill span{
  display:inline-block; padding:11px 22px; border-radius:999px; cursor:pointer;
  border:2px solid var(--ss-sand-line); background:#fff;
  font-size:14px; font-weight:600; color:var(--ss-ink-soft);
  transition:all .18s ease;
}
.ss-pill:hover span{ border-color:#e3c9b7; color:var(--ss-ink); box-shadow:0 6px 18px -10px rgba(255,122,69,.45); }
.ss-pill input:focus-visible + span{ outline:3px solid var(--ss-pink); outline-offset:3px; }
.ss-pill input:checked + span{
  background:var(--ss-gradient); color:#fff; border-color:transparent;
  box-shadow:var(--ss-shadow-pop);
}

/* ===== SUBMIT — mirrors .btn-primary ==================================== */
.ss-submitbar{
  margin:26px 0 70px; padding-top:22px; border-top:1px solid var(--ss-sand-line);
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.ss-btn{
  font-family:var(--ss-font-body); font-weight:700; font-size:15px;
  color:#fff; background:var(--ss-gradient); border:0; border-radius:13px;
  padding:13px 34px; cursor:pointer; box-shadow:var(--ss-shadow-pop);
  transition:transform .15s ease, box-shadow .2s ease, filter .15s ease;
}
.ss-btn:hover{
  transform:translateY(-1px); filter:saturate(1.06) brightness(1.02);
  box-shadow:0 18px 38px -12px rgba(255,46,116,.60);
}
.ss-btn:focus-visible{ outline:0; box-shadow:0 0 0 4px rgba(255,46,116,.18), var(--ss-shadow-pop); }
.ss-btn:disabled,.ss-btn.disabled{ opacity:.45; cursor:not-allowed; transform:none; filter:none; }
.ss-status{ font-size:13.5px; color:var(--ss-ink-soft); font-weight:600; }
.ss-status b{ color:var(--ss-ink); }

.ss-btn-quiet{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--ss-sand-2); color:var(--ss-ink); border:1.5px solid var(--ss-sand-line);
  border-radius:13px; padding:11px 20px; font-weight:700; font-size:13.5px;
  cursor:pointer; text-decoration:none;
  transition:background .16s ease, transform .15s ease;
}
.ss-btn-quiet:hover{ background:#efe2d5; transform:translateY(-1px); color:var(--ss-ink); text-decoration:none; }

/* ===== INLINE ERROR ===================================================== */
.ss-err{
  display:none; margin-top:14px; font-size:13.5px; color:#E5484D; font-weight:600;
  background:rgba(229,72,77,.07); border-left:4px solid #E5484D;
  padding:12px 15px; border-radius:0 12px 12px 0;
}
.ss-err.is-visible{ display:block; }

/* ===== FOOTER — mirrors .main-footer ==================================== */
.ss-foot{
  background:var(--ss-sand); border-top:1px solid var(--ss-sand-line);
  color:var(--ss-ink-soft); font-size:13px; padding:18px 24px; text-align:center;
}
.ss-foot::before{
  content:""; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:var(--ss-gradient); margin-right:9px; vertical-align:middle;
}
.ss-foot a{ color:var(--ss-pink); font-weight:600; text-decoration:none; }
.ss-foot a:hover{ text-decoration:underline; }

/* ===== RESPONSIVE ======================================================= */
@media (max-width:760px){
  .ss-hero__in{ padding:26px 20px 24px; }
  .ss-wrap{ padding:0 20px; }
  .ss-card{ padding:20px 18px; border-radius:16px; }
  .ss-grid{ grid-template-columns:1fr; gap:18px; }
  .ss-fork{ grid-template-columns:1fr; }
  .ss-section__note{ display:none; }
  .ss-showcard__flag{ display:none; }
  .ss-submitbar{ flex-direction:column; align-items:stretch; }
  .ss-btn{ width:100%; }
  .ss-status{ text-align:center; }
}
@media (prefers-reduced-motion:reduce){
  .ss-page *{ transition:none !important; animation:none !important; }
}

/* ============================================================================
   RETURNING ATTENDEE  (/letsmanage/auth)
   Centred card on the sunset wash, mirroring the admin login page.
   ============================================================================ */
body.ss-auth{
  background:radial-gradient(120% 85% at 50% -10%, #FFE7DB 0%, var(--ss-sand) 46%, var(--ss-sand-2) 100%);
  min-height:100vh; display:flex; flex-direction:column;
}
.ss-auth__stage{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:44px 20px 56px;
}
.ss-authcard{
  position:relative; width:100%; max-width:440px;
  background:#fff; border-radius:20px; padding:34px 32px 28px;
  box-shadow:0 30px 70px -28px rgba(255,46,116,.35), 0 16px 40px -22px rgba(7,12,32,.30);
}
.ss-authcard::before{
  content:""; position:absolute; top:0; left:0; right:0; height:6px;
  background:var(--ss-gradient); border-radius:20px 20px 0 0;
}
.ss-authcard__h{
  font-family:var(--ss-font-display); font-weight:800; font-size:26px;
  letter-spacing:-.015em; color:var(--ss-ink); margin:0 0 8px;
}
.ss-authcard__p{ font-size:14.5px; color:var(--ss-ink-soft); margin:0 0 22px; }
.ss-authcard__p b{ color:var(--ss-ink); font-weight:700; overflow-wrap:anywhere; }
.ss-authcard__foot{
  margin:20px 0 0; padding-top:18px; border-top:1px solid var(--ss-sand-line);
  font-size:13.5px; color:var(--ss-ink-soft); text-align:center;
}
.ss-authcard__foot a{ color:var(--ss-pink); font-weight:700; text-decoration:none; }
.ss-authcard__foot a:hover{ text-decoration:underline; }

/* step indicator */
.ss-steps{
  list-style:none; display:flex; gap:10px; margin:0 0 24px; padding:0;
  font-size:12.5px; font-weight:600; color:var(--ss-ink-faint);
}
.ss-step{ display:flex; align-items:center; gap:8px; }
.ss-step + .ss-step::before{
  content:""; width:18px; height:1.5px; background:var(--ss-sand-line); margin-right:2px;
}
.ss-step span{
  width:22px; height:22px; border-radius:50%; display:grid; place-items:center;
  background:var(--ss-sand-2); color:var(--ss-ink-faint); font-size:11.5px; font-weight:700;
}
.ss-step.is-current{ color:var(--ss-ink); }
.ss-step.is-current span{ background:var(--ss-gradient); color:#fff; box-shadow:var(--ss-shadow-pop); }
.ss-step.is-done span{ background:var(--ss-green-bg); color:var(--ss-green); }

/* block button + one-time-code input */
.ss-btn--block{ width:100%; margin-top:4px; padding:14px; font-size:15px; }
.ss-code{
  font-family:var(--ss-font-display) !important; font-weight:700 !important;
  font-size:20px !important; letter-spacing:.22em; text-align:center;
}

/* inline status line under each step */
.ss-authmsg{ margin:12px 0 0; font-size:13.5px; color:var(--ss-ink-soft); min-height:1px; }
.ss-authmsg.is-error{ color:#E5484D; font-weight:600; }

.ss-authnote{ margin:22px 0 0; font-size:13px; color:var(--ss-ink-soft); text-align:center; }
.ss-authnote a{ color:var(--ss-pink); font-weight:600; text-decoration:none; }

@media (max-width:520px){
  .ss-authcard{ padding:28px 22px 24px; border-radius:18px; }
  .ss-authcard__h{ font-size:23px; }
}

/* ============================================================================
   SWEETALERT2 DIALOGS
   Ported from swimshow-theme.css so the public forms match the admin portal.
   The pages set confirmButtonColor from JS in places, so the confirm button
   background needs !important to win.
   ============================================================================ */
.swal2-container{ background:rgba(7,12,32,.55) !important; }

.swal2-popup{
  border-radius:22px !important;
  padding:30px 30px 26px !important;
  background:#fff !important;
  font-family:var(--ss-font-body) !important;
  box-shadow:0 30px 70px -28px rgba(7,12,32,.55),
             0 12px 30px -18px rgba(255,46,116,.30) !important;
}
.swal2-title{
  font-family:var(--ss-font-display) !important;
  font-weight:800 !important; font-size:24px !important;
  color:var(--ss-ink) !important; margin-top:6px !important;
}
.swal2-html-container,
.swal2-content{
  font-family:var(--ss-font-body) !important;
  color:var(--ss-ink-soft) !important; font-size:15px !important;
}

.swal2-actions{ gap:12px !important; margin-top:22px !important; }
.swal2-styled{
  border-radius:13px !important;
  padding:12px 28px !important;
  font-family:var(--ss-font-body) !important;
  font-weight:700 !important; font-size:14.5px !important;
  box-shadow:none !important;
  transition:transform .15s ease, box-shadow .2s ease, filter .15s ease !important;
}
.swal2-styled:focus{ box-shadow:0 0 0 4px rgba(255,46,116,.18) !important; outline:0 !important; }

.swal2-styled.swal2-confirm{
  background:var(--ss-gradient) !important;
  background-image:var(--ss-gradient) !important;
  color:#fff !important; border:0 !important;
}
.swal2-styled.swal2-confirm:hover{
  transform:translateY(-1px) !important; filter:saturate(1.08) brightness(1.02) !important;
  box-shadow:0 12px 26px -10px rgba(255,46,116,.50) !important;
}
.swal2-styled.swal2-cancel{
  background:var(--ss-sand-2) !important; color:var(--ss-ink) !important;
  border:1.5px solid var(--ss-sand-line) !important;
}
.swal2-styled.swal2-cancel:hover{
  background:#efe2d5 !important; transform:translateY(-1px) !important;
}

.swal2-icon.swal2-warning{ border-color:rgba(255,122,69,.5) !important; color:var(--ss-coral) !important; }
.swal2-icon.swal2-error{ border-color:rgba(255,46,116,.45) !important; }
.swal2-icon.swal2-error [class^='swal2-x-mark-line']{ background-color:var(--ss-pink) !important; }
.swal2-icon.swal2-success{ border-color:rgba(15,159,115,.35) !important; }
.swal2-icon.swal2-success [class^='swal2-success-line']{ background-color:var(--ss-green) !important; }
.swal2-icon.swal2-success .swal2-success-ring{ border-color:rgba(15,159,115,.35) !important; }
.swal2-icon.swal2-info{ border-color:rgba(36,86,232,.35) !important; color:var(--ss-ocean) !important; }
