
:root{
  --navy:#061b3d; --blue:#0758b8; --ice2:#dff6ff; --frost:#f4fbff;
  --muted:#607086; --border:#d8e8f2; --yellow:#ffd429; --shadow:0 18px 45px rgba(6,27,61,.16);
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--navy);background:linear-gradient(180deg,#fff 0%,var(--frost) 100%)}
.wrap{width:min(1180px,calc(100% - 30px));margin:0 auto}
header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);border-bottom:1px solid var(--border)}
.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{display:flex;align-items:center;gap:14px;color:var(--navy);text-decoration:none;font-weight:900;text-transform:uppercase}
.brand img{height:54px;border-radius:10px;background:white}
.brand small{display:block;color:var(--muted);font-size:12px;text-transform:none}
.menu{display:flex;gap:10px;flex-wrap:wrap}
.menu a{padding:10px 15px;border-radius:999px;text-decoration:none;font-weight:900;color:var(--navy);background:white;border:1px solid var(--border)}
.menu a:hover,.menu a.active{background:var(--blue);color:white}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border-radius:999px;background:var(--blue);color:white;text-decoration:none;font-weight:900;border:0;cursor:pointer}
.btn.light{background:white;color:var(--navy);border:1px solid var(--border)}
.btn.admin{background:#eef7ff;color:var(--blue);border:1px solid var(--border)}
.btn.delete{background:#b00020}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.badge{display:inline-flex;width:max-content;padding:8px 14px;border-radius:999px;background:var(--ice2);color:var(--blue);font-weight:900}
.badge.past{background:#fff8e6;color:#8a5a00;border:1px solid var(--yellow)}
.card,.page-card{background:white;border:1px solid var(--border);border-radius:30px;box-shadow:var(--shadow)}
.page-card{padding:34px}
.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.event-card{overflow:hidden;display:flex;flex-direction:column}
.event-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#eaf0f8}
.event-content{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1}
.event-content h3{margin:0;font-size:30px;color:var(--navy)}
.event-content p{margin:0;color:var(--muted);line-height:1.5}
.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0}
.meta{background:#f7fbff;border:1px solid var(--border);border-radius:16px;padding:12px;text-align:center;font-weight:900}
.meta small{display:block;color:var(--muted);font-weight:700}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.form-grid .full{grid-column:1/-1}
label{display:block;font-weight:900;color:var(--navy)}
input,select,textarea{width:100%;margin-top:7px;padding:12px;border:1px solid var(--border);border-radius:14px;font-size:16px}
.hp{position:absolute;left:-9999px}
.capacity-box{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:0 0 22px}
.capacity-item{padding:16px;border-radius:18px;background:#f6f9fd;border:1px solid var(--border)}
.capacity-number{font-size:26px;font-weight:900;color:var(--blue)}
table{width:100%;border-collapse:collapse;background:white;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
th,td{padding:10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;vertical-align:top}
th{background:var(--navy);color:white}
tr:last-child td{border-bottom:0}
footer{margin-top:36px;padding:28px 0 42px;color:var(--muted);text-align:center}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-bottom:44px}
.gallery-card button{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}
.gallery-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(2,10,24,.92);padding:24px}
.lightbox.open{display:flex}
.lightbox-inner{width:min(1200px,100%);height:min(86vh,820px);display:grid;grid-template-rows:auto 1fr auto;gap:12px}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:white}
.lightbox-close{border:0;background:white;color:var(--navy);border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer}
.lightbox-stage{position:relative;display:grid;place-items:center;min-height:0}
.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;background:white}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:var(--navy);font-size:30px;font-weight:900;cursor:pointer}
.lightbox-prev{left:8px}.lightbox-next{right:8px}
.lightbox-bottom{text-align:center;color:white;font-weight:900}
@media(max-width:900px){
  .event-grid,.hero-grid{grid-template-columns:1fr!important}
  .nav{align-items:flex-start;flex-direction:column;padding:14px 0}
  table{display:block;overflow-x:auto}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){.form-grid,.capacity-box,.meta-grid,.gallery-grid{grid-template-columns:1fr}}


.age-groups{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin:8px 0 12px;
}
.age-item{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:12px;
  font-weight:900;
}
.age-item small{
  display:block;
  color:var(--muted);
  font-weight:700;
  margin-top:4px;
}
@media(max-width:760px){
  .age-groups{grid-template-columns:1fr}
}



.consent-row{
  display:flex !important;
  gap:10px;
  align-items:flex-start;
}
.consent-row input[type="checkbox"]{
  width:auto !important;
  min-width:18px;
  height:18px;
  margin-top:4px;
}



.trainer-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:18px;
}
.trainer-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:20px;
  padding:18px;
}
.trainer-card strong{
  display:block;
  font-size:18px;
  color:var(--navy);
}
.trainer-card span{
  display:block;
  color:var(--muted);
  margin-top:5px;
}
@media(max-width:900px){
  .trainer-grid{grid-template-columns:1fr}
}



