@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Source+Sans+3:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&display=swap');

/* =====================================================================
   APS v2 — COMPLETE STYLESHEET (replace the whole WA CSS with this file)
   The @import above MUST stay on the very first line.
   Order: old site > base > WA overrides > home > editor > popup > footer > events > about > account > membership > donations > culture > privacy > subscribe.
   ===================================================================== */

/* =====================================================================
   OLD SITE — theme customisations (keep until the old site is removed)
   ===================================================================== */
.menuStyle001 ul.firstLevel > li > .item > a > span {
  color: #22346A; text-transform: uppercase; font-size: 100%; font-family: 'Open Sans';
}
.menuStyle001 ul.secondLevel > li > .item > a > span { color: #22346A; font-size: 90%; font-family: 'Open Sans'; }
.menuStyle001 ul.secondLevel > li > .item > a:hover > span { color: #FFFFFF; }
.gadgetStyle002 .gadgetStyleTitle {
  background-color: #22346A; color: #000000; font-family: 'Open Sans'; font-size: 150%; text-align: center;
}
.WaGadgetEventsStateList h3.sectionTitle { font-size: 32px; color: #22346A; font-family: 'Open Sans'; }
.WaGadgetEventsStateList .boxOuterContainer .boxHeaderOuterContainer .boxHeaderContainer h4.boxHeaderTitle a {
  font-size: 26px; color: #22346A;
}
.WaGadgetBlog ul.boxesList li.boxesListItem .boxHeaderOuterContainer h4.boxHeaderTitle { font-size: 20px; color: #22346A; }


/* ===== APS DRAFT — SCOPED STYLES ===== */
.aps2 {
  --ultramarine: #1e0f41; --parchment: #f5f5f0; --azulejo-blue: #8cb4dc; --azulejo-yellow: #f0b946;
  --crusader-red: #e65023; --esperanca-green: #00a55f; --white: #ffffff;
  --font-display: 'DM Serif Display', Georgia, serif; --font-body: 'Source Sans 3', sans-serif;
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); font-family: var(--font-body); font-size: 16px;
  line-height: 1.6; color: var(--ultramarine); background: var(--parchment); overflow-x: hidden;
}
.aps2 *, .aps2 *::before, .aps2 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ===== NAV ===== */
.aps2 nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: var(--ultramarine); display: flex;
  align-items: center; justify-content: space-between; padding: 0 48px; height: 72px;
  transition: var(--transition);
}
.aps2 nav.scrolled { height: 60px; box-shadow: 0 2px 24px rgba(30,15,65,0.25); }
.aps2 .nav-logo { display: flex; align-items: center; gap: 12px; cursor: pointer; text-decoration: none; }
.aps2 .nav-logo-icon { width: 36px; height: 36px; flex-shrink: 0; }
.aps2 .nav-logo-text {
  font-family: var(--font-body); font-weight: 700; font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--parchment); line-height: 1.3;
}
.aps2 .nav-links { display: flex; align-items: center; gap: 4px; list-style: none; }
.aps2 .nav-links a {
  font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--parchment); opacity: 0.75; text-decoration: none; padding: 8px 14px;
  border-radius: 4px; transition: var(--transition); cursor: pointer;
}
.aps2 .nav-links a:hover, .aps2 .nav-links a.active { opacity: 1; background: rgba(245,245,240,0.1) !important; color: var(--parchment); }
.aps2 .nav-links a.active { color: var(--azulejo-yellow); opacity: 1; }
.aps2 .nav-cta {
  background: var(--crusader-red) !important; color: var(--white) !important; opacity: 1 !important;
  padding: 8px 20px !important; border-radius: 4px !important;
}
.aps2 .nav-cta:hover { background: #c93e18 !important; }
.aps2 .hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 8px; }
.aps2 .hamburger span { width: 24px; height: 2px; background: var(--parchment); transition: var(--transition); }
.aps2 .mobile-menu {
  display: none; position: fixed; top: 72px; left: 0; right: 0; background: var(--ultramarine); padding: 24px;
  z-index: 99; flex-direction: column; gap: 8px;
}
.aps2 .mobile-menu.open { display: flex; }
.aps2 .mobile-menu a {
  color: var(--parchment); text-decoration: none; font-family: var(--font-body); font-size: 15px;
  font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 12px 16px;
  border-bottom: 1px solid rgba(245,245,240,0.1); cursor: pointer;
}

/* ===== SHARED LAYOUT ===== */
.aps2 .container { max-width: 1200px; margin: 0 auto; padding: 0 48px; }
.aps2 .section { padding: 96px 0; }
.aps2 .section-sm { padding: 64px 0; }
.aps2 .section-label {
  font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--crusader-red); margin-bottom: 16px;
}
.aps2 h1, .aps2 h2, .aps2 h3 { font-family: var(--font-display); line-height: 1.15; }
.aps2 h1 { font-size: clamp(36px, 5vw, 64px); }
.aps2 h2 { font-size: clamp(28px, 3.5vw, 44px); }
.aps2 h3 { font-size: clamp(20px, 2.5vw, 28px); }
.aps2 p { font-family: var(--font-body); font-size: 16px; line-height: 1.7; margin-bottom: 1em; }
.aps2 p:last-child { margin-bottom: 0; }
.aps2 .text-parchment { color: var(--parchment); }
.aps2 .text-yellow { color: var(--azulejo-yellow); }
.aps2 .text-red { color: var(--crusader-red); }
.aps2 .text-blue { color: var(--azulejo-blue); }
.aps2 .bg-dark { background: var(--ultramarine); }
.aps2 .bg-light { background: var(--parchment); }
.aps2 .bg-white { background: #ffffff; }

/* ===== BUTTONS ===== */
.aps2 .btn {
  display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-body); font-size: 13px;
  font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none;
  padding: 14px 28px; border-radius: 4px; border: 2px solid transparent; cursor: pointer;
  transition: var(--transition); white-space: nowrap;
}
.aps2 .btn-primary { background: var(--crusader-red); color: var(--white); border-color: var(--crusader-red); }
.aps2 .btn-primary:hover { background: #c93e18; border-color: #c93e18; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(230,80,35,0.35); }
.aps2 .btn-secondary { background: transparent; color: var(--ultramarine); border-color: var(--ultramarine); }
.aps2 .btn-secondary:hover { background: var(--ultramarine); color: var(--parchment); transform: translateY(-2px); }
.aps2 .btn-outline-light { background: transparent; color: var(--parchment); border-color: rgba(245,245,240,0.4); }
.aps2 .btn-outline-light:hover { background: rgba(245,245,240,0.1); border-color: var(--parchment); transform: translateY(-2px); }
.aps2 .btn-yellow { background: var(--azulejo-yellow); color: var(--ultramarine); border-color: var(--azulejo-yellow); }
.aps2 .btn-yellow:hover { background: #d9a530; border-color: #d9a530; transform: translateY(-2px); }

/* ===== DIVIDER ===== */
.aps2 .divider { width: 56px; height: 3px; background: var(--crusader-red); margin: 24px 0; }
.aps2 .divider-yellow { background: var(--azulejo-yellow); }

/* ===== CARDS ===== */
.aps2 .card { background: #fff; border-radius: 2px; overflow: hidden; transition: var(--transition); cursor: pointer; }
.aps2 .card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(30,15,65,0.12); }
.aps2 .card-img {
  width: 100%; height: 220px; object-fit: cover; background: var(--ultramarine); display: flex;
  align-items: center; justify-content: center; overflow: hidden;
}
.aps2 .card-body { padding: 28px 28px 32px; }
.aps2 .card-tag {
  font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--crusader-red); margin-bottom: 8px;
}
.aps2 .card h3 { font-size: 22px; margin-bottom: 12px; color: var(--ultramarine); }
.aps2 .card p { font-size: 14px; color: #555; line-height: 1.6; }

/* ===== GRID ===== */
.aps2 .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.aps2 .grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px; }
.aps2 .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

/* ===== HERO ===== */
.aps2 .hero {
  min-height: 100vh; background: var(--ultramarine); display: flex; flex-direction: column;
  justify-content: flex-end; padding-top: 72px; position: relative; overflow: hidden;
}
.aps2 .hero-bg { position: absolute; inset: 0; z-index: 0; }
.aps2 .hero-pattern {
  position: absolute; inset: 0; background-image:
  radial-gradient(circle at 70% 40%, rgba(140,180,220,0.12) 0%, transparent 50%),
  radial-gradient(circle at 20% 80%, rgba(230,80,35,0.08) 0%, transparent 40%);
}
.aps2 .hero-tiles {
  position: absolute; right: -40px; top: 72px; bottom: 0; width: 50%; opacity: 0.06;
  background-image: repeating-linear-gradient(
  0deg, transparent, transparent 48px, rgba(245,245,240,0.5) 48px, rgba(245,245,240,0.5) 50px ),
  repeating-linear-gradient(
  90deg, transparent, transparent 48px, rgba(245,245,240,0.5) 48px, rgba(245,245,240,0.5) 50px );
}
.aps2 .hero-content { position: relative; z-index: 1; padding: 80px 48px 96px; max-width: 1200px; width: 100%; margin: 0 auto; }
.aps2 .hero-eyebrow {
  font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.25em;
  text-transform: uppercase; color: var(--azulejo-yellow); margin-bottom: 24px; display: flex;
  align-items: center; gap: 16px;
}
.aps2 .hero-eyebrow::before { content: ''; display: block; width: 32px; height: 2px; background: var(--azulejo-yellow); }
.aps2 .hero h1 { font-size: clamp(44px, 6vw, 80px); color: var(--parchment); max-width: 760px; margin-bottom: 28px; line-height: 1.1; }
.aps2 .hero h1 em { font-style: italic; color: var(--azulejo-yellow); }
.aps2 .hero-desc { color: rgba(245,245,240,0.75); font-size: 18px; max-width: 560px; line-height: 1.7; margin-bottom: 40px; }
.aps2 .hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.aps2 .hero-strip {
  background: rgba(245,245,240,0.05); border-top: 1px solid rgba(245,245,240,0.1); padding: 24px 48px;
  position: relative; z-index: 1;
}
.aps2 .hero-strip-inner { max-width: 1200px; margin: 0 auto; display: flex; gap: 48px; align-items: center; }
.aps2 .hero-stat { display: flex; flex-direction: column; }
.aps2 .hero-stat-number { font-family: var(--font-display); font-size: 32px; color: var(--azulejo-yellow); line-height: 1; }
.aps2 .hero-stat-label {
  font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(245,245,240,0.5); margin-top: 4px;
}
.aps2 .hero-strip-divider { width: 1px; height: 40px; background: rgba(245,245,240,0.15); }

/* ===== PAGE HEROES ===== */
.aps2 .page-hero { background: var(--ultramarine); padding: 144px 0 80px; position: relative; overflow: hidden; }
.aps2 .page-hero::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--crusader-red), var(--azulejo-yellow), var(--esperanca-green), var(--azulejo-blue));
}
.aps2 .page-hero-content { position: relative; z-index: 1; }
.aps2 .page-hero h1 { color: var(--parchment); max-width: 640px; margin-bottom: 20px; }
.aps2 .page-hero p { color: rgba(245,245,240,0.7); font-size: 18px; max-width: 560px; margin-bottom: 0; }

