@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='Layer_1'/%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 --- */
.aps2 .event-card { cursor: pointer; }
.aps2 .event-card.has-thumb { grid-template-columns: 160px 1fr 300px; }
.aps2 .event-card-thumb { background-size: cover; background-position: center; min-height: 100%; }
.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-body p { color: #555555; }
.aps2 .event-card-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.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; }

/* 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: 1024px) {
  .aps2 .event-card.has-thumb { grid-template-columns: 140px 1fr; }
  .aps2 .event-card-thumb { display: none; }
}
@media (max-width: 860px) {
  body:has(#aps2EventsPage) .WaGadgetPublicWizard { padding: 40px 24px 72px !important; }
}
@media (max-width: 768px) {
  .aps2 .event-card.has-thumb { grid-template-columns: 1fr; }
  .aps2 .event-card-thumb { display: block; min-height: 180px; order: -1; }
  .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; }

/* =====================================================================
   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;
}

/* =====================================================================
   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), restyled as one centred card --- */
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) {
  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) .generalFormOuterContainer { max-width: 820px; margin: 0 auto; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .formOuterContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .formTitleContainer, :is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .formTitleOuterContainer * { border: 0 !important; background: none !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .formTitleContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .formTitle,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .mandatoryFieldsTitle strong { font-weight: 600 !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .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) .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) .fieldLabel,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .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) .fieldSubContainer table,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .fieldSubContainer tbody,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .fieldSubContainer tr,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .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) .fieldContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .groupContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .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) .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) input[type="radio"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) 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) .labelTitle { font-weight: 700; color: #1e0f41; letter-spacing: 0.04em; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .levelPrice { color: #e65023; font-weight: 700; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .labelSubTitle,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .typeInstruction,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .levelRenewal,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .levelRecurring,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) input[type="text"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[type="email"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[type="tel"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[type="password"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) select,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) 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) input:focus,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) select:focus,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) 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) .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) .typeInstruction { display: block; margin-top: 6px; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) 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) .infoOuterContainer,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) .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) .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) .navigationContainer .left { margin-right: auto; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[type="submit"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[type="button"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) input[type="submit"]:hover { background: #c93e18 !important; border-color: #c93e18 !important; }
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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) input[id$="_prev"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[id$="_prevTop"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) input[id$="_cancel"],
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) 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) input[id$="_prev"]:hover,
:is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) 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) 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) { padding: 8px 16px 72px !important; }
  :is(body:has(#aps2Membership) .WaGadgetMembershipApplication, body:has(#aps2Donate) .WaGadgetDonationForm, body:has(#aps2Subscribe) .WaGadgetSubscriptionForm) .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; } }

/* =====================================================================
   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; } }