.access-badge{
  display:inline-flex;
  width:max-content;
  padding:7px 13px;
  border-radius:999px;
  font-weight:900;
  font-size:14px;
  margin-top:6px;
}
.access-badge.public{
  background:#eaf7ff;
  color:#0758b8;
  border:1px solid #b9def7;
}
.access-badge.invite{
  background:#fff5db;
  color:#8a5a00;
  border:1px solid #ffd429;
}
.invite-warning{
  padding:14px 16px;
  border-radius:18px;
  background:#fff8e6;
  border:1px solid #ffd429;
  color:#6f4700;
  font-weight:900;
  margin:0 0 18px;
}


/* detail sync */
.access-badge{
  display:inline-flex;
  width:max-content;
  padding:7px 13px;
  border-radius:999px;
  font-weight:900;
  font-size:14px;
  margin-top:6px;
}
.access-badge.public{
  background:#eaf7ff;
  color:#0758b8;
  border:1px solid #b9def7;
}
.access-badge.invite{
  background:#fff5db;
  color:#8a5a00;
  border:1px solid #ffd429;
}
.invite-warning{
  padding:14px 16px;
  border-radius:18px;
  background:#fff8e6;
  border:1px solid #ffd429;
  color:#6f4700;
  font-weight:900;
  margin:0 0 18px;
}
.trainer-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:18px;
}
.trainer-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:20px;
  padding:18px;
}
.trainer-card strong{
  display:block;
  font-size:18px;
  color:var(--navy);
}
.trainer-card span{
  display:block;
  color:var(--muted);
  margin-top:5px;
}
@media(max-width:900px){
  .trainer-grid{grid-template-columns:1fr}
}

.sponsor-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:18px;
}
.sponsor-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:22px;
  padding:22px;
  min-height:120px;
}
.sponsor-card strong{
  display:block;
  font-size:20px;
  color:var(--navy);
}
.sponsor-card span{
  display:block;
  margin-top:8px;
  color:var(--muted);
  line-height:1.5;
}
@media(max-width:900px){
  .sponsor-grid{grid-template-columns:1fr}
}

.access-badge{
  display:inline-flex;
  width:max-content;
  padding:7px 13px;
  border-radius:999px;
  font-weight:900;
  font-size:14px;
  margin-top:6px;
}
.access-badge.public{
  background:#eaf7ff;
  color:#0758b8;
  border:1px solid #b9def7;
}
.access-badge.invite{
  background:#fff5db;
  color:#8a5a00;
  border:1px solid #ffd429;
}
.invite-warning{
  padding:14px 16px;
  border-radius:18px;
  background:#fff8e6;
  border:1px solid #ffd429;
  color:#6f4700;
  font-weight:900;
  margin:0 0 18px;
}
.trainer-grid,.sponsor-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:18px;
}
.trainer-card,.sponsor-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:20px;
  padding:18px;
}
.trainer-card strong,.sponsor-card strong{
  display:block;
  font-size:18px;
  color:var(--navy);
}
.trainer-card span,.sponsor-card span{
  display:block;
  color:var(--muted);
  margin-top:5px;
}
@media(max-width:900px){
  .trainer-grid,.sponsor-grid{grid-template-columns:1fr}
}


/* ICE Fox layout polish */
.event-overview{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  align-items:stretch;
}
.place-card{
  background:linear-gradient(135deg,#eaf7ff,#ffffff);
  border:1px solid var(--border);
  border-radius:24px;
  padding:22px;
  box-shadow:0 12px 30px rgba(6,27,61,.10);
}
.place-card small{
  display:block;
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:7px;
}
.place-card strong{
  display:block;
  font-size:clamp(24px,3vw,34px);
  line-height:1.05;
  color:var(--blue);
}
.place-card span{
  display:block;
  color:var(--muted);
  margin-top:10px;
  line-height:1.45;
}
.fact-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.fact-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:16px;
  font-weight:900;
}
.fact-card small{
  display:block;
  color:var(--muted);
  margin-bottom:4px;
  font-weight:700;
}
.card-place{
  margin:4px 0 0 !important;
  color:var(--blue) !important;
  font-weight:900;
}
.admin-mini-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
@media(max-width:900px){
  .event-overview{grid-template-columns:1fr}
  .fact-grid{grid-template-columns:1fr}
}


/* ICE Fox improved event detail */
.event-hero-clean{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:start;
  padding:34px 0 10px;
}

.event-summary-layout{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
  margin-top:18px;
}