/* ===== EVENTS PAGE ===== */
.aps2 .event-card {
  display: grid; grid-template-columns: 200px 1fr; background: #fff; border-radius: 2px; overflow: hidden;
  transition: var(--transition); margin-bottom: 24px; border-left: 4px solid var(--crusader-red);
}
.aps2 .event-card:hover { transform: translateX(6px); box-shadow: 0 8px 32px rgba(30,15,65,0.1); }
.aps2 .event-card-date {
  background: var(--ultramarine); display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 32px 24px; text-align: center;
}
.aps2 .event-card-day { font-family: var(--font-display); font-size: 48px; color: var(--azulejo-yellow); line-height: 1; }
.aps2 .event-card-month {
  font-size: 12px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(245,245,240,0.6); margin-top: 4px;
}
.aps2 .event-card-body { padding: 32px; }
.aps2 .event-card-body h3 { font-size: 22px; margin-bottom: 8px; color: var(--ultramarine); }
.aps2 .event-card-meta { display: flex; gap: 20px; margin-bottom: 12px; flex-wrap: wrap; }
.aps2 .event-meta-item { font-size: 13px; color: #666; display: flex; align-items: center; gap: 6px; }
.aps2 .event-meta-item svg { width: 14px; height: 14px; flex-shrink: 0; opacity: 0.6; }
.aps2 .event-card-body p { font-size: 14px; color: #555; margin-bottom: 20px; }

/* ===== MEMBERSHIP ===== */
.aps2 .membership-tier {
  background: #fff; border-radius: 2px; padding: 40px 36px; position: relative; transition: var(--transition);
  border-top: 4px solid var(--azulejo-blue);
}
.aps2 .membership-tier:hover { transform: translateY(-8px); box-shadow: 0 24px 56px rgba(30,15,65,0.12); }
.aps2 .membership-tier.featured { background: var(--ultramarine); color: var(--parchment); border-top-color: var(--azulejo-yellow); }
.aps2 .membership-tier-badge {
  position: absolute; top: -1px; right: 24px; background: var(--azulejo-yellow); color: var(--ultramarine);
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 4px 12px;
  border-radius: 0 0 4px 4px;
}
.aps2 .membership-price {
  font-family: var(--font-display); font-size: 52px; line-height: 1; color: var(--crusader-red);
  margin: 16px 0 4px;
}
.aps2 .membership-tier.featured .membership-price { color: var(--azulejo-yellow); }
.aps2 .membership-price-period { font-size: 13px; color: #888; margin-bottom: 24px; }
.aps2 .membership-tier.featured .membership-price-period { color: rgba(245,245,240,0.5); }
.aps2 .membership-tier h3 { font-size: 22px; margin-bottom: 8px; }
.aps2 .membership-features { list-style: none; margin: 24px 0 32px; }
.aps2 .membership-features li {
  font-size: 14px; padding: 8px 0; border-bottom: 1px solid rgba(30,15,65,0.08); display: flex;
  align-items: flex-start; gap: 10px; color: #444;
}
.aps2 .membership-tier.featured .membership-features li { border-bottom-color: rgba(245,245,240,0.1); color: rgba(245,245,240,0.8); }
.aps2 .membership-features li::before { content: '✓'; color: var(--esperanca-green); font-weight: 700; flex-shrink: 0; }

/* ===== ABOUT ===== */
.aps2 .timeline { position: relative; padding-left: 32px; }
.aps2 .timeline::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(180deg, var(--crusader-red), var(--azulejo-blue));
}
.aps2 .timeline-item { position: relative; margin-bottom: 40px; padding-left: 24px; }
.aps2 .timeline-item::before {
  content: ''; position: absolute; left: -38px; top: 6px; width: 12px; height: 12px;
  background: var(--azulejo-yellow); border-radius: 50%; border: 2px solid var(--ultramarine);
}
.aps2 .timeline-year { font-family: var(--font-display); font-size: 20px; color: var(--crusader-red); margin-bottom: 4px; }
.aps2 .timeline-item h4 { font-family: var(--font-body); font-weight: 700; font-size: 15px; margin-bottom: 6px; }
.aps2 .timeline-item p { font-size: 14px; color: #555; margin: 0; }

/* ===== COMMITTEE ===== */
.aps2 .committee-member { text-align: center; padding: 24px 16px; }
.aps2 .committee-avatar {
  width: 80px; height: 80px; border-radius: 50%; background: var(--ultramarine); margin: 0 auto 16px;
  display: flex; align-items: center; justify-content: center; font-family: var(--font-display);
  font-size: 28px; color: var(--azulejo-yellow);
}
.aps2 .committee-member h4 { font-family: var(--font-body); font-weight: 700; font-size: 15px; margin-bottom: 4px; }
.aps2 .committee-member p {
  font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--crusader-red);
  font-weight: 600; margin: 0;
}

/* ===== STUDENT AWARD ===== */
.aps2 .award-highlight { background: var(--ultramarine); padding: 56px; border-radius: 2px; position: relative; overflow: hidden; }
.aps2 .award-highlight::before {
  content: '£'; position: absolute; right: -20px; top: -40px; font-family: var(--font-display);
  font-size: 240px; color: rgba(240,185,70,0.06); line-height: 1;
}
.aps2 .award-amount { font-family: var(--font-display); font-size: 80px; color: var(--azulejo-yellow); line-height: 1; margin-bottom: 8px; }

/* ===== FOOTER ===== */
.aps2 footer { background: var(--ultramarine); color: var(--parchment); padding: 64px 0 32px; }
.aps2 .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }
.aps2 .footer-brand p { font-size: 14px; color: rgba(245,245,240,0.55); line-height: 1.7; max-width: 280px; }
.aps2 .footer-col h4 {
  font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--azulejo-yellow); margin-bottom: 20px;
}
.aps2 .footer-col ul { list-style: none; }
.aps2 .footer-col ul li { margin-bottom: 10px; }
.aps2 .footer-col ul li a {
  font-size: 14px; color: rgba(245,245,240,0.55); text-decoration: none; transition: var(--transition);
  cursor: pointer;
}
.aps2 .footer-col ul li a:hover { color: var(--parchment); }
.aps2 .footer-bottom {
  border-top: 1px solid rgba(245,245,240,0.1); padding-top: 32px; display: flex;
  justify-content: space-between; align-items: center;
}
.aps2 .footer-bottom p { font-size: 13px; color: rgba(245,245,240,0.35); margin: 0; }
.aps2 .footer-charity { font-size: 12px; color: rgba(245,245,240,0.25); margin: 0; }
.aps2 .footer-newsletter {
  background: rgba(245,245,240,0.05); border-radius: 2px; padding: 40px; margin-bottom: 48px; display: flex;
  align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.aps2 .footer-newsletter-text h4 { font-family: var(--font-display); font-size: 22px; color: var(--parchment); margin-bottom: 6px; }
.aps2 .footer-newsletter-text p { font-size: 14px; color: rgba(245,245,240,0.55); margin: 0; }
.aps2 .newsletter-form { display: flex; gap: 0; flex-shrink: 0; }
.aps2 .newsletter-form input {
  background: rgba(245,245,240,0.1); border: 1px solid rgba(245,245,240,0.2); border-right: none;
  color: var(--parchment); font-family: var(--font-body); font-size: 14px; padding: 12px 20px; outline: none;
  width: 240px; border-radius: 4px 0 0 4px;
}
.aps2 .newsletter-form input::placeholder { color: rgba(245,245,240,0.35); }
.aps2 .newsletter-form button {
  background: var(--crusader-red); color: var(--white); border: none; font-family: var(--font-body);
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 12px 20px;
  cursor: pointer; border-radius: 0 4px 4px 0; transition: var(--transition);
}
.aps2 .newsletter-form button:hover { background: #c93e18; }

/* ===== SPONSORS STRIP ===== */
.aps2 .sponsors-strip {
  background: rgba(245,245,240,0.03); border-top: 1px solid rgba(245,245,240,0.08);
  border-bottom: 1px solid rgba(245,245,240,0.08); padding: 24px 0; margin-bottom: 48px;
}
.aps2 .sponsors-strip-inner { display: flex; align-items: center; gap: 48px; flex-wrap: wrap; justify-content: center; }
.aps2 .sponsor-logo {
  font-family: var(--font-body); font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: rgba(245,245,240,0.3); padding: 8px 16px;
  border: 1px solid rgba(245,245,240,0.1); border-radius: 2px;
}

/* ===== ACCENT BAR ===== */
.aps2 .accent-bar {
  height: 4px;
  background: linear-gradient(90deg, var(--crusader-red) 0%, var(--azulejo-yellow) 33%, var(--esperanca-green) 66%, var(--azulejo-blue) 100%);
}

/* ===== PULL QUOTE ===== */
.aps2 .pull-quote { border-left: 4px solid var(--azulejo-yellow); padding: 24px 32px; background: rgba(30,15,65,0.04); margin: 40px 0; }
.aps2 .pull-quote p {
  font-family: var(--font-display); font-size: 22px; line-height: 1.5; font-style: italic;
  color: var(--ultramarine); margin: 0;
}
.aps2 .pull-quote cite {
  display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--crusader-red); margin-top: 12px; font-style: normal;
}

/* ===== DECORATIVE AZULEJO ===== */
.aps2 .azulejo-accent { width: 40px; height: 40px; margin-bottom: 20px; }

/* ===== TABS ===== */
.aps2 .tabs { display: flex; gap: 0; border-bottom: 2px solid rgba(30,15,65,0.1); margin-bottom: 48px; }
.aps2 .tab-btn {
  font-family: var(--font-body); font-size: 14px; font-weight: 600; letter-spacing: 0.06em;
  text-transform: uppercase; color: #888; background: none; border: none; padding: 14px 24px; cursor: pointer;
  position: relative; transition: var(--transition);
}
.aps2 .tab-btn::after {
  content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px;
  background: var(--crusader-red); transform: scaleX(0); transition: var(--transition);
}
.aps2 .tab-btn.active { color: var(--ultramarine); }
.aps2 .tab-btn.active::after { transform: scaleX(1); }
.aps2 .tab-btn:hover { color: var(--ultramarine); }
/* Phones: the tabs become one full-width segmented control (no side scrolling); words in .tab-extra are dropped */
@media (max-width: 768px) {
  .aps2 .tabs {
    display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; margin-bottom: 32px; padding: 4px;
    border: 0; border-radius: 6px; background: rgba(30,15,65,0.07);
  }
  .aps2 .tabs .tab-btn {
    display: flex; justify-content: center; align-items: center; gap: 6px; padding: 11px 6px; border-radius: 4px;
    font-size: 12px; letter-spacing: 0.04em; white-space: nowrap;
  }
  .aps2 .tabs .tab-btn::after { display: none; }
  .aps2 .tabs .tab-btn.active { background: var(--white); box-shadow: 0 1px 4px rgba(30,15,65,0.12); }
  .aps2 .tab-extra { display: none; }
}
.aps2 .tab-panel { display: none; }
.aps2 .tab-panel.active { display: block; }

/* ===== BANNER ===== */
.aps2 .banner { background: var(--azulejo-yellow); padding: 20px 48px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.aps2 .banner p { font-size: 15px; font-weight: 600; color: var(--ultramarine); margin: 0; }

/* ===== SVG ICON SYSTEM ===== */
.aps2 .icon { display: inline-block; vertical-align: middle; }

/* ===== ANIMATIONS ===== */
@keyframes aps2FadeUp {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}
.aps2 .animate { opacity: 0; animation: aps2FadeUp 0.7s ease forwards; }
.aps2 .delay-1 { animation-delay: 0.1s; }
.aps2 .delay-2 { animation-delay: 0.2s; }
.aps2 .delay-3 { animation-delay: 0.3s; }
.aps2 .delay-4 { animation-delay: 0.4s; }
.aps2 .delay-5 { animation-delay: 0.5s; }

/* ===== FULL BLEED (Wild Apricot container fix) ===== */
.aps2 .full-bleed { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* ===== RESPONSIVE ===== */
/* ===== BRAND LOGO (APS "1 Line" wordmark, white), drawn by CSS so the menu / footer gadgets need no re-paste.
   Source: "APS 1Line White.svg" (brand files); the old star icon and text stay in the HTML, hidden (text kept for screen readers). ===== */
.aps2 .nav-logo-icon, .aps2 .footer-logo svg { display: none !important; }
.aps2 .nav-logo-text, .aps2 .footer-logo span {
  position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}
.aps2 .nav-logo::before, .aps2 .footer-logo::before {
  content: ''; display: block; flex: none; width: 276px; height: 28px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='15 14 282 28.6' fill='%23fff'%3E%3Cpath d='M57.28,36.37h-2.2v-8.53h-2.81v-1.83h7.82v1.83h-2.81v8.53Z'/%3E%3Cpath d='M70.17,36.37h-2.19v-4.47h-4.1v4.47h-2.2v-10.35h2.2v4.06h4.1v-4.06h2.19v10.35Z'/%3E%3Cpath d='M78.16,36.37h-5.96v-10.35h5.96v1.8h-3.77v2.27h3.51v1.8h-3.51v2.67h3.77v1.81Z'/%3E%3Cpath d='M90.43,36.37l-.75-2.46h-3.77l-.75,2.46h-2.37l3.65-10.4h2.68l3.67,10.4h-2.37ZM89.15,32.06c-.69-2.23-1.08-3.5-1.17-3.79s-.15-.52-.19-.69c-.16.6-.6,2.1-1.34,4.48h2.7Z'/%3E%3Cpath d='M103.57,36.37h-2.79l-4.5-7.83h-.06c.09,1.38.13,2.37.13,2.96v4.87h-1.96v-10.35h2.77l4.5,7.75h.05c-.07-1.35-.11-2.3-.11-2.85v-4.9h1.98v10.35Z'/%3E%3Cpath d='M109.82,30.55h4.11v5.37c-.67.22-1.29.37-1.88.46-.59.09-1.19.13-1.8.13-1.56,0-2.76-.46-3.58-1.38-.82-.92-1.24-2.24-1.24-3.96s.48-2.97,1.43-3.91,2.28-1.4,3.98-1.4c1.06,0,2.09.21,3.07.64l-.73,1.76c-.76-.38-1.54-.57-2.36-.57-.95,0-1.71.32-2.28.96-.57.64-.86,1.49-.86,2.57s.23,1.98.69,2.57,1.13.89,2.01.89c.46,0,.92-.05,1.4-.14v-2.16h-1.96v-1.83Z'/%3E%3Cpath d='M116.39,36.37v-10.35h2.2v8.54h4.2v1.81h-6.39Z'/%3E%3Cpath d='M133.98,31.18c0,1.71-.42,3.03-1.27,3.95-.85.92-2.07,1.38-3.65,1.38s-2.8-.46-3.65-1.38-1.27-2.24-1.27-3.97.43-3.04,1.28-3.95c.85-.91,2.07-1.36,3.66-1.36s2.81.46,3.65,1.37,1.26,2.23,1.26,3.95ZM126.42,31.18c0,1.16.22,2.03.66,2.61s1.1.88,1.97.88c1.75,0,2.63-1.16,2.63-3.49s-.87-3.5-2.61-3.5c-.87,0-1.53.29-1.98.88-.44.59-.67,1.46-.67,2.62Z'/%3E%3Cpath d='M135.25,33.37v-1.77h3.8v1.77h-3.8Z'/%3E%3Cpath d='M147.94,29.24c0,1.11-.35,1.97-1.04,2.56s-1.69.89-2.97.89h-.94v3.68h-2.2v-10.35h3.31c1.26,0,2.21.27,2.86.81s.98,1.35.98,2.42ZM142.99,30.89h.72c.68,0,1.18-.13,1.52-.4.34-.27.5-.66.5-1.16s-.14-.89-.42-1.14-.72-.37-1.32-.37h-1v3.07Z'/%3E%3Cpath d='M159.3,31.18c0,1.71-.42,3.03-1.27,3.95-.85.92-2.07,1.38-3.65,1.38s-2.8-.46-3.65-1.38c-.85-.92-1.27-2.24-1.27-3.97s.43-3.04,1.28-3.95,2.07-1.36,3.66-1.36,2.81.46,3.65,1.37c.84.92,1.26,2.23,1.26,3.95ZM151.74,31.18c0,1.16.22,2.03.66,2.61s1.1.88,1.97.88c1.75,0,2.63-1.16,2.63-3.49s-.87-3.5-2.61-3.5c-.87,0-1.53.29-1.98.88-.44.59-.67,1.46-.67,2.62Z'/%3E%3Cpath d='M163.06,32.4v3.97h-2.2v-10.35h3.02c1.41,0,2.45.26,3.12.77.68.51,1.01,1.29,1.01,2.33,0,.61-.17,1.15-.5,1.63-.34.47-.81.85-1.42,1.12,1.56,2.33,2.57,3.83,3.05,4.51h-2.44l-2.47-3.97h-1.17ZM163.06,30.61h.71c.69,0,1.21-.12,1.54-.35.33-.23.5-.59.5-1.09s-.17-.84-.51-1.05-.86-.31-1.57-.31h-.67v2.8Z'/%3E%3Cpath d='M174.43,36.37h-2.2v-8.53h-2.81v-1.83h7.82v1.83h-2.81v8.53Z'/%3E%3Cpath d='M187.26,26.02v6.7c0,.76-.17,1.44-.51,2.01s-.84,1.02-1.48,1.32c-.65.31-1.41.46-2.29.46-1.33,0-2.37-.34-3.1-1.02s-1.1-1.62-1.1-2.8v-6.67h2.19v6.34c0,.8.16,1.38.48,1.76.32.37.85.56,1.59.56s1.24-.19,1.56-.56.49-.96.49-1.77v-6.32h2.19Z'/%3E%3Cpath d='M193.73,30.55h4.11v5.37c-.67.22-1.29.37-1.88.46-.59.09-1.19.13-1.8.13-1.56,0-2.76-.46-3.58-1.38-.82-.92-1.24-2.24-1.24-3.96s.48-2.97,1.43-3.91,2.28-1.4,3.98-1.4c1.06,0,2.09.21,3.07.64l-.73,1.76c-.76-.38-1.54-.57-2.36-.57-.95,0-1.71.32-2.28.96-.57.64-.86,1.49-.86,2.57s.23,1.98.69,2.57,1.13.89,2.01.89c.46,0,.92-.05,1.4-.14v-2.16h-1.96v-1.83Z'/%3E%3Cpath d='M208.44,26.02v6.7c0,.76-.17,1.44-.51,2.01-.34.58-.84,1.02-1.48,1.32s-1.41.46-2.29.46c-1.33,0-2.37-.34-3.1-1.02s-1.1-1.62-1.1-2.8v-6.67h2.19v6.34c0,.8.16,1.38.48,1.76.32.37.85.56,1.59.56s1.24-.19,1.56-.56c.32-.38.48-.96.48-1.77v-6.32h2.19Z'/%3E%3Cpath d='M216.93,36.37h-5.96v-10.35h5.96v1.8h-3.77v2.27h3.51v1.8h-3.51v2.67h3.77v1.81Z'/%3E%3Cpath d='M225.21,33.49c0,.93-.34,1.67-1.01,2.21s-1.61.81-2.81.81c-1.1,0-2.08-.21-2.93-.62v-2.04c.7.31,1.29.53,1.77.66.48.13.93.19,1.33.19.48,0,.85-.09,1.11-.28.26-.18.39-.46.39-.82,0-.2-.06-.38-.17-.54s-.28-.31-.5-.46-.67-.38-1.34-.7c-.63-.3-1.11-.58-1.42-.86s-.57-.59-.76-.96-.28-.79-.28-1.27c0-.92.31-1.64.93-2.16.62-.52,1.48-.79,2.57-.79.54,0,1.05.06,1.54.19s1,.31,1.53.54l-.71,1.71c-.55-.23-1.01-.38-1.37-.47s-.72-.13-1.07-.13c-.42,0-.73.1-.96.29s-.33.45-.33.76c0,.19.04.36.13.51s.23.28.43.42c.2.13.66.38,1.39.73.97.46,1.63.93,1.99,1.39s.54,1.04.54,1.71Z'/%3E%3Cpath d='M233.05,36.37h-5.96v-10.35h5.96v1.8h-3.77v2.27h3.51v1.8h-3.51v2.67h3.77v1.81Z'/%3E%3Cpath d='M245.08,33.49c0,.93-.34,1.67-1.01,2.21-.67.54-1.61.81-2.81.81-1.1,0-2.08-.21-2.93-.62v-2.04c.7.31,1.29.53,1.77.66.48.13.93.19,1.33.19.48,0,.85-.09,1.11-.28.26-.18.39-.46.39-.82,0-.2-.06-.38-.17-.54s-.28-.31-.5-.46-.67-.38-1.34-.7c-.63-.3-1.11-.58-1.42-.86s-.57-.59-.76-.96-.28-.79-.28-1.27c0-.92.31-1.64.93-2.16.62-.52,1.48-.79,2.57-.79.54,0,1.05.06,1.54.19s1,.31,1.53.54l-.71,1.71c-.55-.23-1.01-.38-1.37-.47s-.72-.13-1.07-.13c-.42,0-.73.1-.96.29s-.33.45-.33.76c0,.19.04.36.13.51s.23.28.43.42c.2.13.66.38,1.39.73.97.46,1.63.93,1.99,1.39s.54,1.04.54,1.71Z'/%3E%3Cpath d='M256.36,31.18c0,1.71-.42,3.03-1.27,3.95s-2.07,1.38-3.65,1.38-2.8-.46-3.65-1.38-1.27-2.24-1.27-3.97.43-3.04,1.28-3.95c.85-.91,2.07-1.36,3.66-1.36s2.81.46,3.65,1.37c.84.92,1.26,2.23,1.26,3.95ZM248.8,31.18c0,1.16.22,2.03.66,2.61s1.1.88,1.97.88c1.75,0,2.63-1.16,2.63-3.49s-.87-3.5-2.61-3.5c-.87,0-1.53.29-1.98.88-.44.59-.67,1.46-.67,2.62Z'/%3E%3Cpath d='M262.61,27.69c-.83,0-1.47.31-1.92.93s-.68,1.49-.68,2.6c0,2.31.87,3.46,2.6,3.46.73,0,1.61-.18,2.64-.55v1.84c-.85.35-1.8.53-2.85.53-1.51,0-2.66-.46-3.46-1.37-.8-.91-1.2-2.22-1.2-3.93,0-1.08.2-2.02.59-2.83.39-.81.95-1.43,1.69-1.86s1.59-.65,2.58-.65,2.02.24,3.03.73l-.71,1.78c-.39-.18-.78-.34-1.17-.48-.39-.14-.78-.21-1.15-.21Z'/%3E%3Cpath d='M267.46,36.37v-10.35h2.2v10.35h-2.2Z'/%3E%3Cpath d='M278.22,36.37h-5.96v-10.35h5.96v1.8h-3.77v2.27h3.51v1.8h-3.51v2.67h3.77v1.81Z'/%3E%3Cpath d='M284.37,36.37h-2.2v-8.53h-2.81v-1.83h7.82v1.83h-2.81v8.53Z'/%3E%3Cpath d='M292,30.28l2.16-4.26h2.37l-3.43,6.32v4.03h-2.18v-3.96l-3.43-6.39h2.38l2.15,4.26Z'/%3E%3Cpath d='M39.81,32.88c-.3.5-3.4,2.62-5.19,3.62-1.99,1.12-3.95,1.83-5.8,2.11-.51.08-1.02.12-1.53.14-.5.02-1.01,0-1.53-.05-1-.1-2-.32-3-.68-.94-.34-1.88-.8-2.8-1.37-.41-.25-1.71-1.23-1.91-1.4-.2-.17-.4-.35-.59-.54,0,0-.03-.04-.09,0-.05.04-.02.09-.02.09.59.9,1.32,1.8,2.3,2.82.94.95,1.85,1.74,2.79,2.4,1.08.76,2.19,1.36,3.29,1.78.6.22,1.22.4,1.84.52.58.11,1.16.16,1.72.16s1.51-.11,2.13-.27c.63-.17,1.24-.4,1.8-.69,1.06-.55,2.07-1.32,2.98-2.31.77-.82,1.48-1.79,2.17-2.97.62-1.08,1.14-2.18,1.55-3.28,0,0,.03-.06-.04-.09-.07-.03-.09.03-.09.03Z'/%3E%3Cpath d='M33.93,14.63s-.87-.23-2-.23c-1.93,0-5.25.7-5.54,5.41h0s0,.06.08.07c.07,0,.08-.06.08-.06,0-.04.1-1,1.79-1,.52,0,1.14.09,1.84.27,0,0,.06.01.08,0,.02-.02.01-.07.01-.07,0-.03-.12-3.18,3.66-4.24,0,0,.05,0,.05-.07s-.05-.07-.05-.07Z'/%3E%3Cpath d='M33.45,30.92c-3.18-3.2-4.45-5.8-3.78-7.75.85-2.5,4.69-3.03,4.73-3.03,0,0,.05,0,.05-.07,0-.08-.05-.07-.05-.07-1.21-.17-2.33-.25-3.34-.25-3.26,0-5.4.89-6.38,2.64-2.03,3.63,1.7,9.8,1.74,9.86,0,0,.03.06.09.04.06-.02.05-.08.05-.08-.18-1.8,0-3.02.56-3.62.27-.3.64-.45,1.09-.45,1.49,0,3.62,1.58,5.15,2.9,1.2,1.1,1.22,1.12,1.85,1.74,0,0,.04.04.09,0,.06-.05.01-.11.01-.11,0,0-.8-.79-1.85-1.74Z'/%3E%3Cpath d='M42,14.34s.03-.04,0-.09c-.04-.05-.08-.03-.08-.03-.03.01-2.59,1.33-5.16,4.26-2.37,2.7-5.22,7.38-5.37,14.29,0,0,0,.06.07.07.07,0,.08-.05.08-.05,0-.04,1.02-4.49,6.85-4.49.81,0,1.68.09,2.6.25,0,0,.07.02.09-.02.02-.04-.01-.09-.01-.09-.01-.02-1.36-2.14-1.91-4.93-.51-2.57-.42-6.24,2.85-9.17Z'/%3E%3Cpath d='M25.29,14.63s-.87-.23-1.99-.23c-1.93,0-5.25.7-5.54,5.41h0s0,.06.08.07c.07,0,.08-.06.08-.06,0-.04.1-1,1.79-1,.52,0,1.14.09,1.84.27,0,0,.06.01.08,0,.02-.02.01-.07.01-.07,0-.03-.12-3.18,3.66-4.24,0,0,.05,0,.05-.07s-.05-.07-.05-.07Z'/%3E%3Cpath d='M24.66,30.92c-3.18-3.2-4.45-5.8-3.78-7.75.85-2.5,4.69-3.03,4.73-3.03,0,0,.05,0,.05-.07,0-.08-.05-.07-.05-.07-1.21-.17-2.34-.25-3.34-.25-3.26,0-5.4.89-6.38,2.64-2.03,3.63,1.7,9.8,1.74,9.86,0,0,.03.06.09.04.06-.02.05-.08.05-.08-.18-1.8,0-3.02.56-3.62.27-.3.64-.45,1.09-.45,1.49,0,3.62,1.58,5.15,2.9,1.19,1.1,1.22,1.12,1.85,1.74,0,0,.04.04.09,0,.06-.05.01-.11.01-.11,0,0-.8-.79-1.85-1.74Z'/%3E%3C/svg%3E") no-repeat left center / contain;
}
.aps2 .footer-logo::before { width: 237px; height: 24px; }
@media (max-width: 480px) { .aps2 .nav-logo::before { width: 216px; height: 22px; } }

@media (max-width: 900px) {
  .aps2 .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .aps2 .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .aps2 .footer-grid { grid-template-columns: 1fr 1fr; }
  .aps2 nav { padding: 0 24px; }
  .aps2 .container { padding: 0 24px; }
  .aps2 .hero-content { padding: 60px 24px 80px; }
  .aps2 .hero-strip { padding: 24px; }
  .aps2 .hero-strip-inner { gap: 28px; flex-wrap: wrap; }
  .aps2 .footer-newsletter { flex-direction: column; align-items: flex-start; }
  .aps2 .award-highlight { padding: 36px; }
}
@media (max-width: 768px) {
  .aps2 .nav-links { display: none; }
  .aps2 .hamburger { display: flex; }
  .aps2 .grid-3, .aps2 .grid-2 { grid-template-columns: 1fr; }
  .aps2 .grid-4 { grid-template-columns: 1fr 1fr; }
  .aps2 .event-card { grid-template-columns: 1fr; }
  .aps2 .event-card-date { padding: 20px; flex-direction: row; gap: 12px; justify-content: flex-start; }
  .aps2 .event-card-day { font-size: 32px; }
  .aps2 .footer-grid { grid-template-columns: 1fr; }
  .aps2 .banner { flex-direction: column; align-items: flex-start; padding: 20px 24px; }
  .aps2 .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
  .aps2 .membership-tier { margin-bottom: 24px; }
  .aps2 .newsletter-form { flex-direction: column; width: 100%; }
  .aps2 .newsletter-form input { border-right: 1px solid rgba(245,245,240,0.2); border-radius: 4px; width: 100%; }
  .aps2 .newsletter-form button { border-radius: 4px; }
}
@media (max-width: 480px) {
  .aps2 .grid-4 { grid-template-columns: 1fr; }
  .aps2 .hero h1 { font-size: 36px; }
  .aps2 .award-amount { font-size: 60px; }
}

/* ===== AZULEJO TILE SVG bg ===== */
.aps2 .tile-bg { position: absolute; top: 0; right: 0; width: 40%; height: 100%; opacity: 0.04; pointer-events: none; }

/* =====================================================================
   APS v2 — WA OVERRIDES
   Must stay at the END of the stylesheet so it wins over the theme.
   ===================================================================== */

/* --- WA layout: full-width content, only on pages containing .aps2 --- */
body:has(.aps2) .zoneContent { padding: 0 !important; }
body:has(.aps2) .WaPlaceHolderContent { max-width: none !important; }
body:has(.aps2) .WaPlaceHolderContent > div { padding: 0 !important; }
body:has(.aps2) .WaGadgetCustomHTML { overflow: visible !important; margin: 0 !important; }
body:has(.aps2) { overflow-x: hidden; }

/* --- Headings: the theme forces uppercase, bold and grey --- */
.aps2 h1, .aps2 h2, .aps2 h3 {
  text-transform: none !important; font-weight: 400 !important; letter-spacing: normal !important;
  font-family: var(--font-display) !important;
}
.aps2 h4 { text-transform: none !important; letter-spacing: normal; }
.aps2 .hero h1, .aps2 .page-hero h1 { color: var(--parchment) !important; }
.aps2 .hero h1 em { color: var(--azulejo-yellow) !important; font-style: italic; }

/* --- Links: the theme colours every <a> dark navy --- */
.aps2 a, .aps2 a:hover, .aps2 a:visited { text-decoration: none !important; }
.aps2 .nav-links a, .aps2 .nav-links a:link, .aps2 .nav-links a:visited,
.aps2 .nav-links a:hover, .aps2 .mobile-menu a, .aps2 .mobile-menu a:link, .aps2 .mobile-menu a:visited {
  color: var(--parchment) !important;
}
.aps2 .nav-links a.active, .aps2 .mobile-menu a.active { color: var(--azulejo-yellow) !important; }
.aps2 .nav-links a.nav-cta { color: var(--white) !important; }
.aps2 .nav-links li { list-style: none; margin: 0; }
.aps2 nav.scrolled ~ .mobile-menu { top: 60px; }
.aps2 a.btn-primary, .aps2 a.btn-primary:link, .aps2 a.btn-primary:visited, .aps2 a.btn-primary:hover { color: var(--white) !important; }
.aps2 a.btn-outline-light, .aps2 a.btn-outline-light:link, .aps2 a.btn-outline-light:visited, .aps2 a.btn-outline-light:hover { color: var(--parchment) !important; }
.aps2 a.btn-secondary, .aps2 a.btn-secondary:link, .aps2 a.btn-secondary:visited { color: var(--ultramarine) !important; }
.aps2 a.btn-secondary:hover { color: var(--parchment) !important; }
.aps2 a.btn-yellow, .aps2 a.btn-yellow:link, .aps2 a.btn-yellow:visited, .aps2 a.btn-yellow:hover { color: var(--ultramarine) !important; }

/* --- HERO: background photo --- */
.aps2 .hero-photo {
  position: absolute; inset: 0; background-image: url('/resources/HomepageV2/hero-image.jpeg');
  background-size: cover; background-position: center 30%;
}
.aps2 .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(30,15,65,0.85) 0%, rgba(30,15,65,0.70) 55%, rgba(30,15,65,0.40) 100%);
}
.aps2 .hero-desc { color: rgba(245,245,240,0.75) !important; }
@media (max-width: 768px) {
  .aps2 .hero-overlay { background: rgba(30,15,65,0.78); }
  .aps2 .hero-strip-divider { display: none; }
  .aps2 .hero-strip-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
}

/* =====================================================================
   APS v2 — HOME SECTIONS
   Paste AFTER the "WA OVERRIDES" block.
   ===================================================================== */

/* --- Brand typography: H3 is Source Sans 3 Bold (H1/H2 stay DM Serif) --- */
.aps2 h3 { font-family: var(--font-body) !important; font-weight: 700 !important; }

/* --- Theme safety: paragraphs and labels keep our colours --- */
.aps2 p { color: inherit; }
.aps2 .section-label { color: var(--crusader-red); }
.aps2 .section-label.text-yellow { color: var(--azulejo-yellow); }
.aps2 .section-label.text-blue { color: var(--azulejo-blue); }
.aps2 .text-parchment { color: var(--parchment) !important; }

/* --- Shared helpers --- */
.aps2 .btn-spaced { margin-top: 16px; }
.aps2 .welcome-grid { align-items: center; gap: 80px; }
.aps2 .section-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 24px; }

