/* Shared by every inner page (linked last, so it wins over each page's own styles):
   one consistent menu, a hero that doesn't fight the headline, readable small text, comfortable tap targets. */

/* ---------- menu (same structure + look as the homepage menu) ---------- */
.gnav{position:sticky;top:0;z-index:60;background:rgba(11,11,13,.82);-webkit-backdrop-filter:saturate(160%) blur(16px);backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid rgba(255,255,255,.08);font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.4;text-align:left}
.gnav *,.gnav *::before,.gnav *::after{box-sizing:border-box}
.gn-in{display:flex;align-items:center;justify-content:space-between;gap:14px;height:56px;max-width:1240px;margin:0 auto;padding:0 24px}
.gn-brand{display:flex;align-items:center;gap:10px;font-family:"Anton",Impact,"Arial Narrow",sans-serif;font-weight:400;font-size:1.15rem;letter-spacing:1px;text-transform:uppercase;color:#fff;text-decoration:none;white-space:nowrap}
.gn-brand img{width:30px;height:30px;background:#fff;border-radius:50%;padding:3px;display:block}
.gn-links{display:flex;align-items:center;gap:15px;list-style:none;margin:0;padding:0}
.gn-links li{margin:0;padding:0}
.gn-links a{font-size:.84rem;font-weight:500;color:#e6e6ea;opacity:.85;text-decoration:none;white-space:nowrap;transition:opacity .15s ease}
.gn-links a:hover,.gn-links a[aria-current=page]{opacity:1;color:#fff}
.gn-links a[aria-current=page]{box-shadow:inset 0 -2px 0 #e2231a}
.gn-links a.gn-cta{border:1.5px solid #e2231a;background:#e2231a;color:#fff;opacity:1;padding:7px 16px;border-radius:999px;font-weight:700;font-size:.82rem;box-shadow:none}
.gn-links a.gn-cta:hover{background:#c81d15}
.gn-has{position:relative}
.gn-has::after{content:"";position:absolute;left:-14px;right:-14px;top:100%;height:22px}
.gn-has>a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:7px;position:relative;top:-2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.gn-sub{list-style:none;margin:0;padding:8px;position:absolute;top:calc(100% + 14px);left:-14px;min-width:210px;background:rgba(14,14,17,.98);border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease,visibility .16s}
.gn-has:hover>.gn-sub,.gn-has:focus-within>.gn-sub{opacity:1;visibility:visible;transform:none}
.gn-links .gn-sub a{display:block;padding:9px 12px;border-radius:9px;font-size:.88rem;opacity:.9;box-shadow:none}
.gn-links .gn-sub a:hover{background:rgba(255,255,255,.08);opacity:1}
.gn-toggle{display:none;background:none;border:0;cursor:pointer;padding:12px 8px;margin-right:-8px}
.gn-toggle span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;transition:.2s}
@media(max-width:860px){
  .gn-toggle{display:block}
  .gn-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(11,11,13,.98);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:10px 24px 22px;border-bottom:1px solid rgba(255,255,255,.12);transform:translateY(-12px);opacity:0;visibility:hidden;transition:transform .25s ease,opacity .25s ease,visibility .25s;max-height:calc(100vh - 56px);overflow-y:auto}
  .gn-links.open{transform:none;opacity:1;visibility:visible}
  .gn-links>li>a:not(.gn-cta){display:block;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:1rem;opacity:1}
  .gn-has{border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:6px}
  .gn-has::after,.gn-has>a::after{display:none}
  .gn-links>li.gn-has>a{border-bottom:0}
  .gn-sub{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;box-shadow:none;padding:0 0 4px 14px;min-width:0}
  .gn-links .gn-sub a{padding:10px 0;font-size:.95rem;opacity:.8;border-radius:0}
  .gn-links .gn-sub a:hover{background:none}
  .gn-links a[aria-current=page]{box-shadow:none}
  .gn-links>li:last-child{margin-top:14px}
  .gn-links a.gn-cta{display:inline-block;padding:12px 22px;font-size:.95rem}
}

/* ---------- hero: keep the red "banda", but move it off the headline ---------- */
.page-hero::before{background:
  linear-gradient(115deg,transparent 76.4%,#fff 76.4% 77%,transparent 77%),
  linear-gradient(115deg,transparent 90.2%,#fff 90.2% 90.8%,transparent 90.8%),
  linear-gradient(115deg,transparent 77%,#e2231a 77% 90.2%,transparent 90.2%)}
.page-hero h1,.page-hero .sub,.hero h1,.hero .sub{text-shadow:0 2px 14px rgba(0,0,0,.55)}
@media(max-width:760px){
  .page-hero::before{opacity:.26}
  .hero::before{opacity:.22}
}

/* ---------- readable small text (all of these pass 4.5:1 contrast on the dark pages) ---------- */
.kicker{color:#ff5a50;font-size:.84rem}
.eyebrow{font-size:.84rem}
.info-card .label{color:#ff5a50;font-size:.78rem}
.f-field>label,.f-field>.group-label{font-size:.84rem}
.f-field input::placeholder,.f-field textarea::placeholder{color:#8d8d95}
.f-note,.form-note{font-size:.9rem}
.drill-tag{font-size:.78rem}

/* ---------- comfortable tap targets on phones ---------- */
@media(max-width:760px){
  .f-field input[type=text],.f-field input[type=email],.f-field input[type=tel],.f-field select{min-height:48px}
  .chip span{display:inline-flex;align-items:center;min-height:44px}
  .consent{min-height:48px}
  .drill-filter{min-height:44px}
  .btn{min-height:46px}
  .site-footer a{display:inline-block;padding:10px 4px}
}

/* ---------- steadier scrolling ---------- */
html{scroll-padding-top:76px}                       /* anchors & scrollIntoView land below the sticky menu */
@media (hover:none){html{scroll-behavior:auto}}      /* phones: jump straight there, no long smooth scroll over loading content */
.f-field,.form-success{scroll-margin-top:12px}

/* ---------- menu: a one-tap Register button on phones ---------- */
.gn-quick{display:none;margin-left:auto;align-items:center;min-height:40px;padding:0 15px;border-radius:999px;background:#e2231a;color:#fff;font-weight:700;font-size:.84rem;line-height:1;text-decoration:none;white-space:nowrap}
.gn-quick:hover{background:#c81d15}
@media(max-width:860px){
  .gn-in{padding:0 14px 0 16px;gap:8px}
  .gn-brand{font-size:1rem;gap:8px}
  .gn-quick{display:inline-flex}
  .gn-toggle{margin-right:-6px}
  .gn-links{overscroll-behavior:contain}
  .gn-links>li>a[aria-current=page]:not(.gn-cta){color:#fff;font-weight:700;border-left:3px solid #e2231a;padding-left:12px}
  .gn-links .gn-sub a[aria-current=page]{color:#fff;font-weight:700;opacity:1}
}
@media(max-width:350px){.gn-brand span{display:none}}

/* ---------- registration pages: "3 steps", step headings, help line ---------- */
.steps{list-style:none;margin:22px 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.steps li{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:6px 14px 6px 6px;font-weight:700;font-size:.9rem;line-height:1.2;color:#fff}
.steps b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e2231a;color:#fff;font-size:.8rem;font-weight:800;flex:none}
.help-line{margin:16px 0 0;font-size:.92rem;color:#e6e6ea}
.help-line a{color:#fff;font-weight:700}
.f-step{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin:10px 0 -6px;padding-top:6px;font-family:"Anton",Impact,"Arial Narrow",sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.5px;font-size:1.2rem;line-height:1.1;color:#fff;border-top:1px solid rgba(255,255,255,.12)}
.f-step:first-child{margin-top:0;padding-top:0;border-top:0}
.f-step span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e2231a;color:#fff;font-family:"Inter",system-ui,sans-serif;font-size:.85rem;font-weight:800;flex:none}
.f-fail{grid-column:1/-1;margin:0;padding:14px 16px;border:1px solid rgba(226,35,26,.6);background:rgba(226,35,26,.12);border-radius:12px;color:#fff;font-weight:600;font-size:.95rem}
.f-fail a{color:#fff;font-weight:800}
.pay-next{margin:26px auto 0;max-width:640px;text-align:left}
.pay-next h4{font-family:"Anton",Impact,"Arial Narrow",sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.5px;font-size:1.25rem;margin:0 0 4px;color:#fff;text-align:center}
.pay-next .bank-box{margin:14px auto 0}
.pay-next p{text-align:center;margin:14px 0 0}
.pay-next a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:#e2231a;text-underline-offset:3px}

/* tighter, easier-to-scan layout on phones (register + St Elizabeth's) */
@media(max-width:640px){
  .gn-form-page .page-hero{padding:40px 0 44px}
  .gn-form-page main>section{padding-top:40px;padding-bottom:40px}
  .gn-form-page .info-grid{gap:8px}
  .gn-form-page .info-card{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:14px 16px}
  .gn-form-page .info-card .label{margin:0;flex:none}
  .gn-form-page .info-card .value{text-align:right;font-size:1rem}
  .gn-form-page .dates{gap:8px}
  .gn-form-page .price-card td{padding:11px 16px}
  .gn-form-page .note-box{padding:18px}
}

/* ---------- footer: real links on every page (no dead ends), plus a way to ask for help ---------- */
.gn-foot{position:relative;background:#000;color:#c9c9cf;margin:0;padding:40px 0 34px;border-top:1px solid rgba(255,255,255,.12);text-align:center;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:.9rem;font-weight:400;line-height:1.5}
.gn-foot::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#e2231a}
.gn-foot-in{max-width:1040px;margin:0 auto;padding:0 22px}
.gn-foot-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;border-radius:999px;background:#e2231a;color:#fff;font-weight:700;font-size:1rem;text-decoration:none}
.gn-foot-nav{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;max-width:440px;margin:22px auto 0;text-align:left}
.gn-foot-cta+.gn-foot-nav{margin-top:26px}
.gn-foot-nav a{display:block;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);color:#e6e6ea;text-decoration:none;font-weight:600;font-size:.92rem}
.gn-foot-nav a:hover{color:#fff;border-bottom-color:#e2231a}
.gn-foot-help{margin:22px 0 0;color:#c9c9cf}
.gn-foot-help a{display:inline-block;padding:8px 2px;color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:#e2231a;text-underline-offset:3px}
.gn-foot-small{margin:10px 0 0;color:#8d8d95;font-size:.82rem}
@media(min-width:760px){
  .gn-foot-nav{grid-template-columns:repeat(4,auto);justify-content:center;gap:2px 34px;max-width:none;text-align:center}
  .gn-foot-nav a{border-bottom:0;padding:8px 0}
}