.place-highlight{
  background:linear-gradient(135deg,#eaf7ff,#ffffff);
  border:1px solid var(--border);
  border-radius:26px;
  padding:24px;
  box-shadow:0 14px 34px rgba(6,27,61,.10);
}

.place-highlight small,
.info-tile small,
.capacity-card small{
  display:block;
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:6px;
}

.place-highlight strong{
  display:block;
  color:var(--blue);
  font-size:clamp(26px,3.4vw,38px);
  line-height:1.05;
}

.place-highlight span{
  display:block;
  margin-top:10px;
  color:var(--muted);
  line-height:1.45;
}

.info-tile-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.info-tile{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:20px;
  padding:17px;
  font-weight:900;
}

.info-tile b{
  color:var(--navy);
}

.signup-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:22px;
  align-items:start;
}

.signup-side{
  display:grid;
  gap:14px;
}

.capacity-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:22px;
  padding:20px;
}

.capacity-number{
  font-size:30px;
  font-weight:1000;
  color:var(--blue);
  line-height:1.1;
}

.free-spots{
  color:var(--muted);
  font-weight:900;
  margin-top:5px;
}

.signup-note{
  background:#eef8ff;
  border:1px solid #b9def7;
  border-radius:22px;
  padding:18px;
  color:var(--navy);
  font-weight:900;
  line-height:1.5;
}

.payment-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:22px;
  align-items:center;
}

.payment-facts{
  display:grid;
  gap:10px;
}

.payment-fact{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px 16px;
}

.payment-fact small{
  display:block;
  color:var(--muted);
  font-weight:900;
  margin-bottom:3px;
}

.payment-fact strong{
  color:var(--navy);
}

@media(max-width:950px){
  .event-hero-clean,
  .event-summary-layout,
  .signup-layout,
  .payment-layout{
    grid-template-columns:1fr;
  }

  .info-tile-grid{
    grid-template-columns:1fr;
  }
}


/* cleaner event card location */
.event-card-location{
  margin:12px 0 14px;
  padding:13px 15px;
  border-radius:18px;
  background:linear-gradient(135deg,#eaf7ff,#ffffff);
  border:1px solid var(--border);
}
.event-card-location small{
  display:block;
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:4px;
}
.event-card-location strong{
  display:block;
  color:var(--blue);
  font-size:18px;
  line-height:1.2;
}
article.event-card .meta-grid{
  grid-template-columns:repeat(3,1fr);
}
@media(max-width:760px){
  article.event-card .meta-grid{
    grid-template-columns:1fr;
  }
}


/* ICE Fox improved event detail */
.event-hero-clean{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:start;
  padding:34px 0 10px;
}
.event-summary-layout{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
  margin-top:18px;
}
.place-highlight{
  background:linear-gradient(135deg,#eaf7ff,#ffffff);
  border:1px solid var(--border);
  border-radius:26px;
  padding:24px;
  box-shadow:0 14px 34px rgba(6,27,61,.10);
}
.place-highlight small,
.info-tile small,
.capacity-card small{
  display:block;
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:6px;
}
.place-highlight strong{
  display:block;
  color:var(--blue);
  font-size:clamp(26px,3.4vw,38px);
  line-height:1.05;
}
.place-highlight span{
  display:block;
  margin-top:10px;
  color:var(--muted);
  line-height:1.45;
}
.info-tile-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}
.info-tile{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:20px;
  padding:17px;
  font-weight:900;
}
.signup-layout{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:22px;
  align-items:start;
}
.signup-side{
  display:grid;
  gap:14px;
}
.capacity-card{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:22px;
  padding:20px;
}
.capacity-number{
  font-size:30px;
  font-weight:1000;
  color:var(--blue);
  line-height:1.1;
}
.free-spots{
  color:var(--muted);
  font-weight:900;
  margin-top:5px;
}
.signup-note{
  background:#eef8ff;
  border:1px solid #b9def7;
  border-radius:22px;
  padding:18px;
  color:var(--navy);
  font-weight:900;
  line-height:1.5;
}
.payment-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:22px;
  align-items:center;
}
.payment-facts{
  display:grid;
  gap:10px;
}
.payment-fact{
  background:#f7fbff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px 16px;
}
.payment-fact small{
  display:block;
  color:var(--muted);
  font-weight:900;
  margin-bottom:3px;
}
@media(max-width:950px){
  .event-hero-clean,
  .event-summary-layout,
  .signup-layout,
  .payment-layout{
    grid-template-columns:1fr;
  }
  .info-tile-grid{
    grid-template-columns:1fr;
  }
}


/* final public polish */
.hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
@media(max-width:760px){
  .nav{
    gap:12px;
  }
  .menu{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    width:100%;
  }
  .menu a{
    padding:10px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
    min-height:42px;
    display:inline-flex;
    align-items:center;
  }
  .brand img{
    max-width:54px;
    height:auto;
  }
}


/* mobile navigation polish */
@media(max-width:760px){
  .wrap.nav{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }

  .brand{
    width:100%;
  }

  .brand img{
    max-width:54px;
    height:auto;
  }

  .menu{
    width:100%;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }

  .menu a{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    padding:10px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
  }
}


.hp,
.sr-only{
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