/* --- Welcome: azulejo panel --- */
.aps2 .azulejo-panel { background: var(--ultramarine); padding: 48px; border-radius: 2px; overflow: hidden; }
.aps2 .azulejo-panel svg { width: 100%; display: block; opacity: 0.9; }

/* --- Home events: cards built from the WA events module --- */
.aps2 .events-head { margin-bottom: 48px; }
.aps2 a.card, .aps2 a.card:visited, .aps2 a.card:hover { display: block; color: inherit !important; text-decoration: none !important; }
.aps2 .event-thumb {
  height: 220px; background-color: var(--ultramarine);
  background-image: linear-gradient(135deg, #1e0f41, #2d1a5e); background-size: cover;
  background-position: center;
}
.aps2 .card h3 { font-size: 20px; line-height: 1.3; }
.aps2 a.card:hover h3 { color: var(--crusader-red); }
.aps2 .card p.card-location { font-size: 14px; color: #555555; margin-bottom: 0; }
.aps2 .card-meta { margin-top: 16px; font-size: 13px; color: #666666; }
.aps2 .card.is-past .card-tag { color: #888888; }
.aps2 .events-empty { grid-column: 1 / -1; color: #666666; }

/* Loading placeholders */
.aps2 .card.is-loading { cursor: default; }
.aps2 .card.is-loading:hover { transform: none; box-shadow: none; }
.aps2 .card.is-loading .event-thumb { background-image: none; background-color: #e8e6ee; }
.aps2 .skeleton-line { height: 14px; background: #eeedf2; border-radius: 2px; margin-bottom: 12px; }
.aps2 .skeleton-line.short { width: 60%; }
.aps2 .card.is-loading .event-thumb, .aps2 .skeleton-line { animation: aps2Pulse 1.4s ease-in-out infinite; }
@keyframes aps2Pulse { 50% { opacity: 0.55; } }

/* --- Membership CTA band --- */
.aps2 .cta-band { background: var(--ultramarine); padding: 96px 0; position: relative; overflow: hidden; }
.aps2 .cta-band::before, .aps2 .cta-band::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; }
.aps2 .cta-band::before { right: -60px; top: -60px; width: 400px; height: 400px; background: rgba(140,180,220,0.07); }
.aps2 .cta-band::after { left: -40px; bottom: -60px; width: 280px; height: 280px; background: rgba(230,80,35,0.06); }
.aps2 .cta-band .container { position: relative; z-index: 1; }
.aps2 .cta-band-inner { max-width: 640px; margin: 0 auto; text-align: center; }
.aps2 .cta-band-inner h2 { margin-bottom: 20px; }
.aps2 .cta-band-inner .divider { margin: 24px auto; }
.aps2 .cta-band-text { color: rgba(245,245,240,0.7) !important; font-size: 17px; margin-bottom: 36px !important; }

/* --- Student award card --- */
.aps2 .award-kicker {
  color: rgba(245,245,240,0.5) !important; font-size: 14px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; margin-bottom: 8px;
}
.aps2 .award-title { color: var(--parchment) !important; font-size: 26px; margin: 16px 0 20px; }
.aps2 .award-text { color: rgba(245,245,240,0.65) !important; font-size: 15px; margin-bottom: 28px !important; }

/* --- Responsive --- */
@media (max-width: 900px) {
  .aps2 .welcome-grid { gap: 48px; }
}
@media (max-width: 768px) {
  .aps2 .section { padding: 72px 0; }
  .aps2 .events-head { margin-bottom: 32px; }
  .aps2 .azulejo-panel { padding: 32px; }
  .aps2 .cta-band { padding: 72px 0; }
}

/* =====================================================================
   APS v2 — EDITOR MODE FIXES
   Only applies inside the WA page editor (html.aps2-editor, set by the Global JavaScript; members' pages
   have no body.publicContentView either, so that class can't tell the editor apart).
   Makes every gadget easy to click and edit. Paste at the END of the stylesheet.
   ===================================================================== */
html.aps2-editor body .aps2 nav { position: relative !important; }
html.aps2-editor body .aps2 .mobile-menu { position: static !important; }
html.aps2-editor body .aps2 .hero { min-height: 640px !important; padding-top: 0 !important; }
html.aps2-editor body .aps2 .page-hero { padding-top: 80px !important; }
html.aps2-editor body .aps2 .animate { opacity: 1 !important; animation: none !important; }
html.aps2-editor body .WaGadgetCustomHTML { overflow: hidden !important; }

/* Editor-only gadget labels, taken from data-label="..." on the .aps2 wrapper */
html.aps2-editor body .aps2[data-label] { position: relative; }
html.aps2-editor body .aps2[data-label]::before {
  content: attr(data-label); position: absolute; top: 36px; left: 12px; z-index: 50; background: #f0b946;
  color: #1e0f41; font: 700 12px/1 'Source Sans 3', sans-serif; letter-spacing: 0.06em;
  text-transform: uppercase; padding: 6px 10px; border-radius: 3px; pointer-events: none;
}

/* =====================================================================
   APS v2 — EVENT DETAIL POPUP
   Paste at the END of the stylesheet (after the home CSS).
   ===================================================================== */
html.aps2-modal-open { overflow: hidden; }
.aps2.ev-modal {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  padding: 32px; background: transparent; overflow: visible;
}
.aps2.ev-modal[hidden] { display: none; }
.aps2 .ev-modal-backdrop {
  position: absolute; inset: 0; background: rgba(30,15,65,0.72); backdrop-filter: blur(3px); opacity: 0;
  transition: opacity 0.25s ease;
}
.aps2 .ev-modal-panel {
  position: relative; width: 100%; max-width: 980px; max-height: calc(100vh - 64px); overflow-y: auto;
  background: var(--parchment); border-radius: 4px; box-shadow: 0 32px 80px rgba(10,5,30,0.45); outline: none;
  opacity: 0; transform: translateY(24px) scale(0.98);
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.aps2.ev-modal.is-open .ev-modal-backdrop { opacity: 1; }
.aps2.ev-modal.is-open .ev-modal-panel { opacity: 1; transform: none; }
.aps2 .ev-modal-close {
  position: sticky; top: 16px; float: right; margin: 16px 16px -56px 0; z-index: 3; width: 40px; height: 40px;
  border: 0; border-radius: 50%; background: rgba(245,245,240,0.92); color: var(--ultramarine);
  font-size: 26px; line-height: 40px; text-align: center; cursor: pointer; transition: var(--transition);
}
.aps2 .ev-modal-close:hover { background: var(--azulejo-yellow); transform: rotate(90deg); }

/* --- Header with photo --- */
.aps2 .ev-modal-hero {
  position: relative; min-height: 300px; display: flex; align-items: flex-end;
  background-color: var(--ultramarine); background-image: linear-gradient(135deg, #1e0f41, #2d1a5e);
  background-size: cover; background-position: center;
}
.aps2 .ev-modal-hero::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(30,15,65,0.95) 0%, rgba(30,15,65,0.55) 55%, rgba(30,15,65,0.15) 100%);
}
.aps2 .ev-modal-hero-inner { position: relative; z-index: 1; display: flex; align-items: flex-end; gap: 24px; padding: 40px 48px 36px; }
.aps2 .ev-date-badge {
  flex-shrink: 0; width: 84px; padding: 12px 0 10px; background: var(--ultramarine);
  border-top: 4px solid var(--crusader-red); text-align: center; box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.aps2 .ev-date-day { display: block; font-family: var(--font-display); font-size: 40px; line-height: 1; color: var(--azulejo-yellow); }
.aps2 .ev-date-month {
  display: block; margin-top: 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.15em;
  text-transform: uppercase; color: rgba(245,245,240,0.7);
}
.aps2 .ev-modal-tag {
  font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--azulejo-yellow) !important; margin-bottom: 8px !important;
}
.aps2 .ev-modal-hero h2 { color: var(--parchment) !important; font-size: clamp(26px, 3.4vw, 40px); max-width: 640px; }

/* --- Body --- */
.aps2 .ev-modal-body { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; padding: 40px 48px 48px; }
.aps2 .ev-desc { font-size: 16px; line-height: 1.7; color: #333333; }
.aps2 .ev-desc p, .aps2 .ev-desc div { margin-bottom: 1em; }
.aps2 .ev-desc strong { color: var(--ultramarine); }
.aps2 .ev-desc ul, .aps2 .ev-desc ol { padding-left: 22px; margin-bottom: 1em; }
.aps2 .ev-desc li { margin-bottom: 4px; }
.aps2 .ev-desc img { max-width: 100%; height: auto; display: block; margin: 20px 0; border-radius: 2px; }
.aps2 .ev-desc a, .aps2 .ev-desc a:link, .aps2 .ev-desc a:visited {
  color: var(--crusader-red) !important; text-decoration: underline !important; text-underline-offset: 3px;
}
.aps2 .ev-desc a.stylizedButton {
  display: inline-block; padding: 12px 24px; border: 2px solid var(--ultramarine); border-radius: 4px;
  color: var(--ultramarine) !important; font-size: 13px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; text-decoration: none !important;
}
.aps2 .ev-desc a.stylizedButton:hover { background: var(--ultramarine); color: var(--parchment) !important; }

/* Descriptions pasted from emails use layout tables: flatten them so they fit the column */
.aps2 .ev-desc { min-width: 0; overflow-wrap: break-word; }
.aps2 .ev-desc table, .aps2 .ev-desc tbody, .aps2 .ev-desc tr, .aps2 .ev-desc td, .aps2 .ev-desc th {
  display: block; width: auto !important; max-width: 100%; border: 0 !important;
}
.aps2 .ev-desc * { max-width: 100%; }
.aps2 .ev-desc h3 { font-size: 20px; margin: 1.2em 0 0.5em; color: var(--ultramarine); }
.aps2 .ev-desc h4 { font-size: 16px; margin: 1em 0 0.4em; color: var(--ultramarine); }
.aps2 .ev-desc blockquote { border-left: 4px solid var(--azulejo-yellow); padding: 4px 0 4px 20px; margin: 1em 0; }

/* --- Sidebar --- */
.aps2 .ev-side { align-self: start; position: sticky; top: 24px; }
.aps2 .ev-facts { background: #ffffff; border-top: 4px solid var(--azulejo-blue); padding: 8px 24px; margin-bottom: 20px; }
.aps2 .ev-fact { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid rgba(30,15,65,0.08); }
.aps2 .ev-fact:last-child { border-bottom: 0; }
.aps2 .ev-fact-icon { flex-shrink: 0; width: 18px; height: 18px; margin-top: 2px; color: var(--crusader-red); }
.aps2 .ev-fact-icon svg { width: 18px; height: 18px; display: block; }
.aps2 .ev-fact-label {
  display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  color: #888888;
}
.aps2 .ev-fact-value { display: block; font-size: 15px; color: var(--ultramarine); line-height: 1.45; }
.aps2 .ev-tickets { background: #ffffff; padding: 20px 24px; margin-bottom: 20px; }
.aps2 .ev-tickets h4 {
  font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--crusader-red); margin-bottom: 8px;
}
.aps2 .ev-tickets ul { list-style: none; }
.aps2 .ev-tickets li {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 0;
  border-bottom: 1px solid rgba(30,15,65,0.08); font-size: 14px;
}
.aps2 .ev-tickets li:last-child { border-bottom: 0; }
.aps2 .ev-ticket-name { color: #444444; }
.aps2 .ev-ticket-name small { display: block; font-size: 12px; color: #888888; }
.aps2 .ev-ticket-price { font-family: var(--font-display); font-size: 20px; color: var(--ultramarine); white-space: nowrap; }
.aps2 .ev-actions { display: flex; flex-direction: column; gap: 12px; }
.aps2 .ev-actions .btn { justify-content: center; width: 100%; }
.aps2 .ev-past-note { font-size: 14px; color: #888888; font-style: italic; margin: 0 0 4px !important; }

/* --- Responsive: full-screen sheet on phones --- */
@media (max-width: 860px) {
  .aps2 .ev-modal-body { grid-template-columns: 1fr; gap: 32px; padding: 32px 24px 40px; }
  .aps2 .ev-side { position: static; order: -1; }
  .aps2 .ev-modal-hero-inner { padding: 32px 24px 28px; }
}
@media (max-width: 600px) {
  .aps2.ev-modal { padding: 0; }
  .aps2 .ev-modal-panel { max-height: 100%; height: 100%; border-radius: 0; }
  .aps2 .ev-modal-hero { min-height: 240px; }
  .aps2 .ev-date-badge { width: 64px; }
  .aps2 .ev-date-day { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .aps2 .ev-modal-backdrop, .aps2 .ev-modal-panel { transition: none; }
}

/* =====================================================================
   APS v2 — FOOTER
   Paste at the END of the stylesheet.
   ===================================================================== */
.aps2 .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.aps2 footer h4 { font-family: var(--font-body) !important; }
.aps2 .footer-newsletter-text h4 { font-family: var(--font-display) !important; font-weight: 400; }
.aps2 .footer-newsletter-text p, .aps2 .footer-brand p { color: rgba(245,245,240,0.55) !important; }
.aps2 .footer-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.aps2 .footer-logo span {
  font-weight: 700; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.3;
  color: var(--parchment);
}
.aps2 .footer-brand-note { margin-top: 16px; }
.aps2 .sponsors-label {
  flex-shrink: 0; font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  color: rgba(245,245,240,0.25);
}

/* Theme colours every link dark navy: restore footer link colours */
.aps2 footer a, .aps2 footer a:link, .aps2 footer a:visited { text-decoration: none !important; }
.aps2 .footer-col ul li a, .aps2 .footer-col ul li a:link, .aps2 .footer-col ul li a:visited { color: rgba(245,245,240,0.55) !important; }
.aps2 .footer-col ul li a:hover { color: var(--parchment) !important; }
.aps2 .footer-col ul li { list-style: none; }
.aps2 .footer-social { display: flex; gap: 12px; margin-top: 24px; }
.aps2 .footer-social a {
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 4px;
  background: rgba(245,245,240,0.08); color: rgba(245,245,240,0.6) !important; transition: var(--transition);
}
.aps2 .footer-social a:hover { background: var(--azulejo-yellow); color: var(--ultramarine) !important; }
.aps2 .footer-social svg { width: 16px; height: 16px; }

/* Newsletter field: override theme input styling */
.aps2 .newsletter-form input[type="email"] {
  height: auto !important; margin: 0 !important; box-shadow: none !important;
  background: rgba(245,245,240,0.1) !important; color: var(--parchment) !important;
  font-family: var(--font-body) !important; font-size: 14px !important;
}
.aps2 .newsletter-form input[type="email"]:focus { border-color: var(--azulejo-yellow) !important; }
.aps2 .newsletter-form button { margin: 0 !important; }

/* WA branding line: blended into the footer (kept visible, as WA requires on most plans) */
body:has(.aps2) .zoneWAbranding { background: #1e0f41; padding: 0 0 20px; margin: 0; }
body:has(.aps2) #idFooterPoweredByContainer {
  text-align: center; font-family: 'Source Sans 3', sans-serif; font-size: 11px; letter-spacing: 0.04em;
  color: rgba(245,245,240,0.25);
}
body:has(.aps2) #idFooterPoweredByContainer a,
body:has(.aps2) #idFooterPoweredByContainer a:link, body:has(.aps2) #idFooterPoweredByContainer a:visited {
  color: rgba(245,245,240,0.35) !important; text-decoration: none !important;
}
body:has(.aps2) #idFooterPoweredByContainer a:hover { color: var(--azulejo-yellow, #f0b946) !important; }

/* =====================================================================
   APS v2 — EVENTS PAGE
   Paste at the END of the stylesheet.
   ===================================================================== */

/* --- Views: the script sets data-state on #aps2EventsPage --- */
#aps2EventsPage [data-view] { display: none; }
#aps2EventsPage[data-state="list"] [data-view="list"],
#aps2EventsPage[data-state="registration"] [data-view="compact"], #aps2EventsPage[data-state="other"] [data-view="compact"] {
  display: block;
}

/* The native Event calendar is the data source: hidden once our view has loaded */
html.aps2-hide-native-events .WaGadgetEvents { display: none !important; }

/* --- Page hero --- */
.aps2 .page-hero .tile-bg { position: absolute; top: 0; right: 0; width: 40%; height: 100%; opacity: 0.06; pointer-events: none; }
.aps2 .page-hero .section-label.text-blue { color: var(--azulejo-blue); }
.aps2 .page-hero-compact { padding: 128px 0 56px; }
.aps2 .page-hero-compact h1 { font-size: clamp(30px, 4vw, 44px); margin-bottom: 12px; }
.aps2 a.page-hero-back, .aps2 a.page-hero-back:visited {
  color: var(--azulejo-yellow) !important; font-size: 13px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* --- Tabs --- */
.aps2 .tab-btn { display: inline-flex; align-items: center; gap: 8px; }
/* The Global JavaScript still fills in the event counts, but only the tab names are shown */
.aps2 .tab-count { display: none !important; }

/* --- Upcoming: wide cards ---
   With a photo: the photo on the left at the same 16:10 ratio as the past-event cards, with the date on it,
   and the text centred next to it. Without a photo: the date block. The description is only shown in the popup. */
.aps2 .event-card { cursor: pointer; }
.aps2 .event-card.has-image, .aps2 .event-card.is-loading { grid-template-columns: minmax(0, 7fr) minmax(0, 13fr); }
.aps2 .event-card-media {
  position: relative; align-self: stretch; aspect-ratio: 16 / 10; background-color: var(--ultramarine);
  background-image: linear-gradient(135deg, #1e0f41, #2d1a5e); background-size: cover; background-position: center;
}
.aps2 .event-card-media .event-card-date {
  position: absolute; left: 20px; bottom: 20px; min-width: 84px; padding: 10px 14px 8px; flex-direction: column; gap: 0;
  border-top: 4px solid var(--crusader-red); box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.aps2 .event-card-media .event-card-day { font-size: 36px; }
.aps2 .event-card-media .event-card-month { font-size: 11px; }
.aps2 .event-card.has-image .event-card-body { align-self: center; }
.aps2 .event-card-body h3 { font-size: 22px; line-height: 1.3; }
.aps2 .event-card:hover .event-card-body h3 { color: var(--crusader-red); }
.aps2 .event-meta-item svg { color: var(--crusader-red); opacity: 1; }
.aps2 .event-card-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.aps2 .event-card.is-loading { cursor: default; min-height: 180px; }
.aps2 .event-card.is-loading:hover { transform: none; box-shadow: none; }
.aps2 .event-card.is-loading .event-card-date { background: #e8e6ee; aspect-ratio: 16 / 10; }

/* Empty state */
.aps2 .events-empty-box {
  background: #ffffff; border-top: 4px solid var(--azulejo-yellow); padding: 48px; text-align: center;
  max-width: 720px; margin: 0 auto;
}
.aps2 .events-empty-box h3 { font-size: 24px; margin-bottom: 12px; color: var(--ultramarine); }
.aps2 .events-empty-box p { color: #555555; max-width: 520px; margin-left: auto; margin-right: auto; }
.aps2 .events-empty-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }

/* --- Past: grid + load more --- */
.aps2 .events-more { text-align: center; margin-top: 40px; }
.aps2 .events-more .btn[disabled] { opacity: 0.6; cursor: wait; }

/* --- Fundraising --- */
.aps2 .fundraising-grid { align-items: center; gap: 64px; }
.aps2 .fundraising-list { list-style: none; margin-top: 20px; }
.aps2 .fundraising-list li {
  padding: 16px 0; border-bottom: 1px solid rgba(245,245,240,0.1); color: rgba(245,245,240,0.65);
  font-size: 15px;
}
.aps2 .fundraising-list li:last-child { border-bottom: 0; }
.aps2 .fundraising-list strong { display: block; color: var(--azulejo-yellow); font-size: 16px; margin-bottom: 2px; }

/* --- Native WA registration steps, restyled (shown under the compact header) --- */
body:has(#aps2EventsPage) .WaGadgetEventsStateRegistration, body:has(#aps2EventsPage) .WaGadgetPublicWizard {
  max-width: 1104px; margin: 0 auto !important; padding: 56px 48px 96px !important;
  font-family: 'Source Sans 3', sans-serif; color: #1e0f41;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard .pageTitle { display: none; }
body:has(#aps2EventsPage) .WaGadgetPublicWizard .infoOuterContainer {
  background: #ffffff; border-top: 4px solid #8cb4dc; padding: 24px 28px; margin-bottom: 32px;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard .infoTitle {
  font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: #888888;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard .stepTitle, body:has(#aps2EventsPage) .WaGadgetPublicWizard .formTitle {
  font-family: 'DM Serif Display', Georgia, serif !important; font-weight: 400 !important;
  text-transform: none !important; color: #1e0f41 !important;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard input[type="text"],
body:has(#aps2EventsPage) .WaGadgetPublicWizard input[type="email"],
body:has(#aps2EventsPage) .WaGadgetPublicWizard input[type="tel"],
body:has(#aps2EventsPage) .WaGadgetPublicWizard input[type="password"],
body:has(#aps2EventsPage) .WaGadgetPublicWizard select, body:has(#aps2EventsPage) .WaGadgetPublicWizard textarea {
  border: 1px solid rgba(30,15,65,0.2) !important; border-radius: 4px !important;
  padding: 10px 14px !important; font-family: 'Source Sans 3', sans-serif !important;
  font-size: 15px !important; background: #ffffff !important; box-shadow: none !important;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard input:focus,
body:has(#aps2EventsPage) .WaGadgetPublicWizard select:focus, body:has(#aps2EventsPage) .WaGadgetPublicWizard textarea:focus {
  border-color: #e65023 !important; outline: none;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard input[type="submit"],
body:has(#aps2EventsPage) .WaGadgetPublicWizard input[type="button"], body:has(#aps2EventsPage) .WaGadgetPublicWizard .stylizedButton {
  background: #e65023 !important; border: 2px solid #e65023 !important; border-radius: 4px !important;
  color: #ffffff !important; font-family: 'Source Sans 3', sans-serif !important; font-size: 13px !important;
  font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;
  padding: 12px 28px !important; cursor: pointer;
}
body:has(#aps2EventsPage) .WaGadgetPublicWizard .navigationContainer .left input {
  background: transparent !important; color: #1e0f41 !important; border-color: #1e0f41 !important;
}

/* --- Responsive --- */
@media (max-width: 860px) {
  body:has(#aps2EventsPage) .WaGadgetPublicWizard { padding: 40px 24px 72px !important; }
}
/* Phones: photo on top, like the past-event cards */
@media (max-width: 768px) {
  .aps2 .event-card.has-image, .aps2 .event-card.is-loading { grid-template-columns: 1fr; }
  .aps2 .event-card-media .event-card-date { left: 16px; bottom: 16px; padding: 10px 14px 8px; }
  .aps2 .events-empty-box { padding: 36px 24px; }
}

/* The "APS Journal Submissions" event (Culture page form inbox) must never show as an event in WA's own lists.
   If that event is ever recreated, replace 6856167 with the new event number (see its Event URL in WA). */
:is(.WaGadgetEvents, .WaGadgetUpcomingEvents) :is(li, tr):has(a[href*="event-6856167"]) { display: none !important; }

/* "Submit a Piece" (the Journal inbox event's registration form): no event block with dates, no "Add to my calendar" */
body:has(#aps2EventsPage.is-journal) .WaGadgetEvents :is(#idInfoContainer, [id^="init-add-event-to-calendar-dropdown"]) { display: none !important; }

/* =====================================================================
   APS v2 — ABOUT PAGE
   ===================================================================== */
.aps2 .about-intro { align-items: start; gap: 80px; }
.aps2 .about-stats { display: flex; gap: 40px; flex-wrap: wrap; margin-top: 36px; }
.aps2 .about-stat-number { display: block; font-family: var(--font-display); font-size: 36px; line-height: 1; color: var(--crusader-red); }
.aps2 .about-stat-label {
  display: block; margin-top: 6px; font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: #888888;
}

/* Treaty of Windsor card (as in the draft) */
.aps2 .treaty-card { position: relative; overflow: hidden; background: var(--parchment); padding: 48px; border-radius: 2px; }
.aps2 .treaty-card-motif {
  position: absolute; right: -20px; bottom: -20px; width: 200px; height: 200px; opacity: 0.07;
  pointer-events: none;
}
.aps2 .treaty-card > *:not(.treaty-card-motif) { position: relative; }
.aps2 .treaty-card .section-label { color: var(--crusader-red); }
.aps2 .treaty-card h3 {
  font-family: var(--font-display) !important; font-weight: 400 !important; font-size: 22px;
  margin-bottom: 16px; color: var(--ultramarine);
}
.aps2 .treaty-card p:not(.section-label) { font-size: 15px; color: #555555; }
.aps2 .treaty-quote { margin-top: 24px; padding-top: 24px; border-top: 2px solid var(--azulejo-yellow); }
.aps2 .treaty-quote p { font-family: var(--font-display) !important; font-style: italic; font-size: 18px !important; line-height: 1.5; color: var(--ultramarine) !important; margin: 0; }
.aps2 .treaty-quote cite {
  display: block; margin-top: 10px; font-size: 12px; font-weight: 700; font-style: normal;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--crusader-red);
}

/* Timeline */
.aps2 .timeline-wrap { max-width: 720px; margin: 0 auto; }
.aps2 .timeline-wrap > .section-label, .aps2 .timeline-wrap > h2 { text-align: center; }
.aps2 .timeline-wrap > .divider { margin: 24px auto 48px; }
/* Theme greys out every h4: keep ours */
.aps2 .timeline-item h4, .aps2 .committee-member h4 { color: var(--ultramarine) !important; }

/* Committee */
.aps2 .committee-intro { max-width: 560px; color: #555555; margin-bottom: 48px !important; }
.aps2 .committee-leads { display: flex; justify-content: center; gap: 48px; flex-wrap: wrap; margin-bottom: 24px; }
.aps2 .committee-leads .committee-avatar { width: 104px; height: 104px; font-size: 34px; border: 3px solid var(--azulejo-yellow); }
.aps2 .committee-leads .committee-member h4 { font-size: 18px; }
.aps2 .committee-grid {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0 48px; padding-top: 24px; border-top: 1px solid rgba(30,15,65,0.08);
}
.aps2 .committee-grid .committee-member { min-width: 180px; }
.aps2 .committee-heading { margin: 64px 0 24px; text-align: center; font-size: clamp(22px, 2.4vw, 28px) !important; color: var(--ultramarine); }

/* Honorary President and Co-Patrons: one light row, the President in the centre, thin dividers between */
.aps2 .patrons {
  display: grid; grid-template-columns: 1fr 1.4fr 1fr; align-items: center; padding: 8px 0 48px;
  border-bottom: 1px solid rgba(30,15,65,0.08); text-align: center;
}
.aps2 .patron { padding: 8px 28px; }
.aps2 .patron + .patron { border-left: 1px solid rgba(30,15,65,0.12); }
.aps2 .patron .patron-role { margin-bottom: 8px; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--crusader-red); }
.aps2 .patron h4 { font-family: var(--font-display) !important; font-weight: 400 !important; font-size: 19px; line-height: 1.35; color: var(--ultramarine) !important; }
.aps2 .patron-main h4 { font-size: 24px; }
.aps2 .committee-grid .committee-member p { color: #888888; }

/* Get involved */
.aps2 .get-involved {
  max-width: 640px; margin: 56px auto 0; padding: 40px; background: var(--parchment); border-radius: 2px;
  text-align: center;
}
.aps2 .get-involved h3 { font-size: 22px; margin-bottom: 12px; color: var(--ultramarine); }
.aps2 .get-involved p { font-size: 15px; color: #555555; margin-bottom: 24px !important; }
@media (max-width: 900px) {
  .aps2 .about-intro { gap: 48px; }
}
@media (max-width: 768px) {
  .aps2 .treaty-card { padding: 32px; }
  .aps2 .about-stats { gap: 28px; }
  .aps2 .committee-leads { gap: 24px; }
  .aps2 .patrons { grid-template-columns: 1fr; padding-bottom: 32px; }
  .aps2 .patron { padding: 18px 0; }
  .aps2 .patron { border-left: 0 !important; border-top: 1px solid rgba(30,15,65,0.12); }
  .aps2 .patron-main { order: -1; border-top: 0; }
  .aps2 .committee-heading { margin-top: 48px; }
  .aps2 .get-involved { padding: 32px 24px; }
}

/* =====================================================================
   APS v2 — ACCOUNT (Log in / My account in the menu + login popup)
   ===================================================================== */

/* The native WA Login gadget is the engine: hidden on the live site (visitors and members), visible in the editor */
html:not(.aps2-editor) body:has(.aps2-navwrap) .WaGadgetLoginForm {
  position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important;
  clip: rect(0 0 0 0) !important; margin: 0 !important; padding: 0 !important;
}

/* Show "Log in" or "My account" depending on the visitor */
/* Members are already logged in: no "Log in" and no "Join Us"; My account takes the last spot */
html.aps2-member .aps2 .nav-login, html.aps2-member .aps2 .nav-join-li, html.aps2-member .aps2 .mobile-anon { display: none !important; }
html:not(.aps2-member) .aps2 .nav-account, html:not(.aps2-member) .aps2 .mobile-member { display: none !important; }
.aps2 .nav-account-li { position: relative; }
.aps2 .nav-links a.nav-login { opacity: 1; }
.aps2 .nav-links .nav-account-toggle {
  display: flex; align-items: center; gap: 10px; background: none; border: 0; padding: 6px 12px;
  border-radius: 4px; cursor: pointer; color: var(--parchment) !important;
  font-family: var(--font-body) !important; font-size: 13px !important; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; transition: var(--transition);
}
.aps2 .nav-account-label { color: var(--parchment) !important; }
.aps2 .nav-account-toggle:hover, .aps2 .nav-account.open .nav-account-toggle { background: rgba(245,245,240,0.1); }
.aps2 .nav-account-avatar {
  width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--azulejo-yellow); color: var(--ultramarine); font-family: var(--font-display);
  font-size: 15px; letter-spacing: 0;
}
.aps2 .nav-account-dropdown {
  position: absolute; top: calc(100% + 12px); right: 0; min-width: 240px; background: var(--parchment);
  border-top: 4px solid var(--azulejo-yellow); border-radius: 4px; box-shadow: 0 20px 48px rgba(10,5,30,0.3);
  padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: var(--transition);
}
.aps2 .nav-account.open .nav-account-dropdown { opacity: 1; visibility: visible; transform: none; }
.aps2 .nav-account-hello {
  padding: 10px 20px 12px; margin: 0 0 4px !important; border-bottom: 1px solid rgba(30,15,65,0.08);
  font-size: 12px !important; color: #888888 !important;
}
.aps2 .nav-account-hello strong { display: block; font-size: 15px; color: var(--ultramarine); }
/* Stronger than the white ".nav-links a" rule so dropdown links stay readable */
.aps2 .nav-links .nav-account-dropdown a,
.aps2 .nav-links .nav-account-dropdown a:link,
.aps2 .nav-links .nav-account-dropdown a:visited,
.aps2 .nav-links .nav-account-dropdown a.active, .aps2 .nav-links .nav-account-dropdown button {
  display: block; width: 100%; text-align: left; padding: 10px 20px !important; background: none !important;
  border: 0; border-radius: 0 !important; color: var(--ultramarine) !important; opacity: 1 !important;
  font-family: var(--font-body); font-size: 14px !important; font-weight: 600; letter-spacing: 0 !important;
  text-transform: none !important; cursor: pointer;
}
.aps2 .nav-links .nav-account-dropdown a:hover, .aps2 .nav-links .nav-account-dropdown button:hover {
  background: rgba(30,15,65,0.05) !important; color: var(--crusader-red) !important;
}
.aps2 .nav-links .nav-account-dropdown button { border-top: 1px solid rgba(30,15,65,0.08) !important; margin-top: 4px; }

/* --- Login popup (reuses the event popup frame) --- */
.aps2 .acc-panel { max-width: 460px; padding: 48px 44px 36px; }
.aps2 .acc-panel .ev-modal-close { margin: -32px -28px 0 0; background: rgba(30,15,65,0.06); }
.aps2 .acc-panel .ev-modal-close:hover { background: var(--azulejo-yellow); }
.aps2 .acc-head { margin-bottom: 28px; }
.aps2 .acc-head h2 { font-size: 32px; margin-bottom: 8px; color: var(--ultramarine); }
.aps2 .acc-head p:not(.section-label) { font-size: 15px; color: #555555; }

/* WA's own form, restyled */
.aps2 .acc-form .loginContainerForm, .aps2 .acc-form .loginContainerFormInner {
  display: flex; flex-direction: column; gap: 0; visibility: visible !important; opacity: 1 !important; position: static !important;
}
.aps2 .acc-form .openAuthFormContainer { order: 2; margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(30,15,65,0.1); }
.aps2 .acc-form .oAuthButtonsContainer { display: flex; flex-direction: column; gap: 10px; }
.aps2 .acc-form .wa-authenticateLoginLink {
  display: flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 16px;
  border: 1px solid rgba(30,15,65,0.18); border-radius: 4px; background: #ffffff;
  color: var(--ultramarine) !important; font-size: 14px; font-weight: 600; cursor: pointer;
  transition: var(--transition);
}
.aps2 .acc-form .wa-authenticateLoginLink:hover { border-color: var(--ultramarine); }
.aps2 .acc-form .loginUserName, .aps2 .acc-form .loginPassword { margin-bottom: 14px; }
.aps2 .acc-form .loginUserName label, .aps2 .acc-form .loginPassword label {
  display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #888888;
}
.aps2 .acc-form input.emailTextBoxControl, .aps2 .acc-form input.passwordTextBoxControl {
  width: 100% !important; height: auto !important; padding: 13px 16px !important;
  border: 1px solid rgba(30,15,65,0.2) !important; border-radius: 4px !important;
  background: #ffffff !important; box-shadow: none !important; font-family: var(--font-body) !important;
  font-size: 15px !important; color: var(--ultramarine) !important;
}
.aps2 .acc-form input.emailTextBoxControl:focus, .aps2 .acc-form input.passwordTextBoxControl:focus {
  border-color: var(--crusader-red) !important; outline: none;
}
.aps2 .acc-form .password-wrapper { position: relative; }
.aps2 .acc-form .toggle-password { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: #888888; cursor: pointer; }
.aps2 .acc-form .loginActionRememberMe { display: flex; align-items: center; gap: 8px; margin: 4px 0 20px; font-size: 14px; color: #555555; }
.aps2 .acc-form input.loginButtonControl {
  width: 100%; padding: 14px 28px !important; border: 2px solid var(--crusader-red) !important;
  border-radius: 4px !important; background: var(--crusader-red) !important; color: #ffffff !important;
  font-family: var(--font-body) !important; font-size: 13px !important; font-weight: 700 !important;
  letter-spacing: 0.1em !important; text-transform: uppercase !important; cursor: pointer;
  transition: var(--transition);
}
.aps2 .acc-form input.loginButtonControl:hover { background: #c93e18 !important; border-color: #c93e18 !important; }
.aps2 .acc-form .loginPasswordForgot { margin-top: 14px; text-align: center; }
.aps2 .acc-form .loginPasswordForgot a, .aps2 .acc-join a { color: var(--crusader-red) !important; font-weight: 600; font-size: 14px; }
.aps2 .acc-join { margin-top: 24px !important; padding-top: 20px; border-top: 1px solid rgba(30,15,65,0.08); text-align: center; font-size: 14px !important; color: #555555 !important; }
@media (max-width: 600px) {
  .aps2 .acc-panel { padding: 40px 24px 28px; }
  .aps2 .acc-panel .ev-modal-close { margin: -24px -8px 0 0; }
}

/* =====================================================================
   WA system page "Authorization required" = Log in (/Sys/Login), with the v2 menu and footer
   ===================================================================== */
body:has(.aps2) .WaGadgetAuthorizationRequired {
  display: flex; flex-direction: column; max-width: 480px; margin: 140px auto 96px !important;
  padding: 40px 44px 32px !important; background: #ffffff; border-top: 4px solid #e65023; border-radius: 2px;
  box-shadow: 0 12px 40px rgba(30,15,65,0.08); font-family: 'Source Sans 3', sans-serif; color: #1e0f41;
}
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-head { order: 0; margin-bottom: 24px; background: transparent; overflow: visible; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-head .section-label { margin-bottom: 8px; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-head h1 { font-size: 34px; margin-bottom: 8px; color: #1e0f41 !important; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-head p:not(.section-label) { font-size: 15px; color: #555555; margin: 0; }
body:has(.aps2) .WaGadgetAuthorizationRequired .authFormContainer { order: 1; }
body:has(.aps2) .WaGadgetAuthorizationRequired .openAuthFormContainer { order: 2; margin-top: 8px; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-foot { order: 3; margin: 24px 0 0 !important; padding-top: 20px; border-top: 1px solid rgba(30,15,65,0.08); text-align: center; font-size: 14px; color: #555555; background: transparent; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-foot a { color: #e65023 !important; font-weight: 600; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-or { display: flex; align-items: center; gap: 12px; margin: 16px 0; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #999999; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-or::before, body:has(.aps2) .WaGadgetAuthorizationRequired .sys-or::after {
  content: ''; flex: 1; height: 1px; background: rgba(30,15,65,0.12);
}

/* WA's form table and fields */
body:has(.aps2) .WaGadgetAuthorizationRequired :is(table, tbody, tr, td) { display: block; width: 100% !important; padding: 0 !important; border: 0 !important; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idLoginBox, body:has(.aps2) .WaGadgetAuthorizationRequired #idPasswordBox {
  margin-bottom: 16px;
}
body:has(.aps2) .WaGadgetAuthorizationRequired span.mandatory { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #888888; }
body:has(.aps2) .WaGadgetAuthorizationRequired .mandatorySymbol[style*="hidden"] { display: none; }
body:has(.aps2) .WaGadgetAuthorizationRequired input[type="text"], body:has(.aps2) .WaGadgetAuthorizationRequired input[type="password"] {
  width: 100% !important; height: auto !important; box-sizing: border-box; padding: 13px 16px !important;
  border: 1px solid rgba(30,15,65,0.2) !important; border-radius: 4px !important;
  background: #ffffff !important; box-shadow: none !important;
  font-family: 'Source Sans 3', sans-serif !important; font-size: 15px !important; color: #1e0f41 !important;
}
body:has(.aps2) .WaGadgetAuthorizationRequired input:focus { border-color: #e65023 !important; outline: none; }
body:has(.aps2) .WaGadgetAuthorizationRequired .password-wrapper { position: relative; }
body:has(.aps2) .WaGadgetAuthorizationRequired .toggle-password { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: #888888; cursor: pointer; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idRememberMe { display: flex; align-items: center; gap: 8px; margin: 4px 0 20px; font-size: 14px; color: #555555; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idRememberMe input { width: 18px; height: 18px; accent-color: #e65023; margin: 0; }
body:has(.aps2) .WaGadgetAuthorizationRequired input.loginButton {
  width: 100% !important; height: auto !important; padding: 14px 28px !important;
  border: 2px solid #e65023 !important; border-radius: 4px !important; background: #e65023 !important;
  color: #ffffff !important; font-family: 'Source Sans 3', sans-serif !important; font-size: 13px !important;
  font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;
  cursor: pointer;
}
body:has(.aps2) .WaGadgetAuthorizationRequired input.loginButton:hover { background: #c93e18 !important; border-color: #c93e18 !important; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idForgotLinkBox { margin-top: 14px; text-align: center; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idForgotLinkBox a { color: #e65023 !important; font-weight: 600; font-size: 14px; }

/* Log in with Google / Microsoft / Apple */
body:has(.aps2) .WaGadgetAuthorizationRequired .oAuthButtonsContainer { display: flex; flex-direction: column; gap: 10px; }
body:has(.aps2) .WaGadgetAuthorizationRequired .wa-authenticateLoginLink {
  display: flex !important; align-items: center; justify-content: center; gap: 10px; width: auto !important;
  padding: 11px 16px !important; border: 1px solid rgba(30,15,65,0.18) !important;
  border-radius: 4px !important; background: #ffffff !important; color: #1e0f41 !important; font-size: 14px;
  font-weight: 600; cursor: pointer;
}
body:has(.aps2) .WaGadgetAuthorizationRequired .wa-authenticateLoginLink:hover { border-color: #1e0f41 !important; }

/* Error messages from WA (wrong email or password, etc.) */
body:has(.aps2) .WaGadgetAuthorizationRequired :is(#ctl00_ContentArea_validationSummary, .errorMessage, .loginError, [style*="color: Red"], [style*="color:Red"]):not(:empty) {
  display: block;
  margin: 0 0 16px;
  padding: 12px 16px;
  border-left: 3px solid #e65023;
  background: rgba(230,80,35,0.08);
  color: #a3361a !important;
  font-size: 14px;
}
@media (max-width: 600px) {
  body:has(.aps2) .WaGadgetAuthorizationRequired { margin: 110px 16px 72px !important; padding: 32px 22px 24px !important; }
}

/* Log in page: clean-up of WA's two-column layout (divider line, stray asterisks, narrow buttons) */
body:has(.aps2) .WaGadgetAuthorizationRequired :is(.authFormContainer, .openAuthFormContainer, .loginPageTable, #idLoginBox, #idPasswordBox, #idSubmitBox, #idLoginButtonBox) {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  border: 0 !important;
  box-sizing: border-box;
}
body:has(.aps2) .WaGadgetAuthorizationRequired .mandatorySymbol { display: none !important; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idLoginBox > div, body:has(.aps2) .WaGadgetAuthorizationRequired #idPasswordBox > div {
  width: 100% !important;
}
body:has(.aps2) .WaGadgetAuthorizationRequired #idSubmitBox { display: flex; flex-direction: column; align-items: stretch; }
body:has(.aps2) .WaGadgetAuthorizationRequired #idLoginButtonBox, body:has(.aps2) .WaGadgetAuthorizationRequired #idLoginButtonBox > span {
  display: block; width: 100% !important;
}
body:has(.aps2) .WaGadgetAuthorizationRequired #idForgotLinkBox { float: none !important; margin: 14px 0 0 !important; text-align: center; }
body:has(.aps2) .WaGadgetAuthorizationRequired .oAuthForm, body:has(.aps2) .WaGadgetAuthorizationRequired .oAuthButtonsContainer {
  width: 100% !important;
}
body:has(.aps2) .WaGadgetAuthorizationRequired .wa-authenticateLoginLink { width: 100% !important; box-sizing: border-box; margin: 0 !important; height: auto !important; }
body:has(.aps2) .WaGadgetAuthorizationRequired .authenticateLoginIcon {
  display: inline-block !important; flex-shrink: 0; width: 20px !important; height: 20px !important;
  margin: 0 !important; background-size: contain !important; background-repeat: no-repeat !important;
  background-position: center !important; position: static !important;
}
/* WA's Apple logo is white (made for a black button) */
body:has(.aps2) .WaGadgetAuthorizationRequired .authenticateLoginIcon[provider="Apple"] { filter: invert(1); }
body:has(.aps2) .WaGadgetAuthorizationRequired .authenticateLoginText { position: static !important; padding: 0 !important; color: #1e0f41 !important; font-size: 14px !important; font-weight: 600 !important; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-or { width: 100%; }
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-error {
  display: block; margin: 0 0 18px !important; padding: 12px 16px; border-left: 3px solid #e65023;
  background: rgba(230,80,35,0.08); color: #a3361a !important; font-size: 14px !important; line-height: 1.5;
}
body:has(.aps2) .WaGadgetAuthorizationRequired .sys-error * { color: #a3361a !important; }

/* --- WA's "Admin view" strip (admins only, v2 pages): moved to the bottom left so it no longer covers the menu,
       with a light brand touch (navy, rounded, soft shadow). Tagged by APS2SystemPages (.aps2-adminbar);
       pages without it are unchanged. --- */
.aps2-adminbar {
  position: fixed !important;
  top: auto !important;
  right: auto !important;
  bottom: 16px !important;
  left: 16px !important;
  z-index: 9990 !important;
  border-radius: 4px !important;
  background: #1e0f41 !important;
  /* thin light edge so it still shows over the navy footer */
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.22), 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}
/* WA's own grey / black parts become transparent on the navy strip */
.aps2-adminbar * { background-color: transparent !important; }
.aps2-adminbar .aps2-adminbar-switch {
  font-family: 'Source Sans 3', sans-serif !important; font-weight: 600 !important; color: #ffffff !important;
  text-decoration: none !important; border-radius: 4px 0 0 4px !important; transition: color 0.2s ease;
}
.aps2-adminbar .aps2-adminbar-switch:is(:hover, :focus-visible) { color: #f0b946 !important; }
/* Log-out icon: thin divider, no hover change */
.aps2-adminbar .aps2-adminbar-logout, .aps2-adminbar .aps2-adminbar-logout:is(:hover, :focus, :active) {
  border-left: 1px solid rgba(255, 255, 255, 0.18) !important; color: #ffffff !important;
  opacity: 1 !important; filter: none !important; box-shadow: none !important;
  text-decoration: none !important;
}
/* WA's "Log out" tooltip opens below and is cut off: hidden, replaced by .aps2-adminbar-up above the icon (see noTooltip) */
.aps2-adminbar .aps2-adminbar-tip, .aps2-adminbar .aps2-adminbar-logout::after, .aps2-adminbar .aps2-adminbar-logout *::after {
  display: none !important;
}
.aps2-adminbar, .aps2-adminbar .aps2-adminbar-logout { overflow: visible !important; }
.aps2-adminbar .aps2-adminbar-logout { position: relative !important; }
.aps2-adminbar .aps2-adminbar-up {
  position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); padding: 5px 9px;
  border-radius: 3px; background: #222222 !important; color: #ffffff;
  font-family: 'Source Sans 3', sans-serif; font-size: 12px; line-height: 1.2; white-space: nowrap;
  pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.15s ease;
}
.aps2-adminbar .aps2-adminbar-up::before { content: ''; position: absolute; top: 100%; left: 50%; margin-left: -5px; border: 5px solid transparent; border-top-color: #222222; }
.aps2-adminbar .aps2-adminbar-logout:hover .aps2-adminbar-up, .aps2-adminbar .aps2-adminbar-logout:focus-visible .aps2-adminbar-up {
  opacity: 1; visibility: visible;
}

/* --- WA's member "Messages" popup (bottom right, e.g. "Incomplete membership application"), v2 pages only.
       WA markup: #WA_messagePopup > #contentBalancePanelId(.opened|.closed) > ul + a#messagePopupButton.
       WA's toggle link is hidden; APS2SystemPages adds .aps2-msgs-btn below the list, which clicks it. --- */
body:has(.aps2) #WA_messagePopup {
  position: fixed !important; top: auto !important; left: auto !important; right: 16px !important;
  bottom: 16px !important; z-index: 9990 !important; width: auto !important; min-width: 240px;
  max-width: 320px; margin: 0 !important; padding: 0 !important; border: 0 !important;
  border-radius: 4px !important; background: #ffffff !important;
  box-shadow: 0 0 0 1px rgba(30, 15, 65, 0.08), 0 6px 20px rgba(30, 15, 65, 0.2) !important;
  overflow: hidden !important; font-family: 'Source Sans 3', sans-serif !important;
}
body:has(.aps2) #WA_messagePopup #contentBalancePanelId {
  position: static !important; width: auto !important; max-height: 50vh !important; margin: 0 !important;
  padding: 0 !important; border: 0 !important; background: transparent !important;
  box-shadow: none !important;
}
body:has(.aps2) #WA_messagePopup #contentBalancePanelId.closed { display: none !important; }
body:has(.aps2) #WA_messagePopup a#messagePopupButton { display: none !important; }
body:has(.aps2) #WA_messagePopup ul { margin: 0 !important; padding: 12px 18px !important; list-style: none !important; background: transparent !important; border: 0 !important; }
body:has(.aps2) #WA_messagePopup li { margin: 0 !important; padding: 6px 0 !important; list-style: none !important; background: none !important; border: 0 !important; }
body:has(.aps2) #WA_messagePopup li + li { border-top: 1px solid #eeeeee !important; }
body:has(.aps2) #WA_messagePopup li a, body:has(.aps2) #WA_messagePopup li a:visited {
  font-family: 'Source Sans 3', sans-serif !important; font-size: 14px !important;
  font-weight: 600 !important; line-height: 1.4 !important; color: #1e0f41 !important;
  text-decoration: none !important; border-bottom: 1px solid #f0b946 !important; transition: color 0.2s ease;
}
body:has(.aps2) #WA_messagePopup li a:hover { color: #e65023 !important; }
#WA_messagePopup .aps2-msgs-btn {
  display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 10px 18px; border: 0;
  border-radius: 0; background: #1e0f41; color: #ffffff; font-family: 'Source Sans 3', sans-serif;
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em; line-height: 1; text-transform: uppercase;
  cursor: pointer; transition: color 0.2s ease;
}
#WA_messagePopup .aps2-msgs-btn:is(:hover, :focus-visible) { color: #f0b946; }
#WA_messagePopup .aps2-msgs-icon {
  display: inline-flex; align-items: center; justify-content: center; flex: none; width: 16px; height: 16px;
  border-radius: 50%; background: #f0b946; color: #1e0f41; font-size: 11px; letter-spacing: 0;
}

/* --- WA system pages in the v2 design (template Plain + v2 menu / footer) --- */
/* Page not found (404) and Access denied (403): 19-page-not-found.html, 20-access-denied.html */
.aps2 .error-links { text-align: center; }
.aps2 .error-links > p { font-size: 17px; color: #333333; }
.aps2 .error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 24px 0 32px; }
.aps2 .error-help { font-size: 15px !important; color: #555555 !important; }
.aps2 .error-help a { color: var(--crusader-red) !important; border-bottom: 1px solid rgba(230,80,35,0.35); }
/* WA's own error text is replaced by the v2 block */
body:has(#aps2Error) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML):not(.WaGadgetLoginForm) { display: none !important; }

/* My profile (/Sys/Profile): WA's profile content as one centred white card below 10-profile-header.html */
body:has(#aps2Profile) { background: #f5f5f0; }
body:has(#aps2Profile) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML):not(.WaGadgetLoginForm) {
  max-width: 1104px; margin: 48px auto 96px !important; padding: 40px 44px !important; box-sizing: border-box;
  background: #ffffff; border-top: 4px solid #e65023; border-radius: 2px; box-shadow: 0 12px 40px rgba(30,15,65,0.06);
  font-family: 'Source Sans 3', sans-serif !important; color: #1e0f41;
}
body:has(#aps2Profile) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML) :is(h1, h2, h3, h4) { font-family: 'DM Serif Display', Georgia, serif !important; font-weight: 400 !important; color: #1e0f41 !important; }
body:has(#aps2Profile) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML) a:not(.stylizedButton) { color: #e65023 !important; }
body:has(#aps2Profile) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML) :is(input[type="submit"], input[type="button"], .stylizedButton) {
  background: #e65023 !important; border: 2px solid #e65023 !important; border-radius: 4px !important; color: #ffffff !important;
  font-family: 'Source Sans 3', sans-serif !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: 0.1em !important;
  text-transform: uppercase !important; padding: 12px 28px !important; height: auto !important; cursor: pointer;
}
body:has(#aps2Profile) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], select, textarea) {
  border: 1px solid rgba(30,15,65,0.2) !important; border-radius: 4px !important; padding: 10px 12px !important; font-family: 'Source Sans 3', sans-serif !important; font-size: 15px !important;
}
@media (max-width: 768px) {
  body:has(#aps2Profile) .WaPlaceHolderContent .WaGadget:not(.WaGadgetCustomHTML):not(.WaGadgetLoginForm) { margin: 24px 16px 64px !important; padding: 28px 20px !important; }
}

/* My profile, WA's "Contact profile" gadget in detail (P = body:has(#aps2Profile) .WaGadgetContactProfile; ids are WA's own) */
/* Tabs on the left, "Edit profile" on the right, the tab content below. The wrapper differs between tabs
   (Profile vs Invoices, Donations...), so it is found as "the element holding both" */
body:has(#aps2Profile) .WaGadgetContactProfile :has(> #idTopButtonsContainer):has(> #idMemberDetailsTabsContainer) {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 32px 24px;
}
body:has(#aps2Profile) .WaGadgetContactProfile :has(> #idTopButtonsContainer):has(> #idMemberDetailsTabsContainer) > * { grid-column: 1 / -1; }
body:has(#aps2Profile) .WaGadgetContactProfile :has(> #idTopButtonsContainer):has(> #idMemberDetailsTabsContainer) > #idTopButtonsContainer { grid-column: 2; grid-row: 1; margin: 0 0 10px; }
body:has(#aps2Profile) .WaGadgetContactProfile :has(> #idTopButtonsContainer):has(> #idMemberDetailsTabsContainer) > #idMemberDetailsTabsContainer { grid-column: 1; grid-row: 1; min-width: 0; }

body:has(#aps2Profile) #idTopButtonsContainer input.typeButton {
  margin: 0 !important; padding: 10px 20px !important; background: transparent !important; color: #1e0f41 !important;
  border: 2px solid rgba(30,15,65,0.25) !important; font-size: 12px !important;
}
body:has(#aps2Profile) #idTopButtonsContainer input.typeButton:hover { border-color: #1e0f41 !important; }
body:has(#aps2Profile) .memberDetailsTabMenu { display: flex; flex-wrap: wrap; margin: 0 !important; padding: 0 !important; list-style: none; border-bottom: 1px solid rgba(30,15,65,0.12); }
body:has(#aps2Profile) .memberDetailsTabMenu li {
  margin: 0 0 -1px !important; padding: 14px 16px 12px !important; list-style: none; background: none !important; border: 0 !important;
  border-bottom: 2px solid transparent !important; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
}
body:has(#aps2Profile) .memberDetailsTabMenu li:empty { display: none; }
body:has(#aps2Profile) .memberDetailsTabMenu li.selected { border-bottom-color: #e65023 !important; color: #1e0f41; }
body:has(#aps2Profile) #idMemberDetailsTabsContainer li a { color: #888888 !important; text-decoration: none !important; }
body:has(#aps2Profile) #idMemberDetailsTabsContainer li a:hover { color: #1e0f41 !important; }

/* Section headings (Membership details, Social network login, Emailing preferences...) with their button on the right */
body:has(#aps2Profile) .WaGadgetContactProfile .captionOuterContainer { margin: 44px 0 8px !important; }
body:has(#aps2Profile) #idCaptionMembershipDetailsContainer { margin-top: 0 !important; }
body:has(#aps2Profile) .WaGadgetContactProfile .captionOuterContainer .fieldLabel { display: none !important; }
body:has(#aps2Profile) .WaGadgetContactProfile .captionOuterContainer .fieldBody {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; width: auto !important; float: none !important; margin: 0 !important;
}
body:has(#aps2Profile) .WaGadgetContactProfile .captionOuterContainer h4 {
  margin: 0 !important; font-size: 24px !important; text-transform: none !important; letter-spacing: normal !important;
}
body:has(#aps2Profile) .WaGadgetContactProfile .membershipActionButtonRow input { margin: 0 !important; }
/* The personal details section has no title in WA: give it one */
body:has(#aps2Profile) #idCaptionContainer0 h4 > div { display: none; }
body:has(#aps2Profile) #idCaptionContainer0 h4::before { content: 'Your details'; }

/* Membership summary on a cream panel */
body:has(#aps2Profile) #idSectionMembershipLevelContainer { margin-top: 16px; padding: 6px 28px; background: #f5f5f0; border-radius: 2px; }

/* Every row: small grey label on the left, value on the right, thin line between rows */
body:has(#aps2Profile) .WaGadgetContactProfile .fieldContainer { margin: 0 !important; padding: 14px 0 !important; border-bottom: 1px solid rgba(30,15,65,0.08); }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldContainer:last-of-type { border-bottom: 0; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldContainer[id=""] { display: none !important; } /* WA's empty spacer rows */
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer:not(:has(> table)),
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer > table > tbody > tr {
  display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 6px 24px; align-items: start; margin: 0 !important; padding: 0 !important;
}
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer > table,
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer > table > tbody { display: block; width: 100% !important; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer td { display: block; width: auto !important; padding: 0 !important; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer .fieldLabel {
  float: none !important; width: auto !important; margin: 0 !important; padding: 3px 0 0 !important; text-align: left !important;
  font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.1em; text-transform: uppercase; color: #888888 !important;
}
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer .fieldLabel * { font: inherit !important; color: inherit !important; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer .fieldLabel img { vertical-align: middle; margin-left: 4px; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer .fieldBody { float: none !important; width: auto !important; margin: 0 !important; font-size: 15px; color: #1e0f41; }
body:has(#aps2Profile) .WaGadgetContactProfile :is(.fieldBody > span:first-child:empty, .fieldBody > ul.list:empty)::before { content: '\2014'; color: #bbbbbb; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldBody ul.list { margin: 0 !important; padding: 0 !important; list-style: none; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldBody ul.list li { margin: 0; padding: 0; list-style: none; background: none; }
body:has(#aps2Profile) .WaGadgetContactProfile .fieldBody ul.list li a + a { display: none; } /* repeated "Open link" */
body:has(#aps2Profile) .WaGadgetContactProfile .labelTitle { font-weight: 700; }
body:has(#aps2Profile) .WaGadgetContactProfile .levelPrice { font-weight: 400; color: #555555; }
body:has(#aps2Profile) .WaGadgetContactProfile .typeInstruction { display: block; margin-top: 2px; font-size: 13px; font-style: normal; color: #777777; }
/* Status pill (class set by APS2SystemPages from WA's text) */
body:has(#aps2Profile) #idMemberStatusContainer .fieldBody strong {
  display: inline-block; padding: 3px 12px; border-radius: 999px; background: rgba(30,15,65,0.07); font-size: 13px; font-weight: 700;
}
body:has(#aps2Profile) #idMemberStatusContainer .fieldBody strong.aps2-status-active { background: rgba(0,165,95,0.12); color: #00804a; }
body:has(#aps2Profile) #idMemberStatusContainer .fieldBody strong:is(.aps2-status-lapsed, .aps2-status-suspended) { background: rgba(230,80,35,0.12); color: #c93e18; }
/* Membership card */
body:has(#aps2Profile) .WaGadgetContactProfile .membershipCardIframeContainer { border: 0 !important; border-radius: 12px !important; box-shadow: 0 10px 30px rgba(30,15,65,0.18) !important; }
body:has(#aps2Profile) .WaGadgetContactProfile .membershipCardLinkContainer { display: inline-block; margin-right: 18px; padding: 12px 0 0 !important; font-size: 13px; font-weight: 600; }
/* Social network login */
body:has(#aps2Profile) .WaGadgetContactProfile .socialLogin { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
body:has(#aps2Profile) .WaGadgetContactProfile .socialLoginImg img { width: 28px; height: 28px; border-radius: 50%; display: block; }
body:has(#aps2Profile) .WaGadgetContactProfile a.connectExternalProfileButton {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border: 1px solid rgba(30,15,65,0.25); border-radius: 4px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #1e0f41 !important; text-decoration: none !important; background: #ffffff;
}
body:has(#aps2Profile) .WaGadgetContactProfile a.connectExternalProfileButton:hover { border-color: #1e0f41; }
body:has(#aps2Profile) .WaGadgetContactProfile a.disconnectExternalProfileButton { font-size: 13px; }
@media (max-width: 768px) {
  body:has(#aps2Profile) .WaGadgetContactProfile :has(> #idTopButtonsContainer):has(> #idMemberDetailsTabsContainer) { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
  body:has(#aps2Profile) .WaGadgetContactProfile :has(> #idTopButtonsContainer):has(> #idMemberDetailsTabsContainer) > :is(#idTopButtonsContainer, #idMemberDetailsTabsContainer) { grid-column: 1; grid-row: auto; }
  body:has(#aps2Profile) #idTopButtonsContainer { margin-bottom: 16px; }
  body:has(#aps2Profile) .memberDetailsTabMenu { flex-wrap: nowrap; overflow-x: auto; }
  body:has(#aps2Profile) .memberDetailsTabMenu li { white-space: nowrap; padding: 12px 12px 10px !important; }
  body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer:not(:has(> table)),
  body:has(#aps2Profile) .WaGadgetContactProfile .fieldSubContainer > table > tbody > tr { grid-template-columns: 1fr; gap: 4px; }
  body:has(#aps2Profile) #idSectionMembershipLevelContainer { padding: 4px 18px; }
}

/* =====================================================================
   APS v2 — MEMBERSHIP PAGE
   ===================================================================== */

/* --- Guest vs member views (class set on <html> by the shared script) --- */
/* Joining (visitors and logged-in contacts without a membership) vs existing members */
html.aps2-mship-member #aps2Membership .for-guests, html:not(.aps2-mship-member) #aps2Membership .for-members { display: none !important; }
html.aps2-mship-member body:has(#aps2Membership) .WaGadgetMembershipApplication { display: none !important; }

/* After "Next", WA reloads on the next step: show only the form */
html.aps2-apply-step .aps2 .hide-on-step { display: none !important; }
html.aps2-apply-step .aps2 .apply-head { padding-top: 120px; }
html:not(.aps2-apply-step) .aps2 .show-on-step, html.aps2-apply-step .aps2 .show-on-select { display: none; }

/* --- Banner --- */
.aps2 .banner .btn { padding: 10px 20px; }

/* --- Levels --- */
.aps2 .membership-head { text-align: center; max-width: 560px; margin: 0 auto 56px; }
.aps2 .membership-head .divider { margin: 24px auto; }
.aps2 .membership-head p { color: #555555; }
.aps2 .membership-tiers {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 340px)); justify-content: center;
  gap: 32px; align-items: start;
}
.aps2 .membership-tier h3 { font-family: var(--font-display) !important; font-weight: 400 !important; font-size: 26px; color: var(--ultramarine); }
.aps2 .membership-tier.featured h3 { color: var(--parchment) !important; }
.aps2 .membership-tier.featured .membership-features li { color: rgba(245,245,240,0.85); }
.aps2 .membership-tier[hidden] { display: none; }
.aps2 .btn-block { width: 100%; justify-content: center; }

/* --- Application heading (sits right above WA's form) --- */
.aps2 .apply-head { background: var(--parchment); padding: 24px 0 8px; }
.aps2 .apply-head h2 { margin-bottom: 20px; }
.aps2 .apply-steps { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; counter-reset: step; }
.aps2 .apply-steps li {
  counter-increment: step; display: flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px;
  background: #ffffff; border-radius: 20px; font-size: 13px; font-weight: 600; color: var(--ultramarine);
}
.aps2 .apply-steps li::before {
  content: counter(step); width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; background: var(--ultramarine); color: var(--azulejo-yellow);
  font-family: var(--font-display); font-size: 13px;
}

/* --- WA's forms (membership application, donation, newsletter subscription, and any WA form tagged .aps2-wa-form
       by the Global JavaScript, e.g. membership renewal), restyled as one centred card --- */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) {
  background: #f5f5f0; margin: 0 !important; padding: 8px 24px 96px !important;
  font-family: 'Source Sans 3', sans-serif !important; color: #1e0f41;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .generalFormOuterContainer { max-width: 820px; margin: 0 auto; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .generalFormContainer {
  background: #ffffff; border-top: 4px solid #e65023; border-radius: 2px;
  box-shadow: 0 12px 40px rgba(30,15,65,0.06); padding: 40px 44px 36px !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formOuterContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formContainer { background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }

/* Step title on the left, small "* Mandatory fields" note on the right */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitleOuterContainer {
  padding-bottom: 16px; margin-bottom: 28px; border-bottom: 1px solid rgba(30,15,65,0.1);
  text-align: left !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitleContainer, :is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitleOuterContainer * { border: 0 !important; background: none !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitleContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitleContainer .inner { width: 100% !important; float: none !important; box-sizing: border-box; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitleContainer .inner {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 6px 0;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .formTitle,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .stepTitle {
  font-family: 'DM Serif Display', Georgia, serif !important; font-weight: 400 !important;
  font-size: 26px !important; line-height: 1.2 !important; text-transform: none !important;
  text-align: left !important; color: #1e0f41 !important; margin: 0 24px 0 0 !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .mandatoryFieldsTitle {
  float: none !important; margin-left: auto !important; display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 10px; border-radius: 12px; background: #f5f5f0 !important; font-size: 12px !important;
  color: #888888 !important; white-space: nowrap;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .mandatoryFieldsTitle strong { font-weight: 600 !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .mandatorySymbol { color: #e65023 !important; font-weight: 700; }

/* Labels above their fields instead of in a narrow left column */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer { display: flow-root; margin: 0 0 16px !important; padding: 0 !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldLabel {
  float: none !important; width: auto !important; padding: 0 !important; margin: 0 0 6px !important;
  text-indent: 0 !important; text-align: left !important; font-size: 12px !important;
  font-weight: 700 !important; letter-spacing: 0.1em; text-transform: uppercase; color: #888888 !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldBody { float: none !important; width: auto !important; margin: 0 !important; }

/* Same label style for every field: WA wraps required labels in <strong class="mandatoryLabel">, optional ones not */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldLabel,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldLabel *:not(.mandatorySymbol) {
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: #888888 !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldLabel .mandatorySymbol { margin-right: 3px; font-size: 12px !important; color: #e65023 !important; }
/* An invisible asterisk on optional fields only pushes the label to the right */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldLabel .mandatorySymbol[style*="hidden"] { display: none !important; }

/* WA lays some steps out as 2-column tables (label | field): stack them so every label sits above its field */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer table,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer tbody,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer tr,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer td {
  display: block !important; width: 100% !important; height: auto !important; padding: 0 !important;
  margin: 0 !important; border: 0 !important; text-align: left !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer td.left .fieldLabel { width: auto !important; padding: 0 !important; margin: 0 0 6px !important; text-align: left !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldSubContainer .fieldLabel * { width: auto !important; padding: 0 !important; margin: 0 !important; text-align: left !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .groupContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .sectionContainer { margin: 0 !important; padding: 0 !important; }

/* Everything WA prints in the form (e.g. the chosen level summary) lines up with the card */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .gadgetStyleBody > form > *:not(script):not(.aspNetHidden) { max-width: 820px; box-sizing: border-box; margin-left: auto !important; margin-right: auto !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .gadgetStyleBody > form > :not(.generalFormOuterContainer):has(.levelPrice) {
  display: block;
  background: #ffffff;
  border-left: 3px solid #e65023;
  border-radius: 2px;
  padding: 16px 20px !important;
  margin-bottom: 16px !important;
  font-size: 14px;
  color: #1e0f41;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .gadgetStyleBody > form > :not(.generalFormOuterContainer):has(.levelPrice) :is(table, tbody, tr, td) { display: block; width: auto !important; padding: 0 !important; text-align: left !important; }

/* Level choices as selectable cards (first step only) */
html body:has(#aps2Membership) .WaGadgetMembershipApplicationStateSelectLevel .fieldItem {
  display: flex; gap: 14px; align-items: flex-start; width: auto !important; padding: 18px 20px;
  margin-bottom: 12px; border: 1px solid rgba(30,15,65,0.15); border-radius: 4px; background: #ffffff;
  cursor: pointer; transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
html body:has(#aps2Membership) .WaGadgetMembershipApplicationStateSelectLevel .fieldItem:hover { border-color: rgba(30,15,65,0.4); }
html body:has(#aps2Membership) .WaGadgetMembershipApplicationStateSelectLevel .fieldItem:has(input:checked) { border-color: #e65023; box-shadow: 0 0 0 1px #e65023; background: #fffaf8; }
html body:has(#aps2Membership) .WaGadgetMembershipApplicationStateSelectLevel .fieldItem label { cursor: pointer; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="radio"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="checkbox"] { accent-color: #e65023; width: 18px; height: 18px; margin: 3px 0 0 !important; flex-shrink: 0; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .labelTitle { font-weight: 700; color: #1e0f41; letter-spacing: 0.04em; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .levelPrice { color: #e65023; font-weight: 700; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .labelSubTitle,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .typeInstruction,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .levelRenewal,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .levelRecurring,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .levelBundle { font-size: 13px; color: #666666; font-style: normal; }

/* Text fields on the following steps */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="text"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="email"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="tel"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="password"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) select,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) textarea {
  width: 100% !important; max-width: 520px; border: 1px solid rgba(30,15,65,0.2) !important;
  border-radius: 4px !important; padding: 11px 14px !important;
  font-family: 'Source Sans 3', sans-serif !important; font-size: 15px !important;
  background: #ffffff !important; box-shadow: none !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input:focus,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) select:focus,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) textarea:focus { border-color: #e65023 !important; outline: none; }

/* Other steps: compact checkboxes / radios (Gift Aid, privacy policy...) */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .fieldItem { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; font-size: 14px; color: #444444; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .typeInstruction { display: block; margin-top: 6px; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="file"] { font-size: 14px; }

/* Summary of the chosen level at the top of the details step */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .infoOuterContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .membershipLevelInfo {
  background: #ffffff !important; border-left: 3px solid #e65023; border-radius: 2px;
  padding: 16px 20px !important; margin-bottom: 16px; font-size: 14px; color: #1e0f41;
}

/* Buttons: bottom of the card, Back on the left, Next on the right */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .navigationOuterContainer { margin-top: 8px; padding-top: 24px; border-top: 1px solid rgba(30,15,65,0.1); }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .navigationContainer { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .navigationContainer .left { margin-right: auto; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="submit"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="button"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .stylizedButton {
  background: #e65023 !important; border: 2px solid #e65023 !important; border-radius: 4px !important;
  color: #ffffff !important; font-family: 'Source Sans 3', sans-serif !important; font-size: 13px !important;
  font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;
  padding: 14px 36px !important; height: auto !important; width: auto !important; cursor: pointer;
  transition: background 0.2s ease;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[type="submit"]:hover { background: #c93e18 !important; border-color: #c93e18 !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .navigationContainer .left input {
  background: transparent !important;
  color: #1e0f41 !important;
  border-color: #1e0f41 !important;
}

/* Back and Cancel are secondary; only Next / Pay stand out */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_prev"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_prevTop"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_cancel"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_cancelTop"] {
  background: transparent !important; color: #1e0f41 !important; border-color: rgba(30,15,65,0.35) !important;
}
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_prev"]:hover,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_cancel"]:hover { border-color: #1e0f41 !important; background: rgba(30,15,65,0.04) !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) input[id$="_cancel"] { border-color: transparent !important; padding-left: 0 !important; padding-right: 0 !important; text-decoration: underline; }

/* The heading above the form lines up with the card */
.aps2 .apply-head .container { max-width: 916px; }

/* --- Members view --- */
.aps2 .member-actions { align-items: stretch; }
.aps2 a.member-action {
  display: flex; flex-direction: column; padding: 36px 32px; background: #ffffff;
  border-top: 4px solid var(--azulejo-blue); border-radius: 2px; color: var(--ultramarine) !important;
  transition: var(--transition);
}
.aps2 a.member-action:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(30,15,65,0.12); }
.aps2 .member-action-icon {
  width: 48px; height: 48px; margin-bottom: 20px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; background: rgba(230,80,35,0.08); color: var(--crusader-red);
}
.aps2 .member-action-icon svg { width: 22px; height: 22px; }
.aps2 .member-action h3 { font-size: 20px; margin-bottom: 10px; color: var(--ultramarine); }
.aps2 .member-action p { font-size: 14px; color: #555555; flex: 1; }
.aps2 .member-action-link { margin-top: 20px; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--crusader-red); }

/* --- Benefits --- */
.aps2 .benefits-grid { margin-top: 24px; }
.aps2 .benefit h4 { font-size: 16px; font-weight: 700; margin-bottom: 8px; color: var(--ultramarine) !important; }
.aps2 .benefit p { font-size: 14px; color: #666666; margin: 0; }
.aps2 .benefit-icon {
  width: 48px; height: 48px; margin-bottom: 16px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center;
}
.aps2 .benefit-icon svg { width: 22px; height: 22px; }
.aps2 .benefit-red { background: rgba(230,80,35,0.08); color: var(--crusader-red); }
.aps2 .benefit-blue { background: rgba(140,180,220,0.18); color: #3a6ea5; }
.aps2 .benefit-green { background: rgba(0,165,95,0.1); color: var(--esperanca-green); }
.aps2 .benefit-yellow { background: rgba(240,185,70,0.18); color: #b07d12; }

/* --- Use of fees + cheques --- */
.aps2 .fees-grid { align-items: start; gap: 64px; }
.aps2 .check-list { list-style: none; margin-top: 8px; }
.aps2 .check-list li { position: relative; padding: 8px 0 8px 28px; font-size: 15px; color: #444444; border-bottom: 1px solid rgba(30,15,65,0.06); }
.aps2 .check-list li::before { content: '\2713'; position: absolute; left: 0; top: 8px; color: var(--esperanca-green); font-weight: 700; }
.aps2 .pay-card { background: #ffffff; border-top: 4px solid var(--azulejo-yellow); padding: 40px; border-radius: 2px; }
.aps2 .pay-card h3 { font-size: 22px; margin-bottom: 12px; color: var(--ultramarine); }
.aps2 .pay-card p { font-size: 15px; color: #555555; }
.aps2 .pay-card address {
  font-style: normal; margin: 16px 0 20px; padding: 16px 20px; background: var(--parchment);
  border-left: 3px solid var(--crusader-red); font-size: 15px; line-height: 1.7; color: var(--ultramarine);
}
.aps2 .pay-card-contact a { color: var(--crusader-red) !important; font-weight: 600; }

/* --- Corporate + donations --- */
.aps2 .support-grid { gap: 32px; align-items: stretch; }
.aps2 .corporate-card, .aps2 .donate-card {
  padding: 48px; border-radius: 2px; display: flex; flex-direction: column; align-items: flex-start;
}
.aps2 .corporate-card { background: var(--ultramarine); position: relative; overflow: hidden; }
.aps2 .corporate-card::before { content: ''; position: absolute; right: -60px; top: -60px; width: 240px; height: 240px; border-radius: 50%; background: rgba(240,185,70,0.07); pointer-events: none; }
.aps2 .corporate-card h2 { color: var(--parchment) !important; font-size: 30px; margin-bottom: 16px; }
.aps2 .corporate-card p:not(.section-label) { color: rgba(245,245,240,0.7) !important; font-size: 15px; margin-bottom: 28px !important; flex: 1; }
.aps2 .donate-card { background: var(--parchment); border-top: 4px solid var(--esperanca-green); }
.aps2 .donate-card h2 { font-size: 30px; margin-bottom: 16px; color: var(--ultramarine); }
.aps2 .donate-card p:not(.section-label) { font-size: 15px; color: #555555; margin-bottom: 28px !important; flex: 1; }

/* --- Terms & Conditions accordion --- */
.aps2 .terms { background: #ffffff; border-radius: 2px; border: 1px solid rgba(30,15,65,0.08); }
.aps2 .terms summary {
  cursor: pointer; list-style: none; padding: 20px 28px; font-weight: 700; font-size: 15px;
  color: var(--ultramarine); display: flex; justify-content: space-between; align-items: center;
}
.aps2 .terms summary::-webkit-details-marker { display: none; }
.aps2 .terms summary::after { content: '+'; font-size: 22px; color: var(--crusader-red); transition: var(--transition); }
.aps2 .terms[open] summary::after { transform: rotate(45deg); }
.aps2 .terms-body { padding: 0 28px 28px; border-top: 1px solid rgba(30,15,65,0.08); }
.aps2 .terms-body h4 { font-size: 15px; font-weight: 700; margin: 20px 0 6px; color: var(--ultramarine) !important; }
.aps2 .terms-body p { font-size: 14px; color: #555555; }
.aps2 .terms-body > p:first-child { margin-top: 20px; }
@media (max-width: 900px) {
  .aps2 .fees-grid { gap: 40px; }
}
@media (max-width: 768px) {
  .aps2 .corporate-card, .aps2 .donate-card, .aps2 .pay-card { padding: 32px 24px; }
  :is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) { padding: 8px 16px 72px !important; }
  :is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm, .aps2-wa-form) .generalFormContainer { padding: 28px 20px 24px !important; }
}

/* Member summary in the hero (level, status, renewal date), filled from WA by APS2Membership */
.aps2 .member-summary {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px 40px; max-width: 760px; margin-top: 36px; padding: 20px 28px;
  border: 1px solid rgba(245,245,240,0.16); border-left: 3px solid var(--azulejo-yellow); border-radius: 4px; background: rgba(245,245,240,0.06);
}
.aps2 .member-summary[hidden], .aps2 .member-summary [hidden] { display: none !important; }
.aps2 .member-summary-item { display: flex; flex-direction: column; gap: 4px; }
.aps2 .member-summary-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(245,245,240,0.55);
}
.aps2 .member-summary strong { font-size: 18px; font-weight: 600; color: var(--parchment); }
.aps2 .member-summary[data-status="Active"] [data-ms="status"] { color: #5fd49a; }
.aps2 .member-summary:is([data-status="Lapsed"], [data-status="Suspended"]) [data-ms="status"] { color: #ff8a65; }
.aps2 .member-summary-renew { margin-left: auto; }
@media (max-width: 600px) { .aps2 .member-summary { padding: 18px 20px; gap: 14px 28px; } .aps2 .member-summary-renew { margin-left: 0; } }
/* The privacy-policy checkbox: one link is enough (WA adds a second "Open link") */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, .aps2-wa-form) .textLine a + a { display: none !important; }

/* --- Membership renewal, "Review and confirm" step (.aps2-wa-form = WA's renewal gadget, tagged by the Global JavaScript) --- */
/* This gadget has no .gadgetStyleBody wrapper: centre the wizard itself */
.aps2-wa-form > form > .publicWizardNameContainer { max-width: 820px; margin: 0 auto; }
/* WA's blue "Review and confirm" box as a white summary card */
.aps2-wa-form .confirmWindowInfo.messageBox {
  margin: 0 0 24px !important; padding: 32px 44px !important; background: #ffffff !important; border: 0 !important;
  border-top: 4px solid #e65023 !important; border-radius: 2px !important; box-shadow: 0 12px 40px rgba(30,15,65,0.06) !important;
}
.aps2-wa-form .confirmWindowInfo .cww { display: none !important; }
.aps2-wa-form .confirmWindowInfo :is(.cww-inner, .cww-co, .header) { margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; }
.aps2-wa-form .confirmWindowInfo .header {
  margin-bottom: 12px !important; font-family: 'DM Serif Display', Georgia, serif !important; font-size: 26px !important; font-weight: 400 !important; color: #1e0f41 !important;
}
.aps2-wa-form #confirmationTable { width: 100% !important; border-collapse: collapse; }
.aps2-wa-form #confirmationTable tr { border-bottom: 1px solid rgba(30,15,65,0.08); }
.aps2-wa-form #confirmationTable td { padding: 12px 0 !important; vertical-align: top !important; font-family: 'Source Sans 3', sans-serif !important; }
.aps2-wa-form #confirmationTable td.labelInfoColumn {
  width: 200px !important; padding-right: 24px !important; text-align: left !important;
  font-size: 11px !important; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #888888 !important;
}
.aps2-wa-form #confirmationTable td.infoColumn { font-size: 15px !important; color: #1e0f41 !important; }
.aps2-wa-form #confirmationTable .levelPrice { font-weight: 400; color: #555555 !important; }
.aps2-wa-form #confirmationTable :is(.levelRenewal, .levelRecurring) { font-size: 13px; color: #777777; }
/* Total amount: the last line, bigger */
.aps2-wa-form .kvTable:last-child #confirmationTable tr { border-bottom: 0; }
.aps2-wa-form .kvTable:last-child #confirmationTable .labelTitle { font-family: 'DM Serif Display', Georgia, serif !important; font-size: 24px !important; font-weight: 400 !important; color: #e65023 !important; }

/* Order inside the card: your profile first, then the payment, then Cancel / Back */
.aps2-wa-form .inner:has(> .navigationTopContainer) { display: flex; flex-direction: column; }
.aps2-wa-form .inner:has(> .navigationTopContainer) > .navigationTopContainer { order: 3; }
.aps2-wa-form .inner:has(> .payment-methods-container) { display: flex; flex-direction: column; }
.aps2-wa-form .inner:has(> .payment-methods-container) > .payment-methods-container { order: 5; margin-top: 32px; }
.aps2-wa-form .formTitleOuterContainer { padding-top: 0 !important; }
.aps2-wa-form #idCaptionContainer0 { display: none !important; } /* empty section title */
/* Payment option */
.aps2-wa-form .payment-method-card { border: 1px solid rgba(30,15,65,0.2) !important; box-shadow: none !important; border-radius: 4px !important; padding: 24px !important; }
.aps2-wa-form .payment-method-card.selected { border-color: #1e0f41 !important; }
.aps2-wa-form .payment-method-header h3 { font-family: 'DM Serif Display', Georgia, serif !important; font-size: 20px !important; font-weight: 400 !important; color: #1e0f41 !important; }
.aps2-wa-form .payment-method-header input[type="radio"] { accent-color: #e65023; }
.aps2-wa-form .payment-method-description { font-size: 14px !important; color: #555555 !important; }
.aps2-wa-form .available-payment-methods span { font-size: 12px !important; color: #888888 !important; }

/* Read-only details (e.g. "Your profile" before paying): label on the left, value on the right */
.aps2-wa-form .fieldContainer[id=""] { display: none !important; } /* WA's empty spacer rows */
/* #idGeneralFormContainer: beats the shared form rules' !important margins */
.aps2-wa-form #idGeneralFormContainer .fieldSubContainer.labeledTextContainer {
  display: grid !important; grid-template-columns: 200px minmax(0, 1fr) !important; gap: 6px 24px; align-items: baseline; margin: 0 !important;
  padding: 12px 0 !important; border-bottom: 1px solid rgba(30,15,65,0.08);
}
.aps2-wa-form .labeledTextContainer .fieldLabel { padding: 0 !important; line-height: 1.4 !important; }
.aps2-wa-form .labeledTextContainer .fieldBody { margin: 0 !important; padding: 0 !important; font-size: 15px; line-height: 1.4; color: #1e0f41; }
.aps2-wa-form .labeledTextContainer .fieldBody > span:first-child:empty::before { content: '\2014'; color: #bbbbbb; }
.aps2-wa-form .labeledTextContainer ul.list { margin: 0 !important; padding: 0 !important; list-style: none; }
.aps2-wa-form .labeledTextContainer ul.list li { margin: 0; padding: 0; list-style: none; background: none; }
.aps2-wa-form .labeledTextContainer ul.list li:not(.checked) { display: none; } /* only the chosen answers */
.aps2-wa-form .labeledTextContainer ul.list li a + a { display: none; } /* repeated "Open link" */
/* Cancel on the left, Back / Next on the right */
.aps2-wa-form .navigationContainer .inner { display: flex; flex: 1; width: 100%; justify-content: space-between; align-items: center; gap: 12px; }
.aps2-wa-form .navigationContainer :is(.d1, .d2, .d3, .d4, .d5, .d6, .d7, .d8, .d9) { flex: 1; width: 100%; }
.aps2-wa-form .navigationContainer .inner > :is(.left, .right) { display: flex; gap: 12px; float: none !important; }
.aps2-wa-form .labeledTextContainer ul.list:not(:has(li.checked))::before { content: '\2014'; color: #bbbbbb; }
@media (max-width: 768px) {
  .aps2-wa-form .confirmWindowInfo.messageBox { padding: 24px 20px !important; }
  .aps2-wa-form #confirmationTable td { display: block; width: auto !important; }
  .aps2-wa-form #confirmationTable td.labelInfoColumn { padding: 12px 0 2px !important; }
  .aps2-wa-form #confirmationTable td.infoColumn { padding: 0 0 12px !important; }
  .aps2-wa-form #idGeneralFormContainer .fieldSubContainer.labeledTextContainer { grid-template-columns: minmax(0, 1fr) !important; gap: 4px; }
  .aps2-wa-form .payment-method-content { flex-direction: column !important; margin-left: 0 !important; }
  .aps2-wa-form .payment-method-right { min-width: 0 !important; }
}

/* --- Simple WA system forms without WA's usual form frame (Change password, Reset password, Reset password request):
       the gadget itself becomes the centred white card. Tagged .aps2-wa-form by the Global JavaScript (23-system-page-header.html).
       body:has(#aps2SysPage) outranks the shared form rules above. --- */
body:has(#aps2SysPage) { background: #f5f5f0; }
body:has(#aps2SysPage) .aps2-wa-form:not(:has(.generalFormContainer)) {
  max-width: 640px; margin: 48px auto 96px !important; padding: 40px 44px 36px !important; box-sizing: border-box;
  background: #ffffff !important; border-top: 4px solid #e65023; border-radius: 2px; box-shadow: 0 12px 40px rgba(30,15,65,0.06);
}
body:has(#aps2SysPage) .aps2-wa-form .cornersContainer { display: none !important; }
body:has(#aps2SysPage) .aps2-wa-form :is(.introContainer, .formOuterContainer, .formContainer, .generalFieldsOuterContainer, .generalFieldsContainer) {
  margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important;
}
/* "Change password for …" and other titles */
body:has(#aps2SysPage) .aps2-wa-form .introContainer {
  margin-bottom: 24px !important; font-family: 'DM Serif Display', Georgia, serif !important; font-size: 26px !important; line-height: 1.2; color: #1e0f41 !important;
}
body:has(#aps2SysPage) .aps2-wa-form:not(:has(.generalFormContainer)) :is(h1, h2, h3, h4, .formTitle, .pageTitle) {
  margin: 0 0 24px !important; font-family: 'DM Serif Display', Georgia, serif !important; font-size: 26px !important; font-weight: 400 !important;
  text-transform: none !important; letter-spacing: normal !important; color: #1e0f41 !important;
}
body:has(#aps2SysPage) .aps2-wa-form :is(input[type="text"], input[type="email"], input[type="password"]) { width: 100% !important; max-width: none !important; box-sizing: border-box; }
body:has(#aps2SysPage) .aps2-wa-form .password-wrapper { position: relative; }
body:has(#aps2SysPage) .aps2-wa-form .password-wrapper .toggle-password { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); cursor: pointer; color: #888888; }
body:has(#aps2SysPage) .aps2-wa-form #pswmeter-message { padding: 16px 20px; background: #f5f5f0; border-radius: 2px; font-size: 14px; color: #555555; }
body:has(#aps2SysPage) .aps2-wa-form #pswmeter-message p { margin: 0 0 8px !important; color: #1e0f41; }
body:has(#aps2SysPage) .aps2-wa-form #idActionButtonsContainer .fieldBody { display: flex; flex-wrap: wrap; gap: 12px; }
/* Cancel is the secondary button everywhere in these forms */
body:has(#aps2SysPage) .aps2-wa-form :is(input[type="submit"], input[type="button"], button):is([value="Cancel" i], [id$="ancel"], [id$="ancelBtn"]) {
  background: transparent !important; color: #1e0f41 !important; border-color: rgba(30,15,65,0.35) !important;
}
body:has(#aps2SysPage) .aps2-wa-form :is(input[type="submit"], input[type="button"], button):is([value="Cancel" i], [id$="ancel"], [id$="ancelBtn"]):hover { border-color: #1e0f41 !important; }
@media (max-width: 768px) {
  body:has(#aps2SysPage) .aps2-wa-form:not(:has(.generalFormContainer)) { margin: 24px 16px 64px !important; padding: 28px 20px !important; }
}

/* =====================================================================
   APS v2 — DONATIONS PAGE
   The WA donation form itself shares the form styles from the MEMBERSHIP block.
   ===================================================================== */
.aps2 .donate-intro { align-items: start; gap: 64px; }

/* Amount picker */
.aps2 .amount-card {
  background: #ffffff; border-top: 4px solid var(--crusader-red); border-radius: 2px; padding: 40px;
  box-shadow: 0 12px 40px rgba(30,15,65,0.06);
}
.aps2 .amount-card h2 { font-size: clamp(26px, 3vw, 34px); margin-bottom: 24px; color: var(--ultramarine); }
.aps2 .amount-chips { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 10px; margin-bottom: 20px; }
.aps2 .amount-chip {
  padding: 14px 10px; border: 1px solid rgba(30,15,65,0.2); border-radius: 4px; background: #ffffff;
  color: var(--ultramarine); font-family: var(--font-display); font-size: 22px; cursor: pointer;
  transition: var(--transition);
}
.aps2 .amount-chip[data-amount="other"] { font-family: var(--font-body); font-size: 14px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.aps2 .amount-chip:hover { border-color: var(--ultramarine); }
.aps2 .amount-chip.active { background: var(--ultramarine); border-color: var(--ultramarine); color: var(--azulejo-yellow); }
.aps2 .giftaid-preview {
  min-height: 48px; padding: 12px 16px; margin-bottom: 20px !important; background: rgba(0,165,95,0.08);
  border-left: 3px solid var(--esperanca-green); border-radius: 2px; font-size: 14px !important;
  color: #2d4a3a !important;
}
.aps2 .giftaid-preview strong { color: var(--esperanca-green); }
.aps2 .amount-note { margin-top: 14px !important; font-size: 13px !important; color: #888888 !important; text-align: center; }

/* Gift Aid explainer */
.aps2 .giftaid-box {
  display: flex; gap: 16px; align-items: center; margin-top: 28px; padding: 20px 24px; background: #ffffff;
  border-radius: 2px;
}
.aps2 .giftaid-badge {
  flex-shrink: 0; padding: 8px 12px; border: 2px solid var(--ultramarine); border-radius: 4px;
  font-weight: 700; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ultramarine);
}
.aps2 .giftaid-box p { font-size: 14px; color: #555555; margin: 0; }
body:has(#aps2Donate) .WaGadgetDonationForm .donationAmountContainer input[type="text"] {
  max-width: 220px; font-family: 'DM Serif Display', Georgia, serif !important; font-size: 22px !important;
}
body:has(#aps2Donate) .WaGadgetDonationForm .g-recaptcha { margin: 8px 0 16px; }
@media (max-width: 900px) {
  .aps2 .donate-intro { gap: 40px; }
}
@media (max-width: 768px) {
  .aps2 .amount-card { padding: 28px 20px; }
  .aps2 .giftaid-box { flex-direction: column; align-items: flex-start; }
}

/* =====================================================================
   APS v2 — CULTURE PAGE (APS Journal + Student Award)
   ===================================================================== */

/* The native Blog is the data source: hidden for visitors, kept visible for admins so they can add posts */
html.aps2-hide-native-blog .WaGadgetBlog { display: none !important; }
/* Journal admin boxes are hidden while another tab (Student Award) is open */
html.aps2-culture-other-tab body:has(#aps2Culture) :is(.WaGadgetBlog, .aps2.pending-box) { display: none !important; }
html.aps2-admin body:has(#aps2Culture) .WaGadgetBlog {
  max-width: 1104px; margin: 0 auto 64px !important; padding: 24px !important; border: 2px dashed #f0b946;
  background: #fffdf5;
}
html.aps2-admin body:has(#aps2Culture) .WaGadgetBlog::before {
  content: 'Admin only · add or edit APS Journal articles here (visitors do not see this box)';
  display: block; margin-bottom: 16px; font: 700 12px/1.4 'Source Sans 3', sans-serif; letter-spacing: 0.08em;
  text-transform: uppercase; color: #b07d12;
}

/* --- Journal intro + submit box --- */
.aps2 .journal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 48px; margin-bottom: 48px; flex-wrap: wrap; }
.aps2 .journal-intro { max-width: 600px; }
.aps2 .journal-intro p:not(.section-label) { color: #555555; }
.aps2 .journal-submit {
  flex: 0 1 320px; background: var(--parchment); border-top: 4px solid var(--crusader-red);
  border-radius: 2px; padding: 32px;
}
.aps2 .journal-submit h3 { font-size: 20px; margin-bottom: 10px; color: var(--ultramarine); }
.aps2 .journal-submit p { font-size: 14px; color: #555555; margin-bottom: 20px !important; }

/* --- Category filter chips --- */
.aps2 .journal-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.aps2 .journal-filters[hidden] { display: none; }
.aps2 .filter-chip {
  padding: 8px 16px; border: 1px solid rgba(30,15,65,0.18); border-radius: 20px; background: #ffffff;
  color: var(--ultramarine); font-family: var(--font-body); font-size: 13px; font-weight: 600;
  cursor: pointer; transition: var(--transition);
}
.aps2 .filter-chip:hover { border-color: var(--ultramarine); }
.aps2 .filter-chip.active { background: var(--ultramarine); border-color: var(--ultramarine); color: var(--parchment); }

/* --- Journal cards --- */
.aps2 .journal-grid { align-items: stretch; }
/* Also on hover/visited: the generic "a.card:hover { display: block }" rule would let the card footer jump up */
.aps2 a.journal-card, .aps2 a.journal-card:visited, .aps2 a.journal-card:hover { display: flex; flex-direction: column; background: #ffffff; }
.aps2 .journal-card[hidden] { display: none !important; }
.aps2 .journal-thumb { height: 180px; }
.aps2 .journal-thumb.cat-blue { background-image: linear-gradient(135deg, #1e2a41, #1e0f41); }
.aps2 .journal-thumb.cat-green { background-image: linear-gradient(135deg, #0a2a1a, #1e0f41); }
.aps2 .journal-thumb.cat-gold { background-image: linear-gradient(135deg, #2a1e10, #1e0f41); }
.aps2 .journal-card .card-body { display: flex; flex-direction: column; flex: 1; padding: 24px 24px 22px; }
.aps2 .journal-card h3 { font-size: 17px !important; line-height: 1.3; margin-bottom: 10px; }
.aps2 .journal-card p { font-size: 13px; color: #666666; margin-bottom: 12px; flex: 1; }
.aps2 .card-tag.cat-blue { color: #3a6ea5; }
.aps2 .card-tag.cat-green { color: var(--esperanca-green); }
.aps2 .card-tag.cat-gold { color: #b07d12; }
.aps2 .journal-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.aps2 .journal-byline { font-size: 11px; font-weight: 600; color: #999999; }
.aps2 .journal-read { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--crusader-red); white-space: nowrap; }

/* --- Article popup --- */
.aps2 .article-panel { max-width: 820px; }
.aps2 .article-hero { min-height: 280px; }
.aps2 .article-meta { margin-top: 10px !important; font-size: 13px !important; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(245,245,240,0.7) !important; }
.aps2 .article-body { padding: 40px 56px 56px; font-size: 17px; line-height: 1.75; }

/* --- Student award --- */
.aps2 .award-grid { align-items: start; gap: 80px; }
.aps2 .award-subhead { font-size: 20px; margin: 8px 0 12px; color: var(--ultramarine); }
.aps2 .award-side { margin-bottom: 32px; }
.aps2 .award-sponsor { margin: 24px 0 0 !important; padding-top: 20px; border-top: 1px solid rgba(245,245,240,0.12); font-size: 13px; color: rgba(245,245,240,0.55) !important; }
.aps2 .winners-card { background: var(--parchment); border-radius: 2px; padding: 28px; }
.aps2 .winners-card h4 { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 12px; color: var(--ultramarine) !important; }
.aps2 .winner {
  display: flex; align-items: center; gap: 14px; width: 100%; padding: 12px; margin-bottom: 6px; border: 0;
  border-radius: 4px; background: transparent; text-align: left; cursor: pointer;
  font-family: var(--font-body); transition: var(--transition);
}
.aps2 .winner:hover { background: #ffffff; box-shadow: 0 6px 20px rgba(30,15,65,0.08); }
.aps2 .winner img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--azulejo-yellow); }
.aps2 .winner-text { flex: 1; min-width: 0; }
.aps2 .winner-name { display: block; font-size: 15px; font-weight: 700; color: var(--ultramarine); }
.aps2 .winner-uni { display: block; font-size: 13px; color: #666666; }
.aps2 .winner-year { font-family: var(--font-display); font-size: 20px; color: var(--crusader-red); }
.aps2 a.winners-more, .aps2 a.winners-more:visited {
  display: inline-block; margin-top: 14px; font-size: 13px; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--crusader-red) !important;
}

/* Winner story popup */
.aps2 .story-panel { max-width: 720px; padding: 48px 56px 56px; }
.aps2 .story-panel .ev-modal-close { margin: -32px -40px 0 0; background: rgba(30,15,65,0.06); }
.aps2 .story-meta { font-size: 12px !important; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--crusader-red) !important; margin-bottom: 6px !important; }
.aps2 .story-panel h2 { font-size: 34px; margin-bottom: 20px; color: var(--ultramarine); }
.aps2 .story-photo { float: right; width: 180px; height: 220px; object-fit: cover; margin: 0 0 16px 24px; border-radius: 2px; }
.aps2 .story-panel p:not(.story-meta) { font-size: 16px; line-height: 1.75; color: #333333; }

/* --- Submit a Piece popup --- */
.aps2 .submit-panel { max-width: 640px; padding: 48px 48px 40px; }
.aps2 .submit-panel .ev-modal-close { margin: -32px -32px 0 0; background: rgba(30,15,65,0.06); }
.aps2 :is(.story-panel, .submit-panel) .ev-modal-close:hover { background: var(--azulejo-yellow); }
.aps2 .submit-panel h2 { font-size: 32px; margin-bottom: 8px; color: var(--ultramarine); }
.aps2 .submit-intro { font-size: 15px; color: #555555; margin-bottom: 24px !important; }
.aps2 .submit-form label {
  display: block; margin-bottom: 16px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: #666666;
}
.aps2 .submit-form .optional { font-weight: 400; letter-spacing: 0; text-transform: none; color: #999999; }
.aps2 .submit-form input[type="text"],
.aps2 .submit-form input[type="email"], .aps2 .submit-form input[type="url"], .aps2 .submit-form select, .aps2 .submit-form textarea {
  display: block; width: 100% !important; margin-top: 6px; padding: 11px 14px !important;
  border: 1px solid rgba(30,15,65,0.2) !important; border-radius: 4px !important;
  background: #ffffff !important; box-shadow: none !important; font-family: var(--font-body) !important;
  font-size: 15px !important; letter-spacing: 0; text-transform: none; color: var(--ultramarine) !important;
  height: auto !important;
}
.aps2 .submit-form textarea { resize: vertical; }
.aps2 .submit-form :is(input, select, textarea):focus { border-color: var(--crusader-red) !important; outline: none; }
.aps2 .submit-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.aps2 .submit-form .submit-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; color: #444444; }
.aps2 .submit-check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--crusader-red); flex-shrink: 0; }
.aps2 .submit-error { padding: 12px 16px; margin-bottom: 16px !important; border-left: 3px solid var(--crusader-red); background: rgba(230,80,35,0.08); font-size: 14px !important; color: #a3361a !important; }
.aps2 .submit-note { margin-top: 14px !important; font-size: 13px !important; color: #888888 !important; text-align: center; }
.aps2 .submit-done { text-align: center; padding: 24px 0 8px; }
.aps2 .submit-done p:not(.section-label) { color: #555555; margin-bottom: 24px !important; }

/* --- "Pending pieces" (admins only, above the native Blog) --- */
.aps2.pending-box {
  max-width: 1104px; margin: 0 auto 24px; padding: 32px; border: 2px dashed #f0b946; background: #fffdf5;
  overflow: visible;
}
.aps2.pending-box h3 { display: flex; align-items: center; gap: 10px; font-size: 22px; margin-bottom: 6px; color: var(--ultramarine); }
.aps2 .pending-count { min-width: 26px; padding: 2px 8px; border-radius: 13px; background: var(--crusader-red); color: #ffffff; font-size: 13px; text-align: center; }
.aps2 .pending-intro { font-size: 14px; color: #555555; margin-bottom: 20px !important; }
.aps2 .pending-list { display: grid; gap: 16px; }
.aps2 .pending-empty { font-size: 14px; color: #888888; font-style: italic; }
.aps2 .pending-card { background: #ffffff; border-left: 4px solid var(--crusader-red); border-radius: 2px; padding: 20px 24px; box-shadow: 0 6px 20px rgba(30,15,65,0.06); }
.aps2 .pending-card.is-handled { border-left-color: #cccccc; opacity: 0.75; }
.aps2 .pending-meta { font-size: 11px !important; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--crusader-red) !important; margin-bottom: 6px !important; }
.aps2 .pending-status { margin-left: 8px; padding: 2px 8px; border-radius: 10px; background: #eeeeee; color: #555555; letter-spacing: 0.06em; }
.aps2 .pending-status.is-approved, .aps2 .pending-status.is-published { background: rgba(0,165,95,0.12); color: #00804a; }
.aps2 .pending-status.is-rejected { background: rgba(230,80,35,0.1); color: #a3361a; }
.aps2 .pending-card h4 { font-family: var(--font-display) !important; font-weight: 400; font-size: 22px; margin-bottom: 4px; color: var(--ultramarine) !important; }
.aps2 .pending-by { font-size: 13px !important; color: #888888 !important; margin-bottom: 10px !important; }
.aps2 .pending-by a { color: var(--crusader-red) !important; }
.aps2 .pending-summary { font-size: 15px !important; color: #444444 !important; }
.aps2 .pending-text { margin: 8px 0 4px; font-size: 15px; color: #444444; }
.aps2 .pending-text summary { cursor: pointer; font-size: 13px; font-weight: 700; color: var(--ultramarine); }
.aps2 .pending-text[open] { max-height: 360px; overflow-y: auto; padding-right: 8px; }
.aps2 .pending-text p { margin: 10px 0 0 !important; }
.aps2 .pending-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.aps2 .pending-links a, .aps2 .pending-links button {
  padding: 6px 12px; border: 1px solid rgba(30,15,65,0.2); border-radius: 4px; background: #ffffff;
  color: var(--ultramarine) !important; font-family: var(--font-body); font-size: 13px; font-weight: 600;
  cursor: pointer;
}
.aps2 .pending-links a:hover, .aps2 .pending-links button:hover { border-color: var(--ultramarine); }
.aps2 .pending-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(30,15,65,0.08); }
.aps2 .pending-actions .btn { padding: 10px 20px; }
.aps2 .pending-actions .btn[disabled] { opacity: 0.6; cursor: wait; }
.aps2 .pending-toggle { margin-top: 16px; padding: 0; border: 0; background: none; color: var(--crusader-red); font-family: var(--font-body); font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; }
.aps2 .pending-toggle[hidden] { display: none; }
.pending-filled { margin: 0 0 16px !important; padding: 12px 16px; border-left: 3px solid #00a55f; background: rgba(0,165,95,0.08); font: 600 14px/1.5 'Source Sans 3', sans-serif; color: #1e0f41; }
@media (max-width: 768px) { .aps2.pending-box { padding: 24px 16px; margin: 0 16px 24px; } }
@media (max-width: 900px) {
  .aps2 .award-grid { gap: 48px; }
  .aps2 .journal-submit { flex-basis: 100%; }
}
@media (max-width: 768px) {
  .aps2 .article-body { padding: 32px 24px 40px; font-size: 16px; }
  .aps2 .story-panel, .aps2 .submit-panel { padding: 40px 24px 32px; }
  .aps2 .story-panel .ev-modal-close, .aps2 .submit-panel .ev-modal-close { margin: -24px -8px 0 0; }
  .aps2 .story-photo { float: none; width: 100%; height: 240px; margin: 0 0 20px; }
  .aps2 .submit-row { grid-template-columns: 1fr; gap: 0; }
}
.aps2 .pending-debug { margin-top: 16px; padding: 12px; background: #1e0f41; color: #f5f5f0; font: 12px/1.5 monospace; white-space: pre-wrap; word-break: break-all; }
/* .btn sets display, which would otherwise override the hidden attribute (e.g. "Show more articles") */
.aps2 .btn[hidden] { display: none !important; }

/* --- Blog "Creating new entry" system page (after "Approve & edit"), once it uses the v2 menu/footer --- */
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) {
  max-width: 900px; margin: 120px auto 96px !important; padding: 40px 44px 36px !important;
  background: #ffffff; border-top: 4px solid #e65023; border-radius: 2px;
  box-shadow: 0 12px 40px rgba(30,15,65,0.06); font-family: 'Source Sans 3', sans-serif !important;
  color: #1e0f41;
}
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) :is(td, th, label, span, div) { font-family: 'Source Sans 3', sans-serif; }
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) input[type="text"] {
  width: 100% !important; max-width: 560px; height: auto !important; padding: 11px 14px !important;
  border: 1px solid rgba(30,15,65,0.2) !important; border-radius: 4px !important;
  background: #ffffff !important; box-shadow: none !important;
  font-family: 'Source Sans 3', sans-serif !important; font-size: 15px !important; color: #1e0f41 !important;
}
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) input[type="text"]:focus { border-color: #e65023 !important; outline: none; }
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) :is(input[type="submit"], input[type="button"], button, a.stylizedButton, .stylizedButton) {
  height: auto !important;
  padding: 14px 32px !important;
  border: 2px solid #e65023 !important;
  border-radius: 4px !important;
  background: #e65023 !important;
  color: #ffffff !important;
  font-family: 'Source Sans 3', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  cursor: pointer;
}
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) :is(input, button, a)[value*="ancel" i],
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) a.stylizedButton[id*="ancel" i] {
  background: transparent !important; color: #1e0f41 !important; border-color: rgba(30,15,65,0.35) !important;
}
body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) a:not(.stylizedButton) { color: #e65023 !important; }
@media (max-width: 768px) {
  body:has(.aps2) .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) { margin: 96px 16px 72px !important; padding: 28px 20px !important; }
}

/* Review & publish layout (the script adds html.aps2-blog-editor on the Blog's new/edit entry page) */
.aps2.review-head { background: transparent; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid rgba(30,15,65,0.1); overflow: visible; }
.aps2 a.review-back, .aps2 a.review-back:visited { display: inline-block; margin-bottom: 18px; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #e65023 !important; }
.aps2.review-head .section-label { margin-bottom: 8px; }
.aps2.review-head h2 { font-size: 34px; color: var(--ultramarine); }
.aps2 .review-sub { margin-top: 6px !important; font-family: var(--font-display); font-size: 22px; color: #555555; }
.aps2.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 28px; background: transparent; overflow: visible; }
.aps2.review-grid.is-single { grid-template-columns: 1fr; }
.aps2 .review-card, .aps2 .review-tips { padding: 20px 24px; border-radius: 2px; }
.aps2 .review-card { background: #f5f5f0; border-left: 3px solid #e65023; }
.aps2 .review-tips { background: rgba(0,165,95,0.07); border-left: 3px solid #00a55f; }
.aps2 .review-card .section-label, .aps2 .review-tips .section-label { margin-bottom: 10px; }
.aps2 .review-tips .section-label { color: #00804a; }
.aps2 .review-card dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 14px; }
.aps2 .review-card dt { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #888888; padding-top: 2px; }
.aps2 .review-card dd { color: #1e0f41; overflow-wrap: anywhere; }
.aps2 .review-card dd a { color: #e65023 !important; }
.aps2 .review-tips ul { list-style: none; font-size: 14px; color: #2d4a3a; }
.aps2 .review-tips li { position: relative; padding-left: 18px; margin-bottom: 6px; }
.aps2 .review-tips li::before { content: '\2713'; position: absolute; left: 0; color: #00a55f; font-weight: 700; }
.aps2-blog-editor .WaGadgetBlog .aps2-form-table, .aps2-blog-editor .WaGadgetBlog .aps2-form-table > tbody {
  display: block; width: 100% !important;
}
.aps2-blog-editor .WaGadgetBlog .aps2-row { display: block !important; margin: 0 0 18px !important; text-align: left !important; }
.aps2-blog-editor .WaGadgetBlog .aps2-row > * { float: none !important; }
.aps2-blog-editor .WaGadgetBlog tr.aps2-row > td, .aps2-blog-editor .WaGadgetBlog tr.aps2-row > th {
  display: block; width: auto !important; padding: 0 !important; text-align: left !important;
}
.aps2-blog-editor .WaGadgetBlog .aps2-row-label, .aps2-blog-editor .WaGadgetBlog .aps2-row-label * {
  float: none !important; width: auto !important; padding: 0 !important; text-align: left !important;
}
.aps2-blog-editor .WaGadgetBlog .aps2-row-label { display: block !important; margin-bottom: 6px !important; font: 700 12px/1.4 'Source Sans 3', sans-serif !important; letter-spacing: 0.1em; text-transform: uppercase; color: #888888 !important; }
/* stronger than the generic text-field rule above so the date and time boxes stay side by side */
html.aps2-blog-editor body .WaGadgetBlog:not(.WaGadgetBlogStateList):not(.WaGadgetBlogStateDetails) tr.aps2-row-datetime input[type="text"] { display: inline-block; width: 150px !important; max-width: 150px; margin-right: 8px; vertical-align: middle; }
.aps2-blog-editor .WaGadgetBlog tr.aps2-row-datetime img { vertical-align: middle; margin-right: 12px; }
.aps2-blog-editor .WaGadgetBlog tr.aps2-row-body > td > *,
.aps2-blog-editor .WaGadgetBlog tr.aps2-row-body :is(.cke, .fr-box, .mce-tinymce, .tox-tinymce) { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
@media (max-width: 768px) { .aps2.review-grid { grid-template-columns: 1fr; } }

/* --- WA's post page for admins (html.aps2-post-view): laid out as an article, Culture intro hidden --- */
html.aps2-post-view .WaGadgetBlog {
  display: block !important; max-width: 860px; margin: 120px auto 96px !important; padding: 0 24px !important;
  border: 0 !important; background: transparent !important; font-family: 'Source Sans 3', sans-serif;
  color: #1e0f41;
}
html.aps2-post-view .WaGadgetBlog .boxHeaderTitle, html.aps2-post-view .WaGadgetBlog .boxHeaderTitle a {
  font-family: 'DM Serif Display', Georgia, serif !important; font-weight: 400 !important; font-size: clamp(30px, 4vw, 44px) !important; line-height: 1.15 !important; text-transform: none !important; color: #1e0f41 !important;
}
html.aps2-post-view .WaGadgetBlog .boxHeaderOuterContainer { margin-bottom: 24px; }
html.aps2-post-view .WaGadgetBlog .blogPostBody { font-size: 17px; line-height: 1.75; color: #333333; }
html.aps2-post-view .WaGadgetBlog .blogPostBody p { margin: 0 0 1em; }
html.aps2-post-view .WaGadgetBlog .blogPostBody img { display: block; width: 100% !important; max-width: 100%; height: auto !important; max-height: 460px; object-fit: cover; margin: 0 0 24px; border-radius: 2px; }
html.aps2-post-view .WaGadgetBlog .blogPostBody .aps2-meta-line { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #e65023; }
html.aps2-post-view .WaGadgetBlog .blogPostBody .aps2-meta-line + p:not(.aps2-meta-line) { margin-top: 20px; }
.aps2.post-admin-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-bottom: 32px; padding: 14px 18px; border: 2px dashed #f0b946; background: #fffdf5; overflow: visible; }
.aps2 a.post-admin-back, .aps2 a.post-admin-back:visited { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #e65023 !important; }
.aps2 .post-admin-note { flex: 1; min-width: 220px; font-size: 14px; color: #555555; }
.aps2.post-admin-bar .btn { padding: 10px 18px; }
/* The post opened through "Edit or delete", highlighted in the Blog box in WA admin view */
.aps2-focus-post { outline: 3px solid #f0b946; outline-offset: 8px; border-radius: 2px; }
.aps2 .review-tips li.review-tip-files { color: #a3361a; }
.aps2 .review-tips li.review-tip-files::before { content: '!'; color: #e65023; }

/* Review & publish: one compact strip (replaces the two boxes) */
.aps2.review-strip { margin-bottom: 28px; padding: 16px 20px; background: #f5f5f0; border-left: 3px solid #e65023; border-radius: 2px; overflow: visible; }
.aps2 .review-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; margin-bottom: 8px; }
.aps2 .review-who { font-size: 14px; color: #555555; }
.aps2 .review-who strong { color: #1e0f41; }
.aps2 .review-who a { color: #e65023 !important; }
.aps2 .review-top .pending-links { margin-top: 0; }
.aps2 .review-note { margin: 0 !important; font-size: 14px !important; color: #2d4a3a !important; }

/* =====================================================================
   APS v2 — LEGAL PAGES: Privacy Centre (16-privacy-page.html) and Terms of Use (17-terms-page.html)
   The Terms page reuses the Privacy Policy layout (.privacy-policy / .privacy-toc / .privacy-article).
   ===================================================================== */

/* .aps2 has overflow-x: hidden, which stops position: sticky (the policy contents) from working; clip looks the same without that side effect */
:is(.aps2#aps2Privacy, .aps2#aps2Terms) { overflow-x: clip; }

/* Sections land below the fixed menu */
.aps2 .privacy-section, .aps2 .privacy-article h3 { scroll-margin-top: 90px; }

/* Principles */
.aps2 .privacy-principles { margin-top: 48px; }
.aps2 .privacy-principle { background: #ffffff; padding: 36px 32px; border-top: 3px solid var(--azulejo-yellow); border-radius: 2px; }
.aps2 .privacy-principle-num { display: block; margin-bottom: 16px; font-family: var(--font-display); font-size: 32px; line-height: 1; color: var(--crusader-red); }
.aps2 .privacy-principle h3 { margin-bottom: 14px; font-size: 22px !important; color: var(--ultramarine); }
.aps2 .privacy-principle p { font-size: 15px; color: #555555; }
.aps2 .privacy-principle p.privacy-principle-lead { font-weight: 600; color: var(--ultramarine); }

/* Policy: contents on the left, text on the right */
.aps2 .privacy-policy { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 72px; align-items: start; }
.aps2 .privacy-toc { position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; }
.aps2 .privacy-toc-title { margin-bottom: 12px !important; font-size: 12px !important; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--crusader-red); }
.aps2 .privacy-toc ol { list-style: none; border-left: 2px solid rgba(30,15,65,0.1); }
.aps2 .privacy-toc li a, .aps2 .privacy-toc li a:visited {
  display: block; padding: 7px 0 7px 16px; margin-left: -2px; border-left: 2px solid transparent; font-size: 14px; line-height: 1.4;
  color: #555555 !important; transition: var(--transition);
}
.aps2 .privacy-toc li a:hover { color: var(--ultramarine) !important; border-left-color: var(--crusader-red); }
.aps2 .privacy-article { max-width: 760px; }
.aps2 .privacy-article p:not(.section-label), .aps2 .privacy-article li { font-size: 17px; line-height: 1.75; color: #333333; }
.aps2 .privacy-article h3 { margin: 56px 0 16px; font-size: clamp(22px, 2.4vw, 28px) !important; color: var(--ultramarine); }
.aps2 .privacy-article h4 { margin: 32px 0 10px; font-size: 18px; font-weight: 700; color: var(--ultramarine); }
.aps2 .privacy-article ul { margin: 0 0 1em; list-style: none; }
.aps2 .privacy-article li { position: relative; padding-left: 26px; margin-bottom: 10px; }
.aps2 .privacy-article li::before { content: ''; position: absolute; left: 4px; top: 0.7em; width: 8px; height: 8px; border-radius: 50%; background: var(--azulejo-yellow); }
.aps2 .privacy-article a, .aps2 .privacy-article a:visited, .aps2 .privacy-contact-head a:not(.btn), .aps2 .privacy-contact-head a:not(.btn):visited {
  color: var(--crusader-red) !important; border-bottom: 1px solid rgba(230,80,35,0.35);
}
.aps2 .privacy-article a:hover, .aps2 .privacy-contact-head a:not(.btn):hover { border-bottom-color: var(--crusader-red); }
.aps2 .privacy-quote { margin: 8px 0 28px; padding: 24px 28px; background: var(--parchment); border-left: 3px solid var(--azulejo-yellow); border-radius: 2px; }
.aps2 .privacy-quote p { font-family: var(--font-display); font-style: italic; font-size: 18px; line-height: 1.6; color: var(--ultramarine); }

/* Contact */
.aps2 .privacy-contact-head { max-width: 720px; }
.aps2 .privacy-contact-head p:not(.section-label) { font-size: 17px; color: #333333; }
.aps2 a.privacy-contact-btn { margin-top: 28px; }

@media (max-width: 900px) {
  .aps2 .privacy-policy { grid-template-columns: 1fr; gap: 0; }
  .aps2 .privacy-toc { display: none; }
  .aps2 .privacy-principles { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .aps2 .privacy-principles { grid-template-columns: 1fr; }
  .aps2 .privacy-principle { padding: 28px 24px; }
  .aps2 .privacy-article p:not(.section-label), .aps2 .privacy-article li { font-size: 16px; }
}

/* Terms of Use extras */
.aps2 .privacy-article p.legal-updated { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #888888; }
.aps2 .privacy-article > p.legal-updated:first-child { margin-bottom: 28px; }
.aps2 .privacy-article > p.legal-updated:last-child { margin-top: 48px; padding-top: 24px; border-top: 1px solid rgba(30,15,65,0.1); }
.aps2 .legal-callout { margin: 28px 0; padding: 22px 26px; background: var(--parchment); border-left: 3px solid var(--crusader-red); border-radius: 2px; }
.aps2 .privacy-article .legal-callout p { margin: 0; font-weight: 600; color: var(--ultramarine); }

/* =====================================================================
   APS v2 — SUBSCRIBE PAGE (18-subscribe-top.html + WA's "Subscription form" gadget)
   The form card itself shares the membership / donation form styles (10-css-membership.css).
   ===================================================================== */

/* Intro vs thank-you: html.aps2-subscribe-done is set by APS2Subscribe once WA shows its confirmation */
html.aps2-subscribe-done .aps2 .hide-on-done, html:not(.aps2-subscribe-done) .aps2 .show-on-done { display: none !important; }

/* What subscribers get */
.aps2 .subscribe-perks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.aps2 .subscribe-perk { display: flex; gap: 16px; align-items: flex-start; padding: 24px; background: #ffffff; border-radius: 2px; }
.aps2 .subscribe-perk-icon {
  display: flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 50%;
  background: var(--parchment); color: var(--crusader-red);
}
.aps2 .subscribe-perk-icon svg { width: 20px; height: 20px; }
.aps2 .subscribe-perk h3 { margin-bottom: 4px; font-size: 18px !important; color: var(--ultramarine); }
.aps2 .subscribe-perk p { font-size: 14px; color: #555555; }
.aps2 .subscribe-done { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* A short form: narrower card, heading lined up with it */
.aps2#aps2Subscribe .apply-head .container { max-width: 736px; }
body:has(#aps2Subscribe) .WaGadgetSubscriptionForm .generalFormOuterContainer { max-width: 640px; }
/* WA's "Back" link (history.back()) and the repeated "Open link" next to the privacy policy link */
body:has(#aps2Subscribe) .WaGadgetSubscriptionForm a.backLink,
body:has(#aps2Subscribe) .WaGadgetSubscriptionForm .textLine a + a { display: none !important; }
body:has(#aps2Subscribe) .WaGadgetSubscriptionForm .textLine a { color: #e65023 !important; text-decoration: underline !important; }

/* The footer's own "Stay in the Loop" box would repeat this page */
body:has(#aps2Subscribe) .aps2 .footer-newsletter { display: none !important; }

@media (max-width: 900px) { .aps2 .subscribe-perks { grid-template-columns: 1fr; gap: 12px; } }
