/* ============================================================
   EDITOR VISIBILITY FALLBACK
   In Gutenberg the IntersectionObserver never fires, so
   data-reveal elements stay opacity:0. This rule makes them
   visible inside the editor iframe while keeping the front-end
   animation behaviour intact.
   ============================================================ */
.editor-styles-wrapper [data-reveal],
.block-editor-writing-flow [data-reveal],
.is-root-container [data-reveal],
.ap-ach-editor-preview [data-reveal]{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  visibility:visible!important;
}

/* Same visual CSS in Gutenberg, plus a clear editor-only preview marker. */
.ap-ach-editor-preview{
  display:block!important;
  visibility:visible!important;
  min-height:420px!important;
}

.editor-styles-wrapper .ap-ach-wrap,
.block-editor-writing-flow .ap-ach-wrap{
  visibility:visible!important;
}

/* Inspector repeater helpers; these classes do not affect the public page. */
.cpach-panel-help{
  color:#646970!important;
  font-size:12px!important;
  line-height:1.5!important;
  margin:0 0 10px!important;
}
.cpach-repeater-list{
  display:block!important;
  margin-top:12px!important;
  border-top:1px solid #e0e0e0!important;
}
.cpach-repeater-list .components-panel__body{
  border-top:1px solid #e0e0e0!important;
  margin:0!important;
}
.cpach-repeater-list .components-panel__body:first-child{
  border-top:0!important;
}

/* ============================================================
   FULLY SCOPED STYLES — .ap-ach-wrap
   ============================================================ */
.ap-ach-wrap *,
.ap-ach-wrap *::before,
.ap-ach-wrap *::after{
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
}

.ap-ach-wrap{
  --ach-primary:#0D2B52;
  --ach-secondary:#1E4E79;
  --ach-accent:#D4AF37;
  --ach-accent-soft:rgba(212,175,55,.14);
  --ach-accent-soft-2:rgba(212,175,55,.08);
  --ach-bg:#F8FAFC;
  --ach-dark:#091A30;
  --ach-text:#1B1B1B;
  --ach-text-soft:rgba(27,27,27,.62);
  --ach-white:#ffffff;
  --ach-line:rgba(13,43,82,.12);
  --ach-radius-s:12px;
  --ach-radius-m:20px;
  --ach-radius-l:32px;
  --ach-shadow-soft:0 20px 60px rgba(9,26,48,.1);
  --ach-shadow-lift:0 30px 80px rgba(9,26,48,.18);
  --ach-shadow-gold:0 14px 34px rgba(212,175,55,.28);
  --ach-font-head:'Playfair Display',serif;
  --ach-font-body:'Inter',-apple-system,sans-serif;
  --ach-font-mono:'JetBrains Mono',monospace;
  --ach-ease:cubic-bezier(.16,.8,.24,1);

  font-family:var(--ach-font-body)!important;
  color:var(--ach-text)!important;
  line-height:1.65!important;
  -webkit-font-smoothing:antialiased!important;
  overflow-x:hidden!important;
  width:100%!important;
  position:relative!important;
  background:transparent!important;
}

/* --- Base resets inside wrapper --- */
.ap-ach-wrap img,
.ap-ach-wrap svg{
  display:block!important;
  max-width:100%!important;
}
.ap-ach-wrap a{
  color:inherit!important;
  text-decoration:none!important;
}
.ap-ach-wrap ul{list-style:none!important;}
.ap-ach-wrap button{
  font-family:inherit!important;
  cursor:pointer!important;
  border:none!important;
  background:none!important;
  color:inherit!important;
}
.ap-ach-wrap h1,
.ap-ach-wrap h2,
.ap-ach-wrap h3,
.ap-ach-wrap h4{
  font-family:var(--ach-font-head)!important;
  font-weight:600!important;
  line-height:1.15!important;
  letter-spacing:-.01em!important;
}
.ap-ach-wrap section{
  position:relative!important;
  width:100%!important;
}
.ap-ach-wrap .ach-c{
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:40px!important;
  padding-right:40px!important;
}

/* --- Icon utility --- */
.ap-ach-wrap .ach-ic{
  width:22px!important;
  height:22px!important;
  stroke:currentColor!important;
  fill:none!important;
  stroke-width:1.5!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  flex-shrink:0!important;
}

/* --- Reveal animations --- */
.ap-ach-wrap [data-reveal]{
  opacity:0!important;
  transition:opacity .9s var(--ach-ease),transform .9s var(--ach-ease)!important;
  will-change:transform,opacity!important;
}
.ap-ach-wrap [data-reveal="up"]{transform:translateY(46px)!important;}
.ap-ach-wrap [data-reveal="left"]{transform:translateX(-46px)!important;}
.ap-ach-wrap [data-reveal="right"]{transform:translateX(46px)!important;}
.ap-ach-wrap [data-reveal].in-view{
  opacity:1!important;
  transform:none!important;
}

/* --- Eyebrow --- */
.ap-ach-wrap .ach-eyebrow{
  font-family:var(--ach-font-mono)!important;
  font-size:.72rem!important;
  letter-spacing:.22em!important;
  text-transform:uppercase!important;
  color:var(--ach-accent)!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  margin-bottom:18px!important;
  font-weight:500!important;
}
.ap-ach-wrap .ach-eyebrow::before{
  content:''!important;
  width:26px!important;
  height:1px!important;
  background:var(--ach-accent)!important;
  display:inline-block!important;
}

/* --- Section head --- */
.ap-ach-wrap .ach-head{
  max-width:640px!important;
  margin-bottom:56px!important;
}
.ap-ach-wrap .ach-head h2{
  font-size:clamp(2rem,4vw,2.9rem)!important;
  color:var(--ach-primary)!important;
}
.ap-ach-wrap .ach-head p{
  margin-top:18px!important;
  color:var(--ach-text-soft)!important;
  font-size:1.05rem!important;
  max-width:540px!important;
}

/* --- Sub-head divider --- */
.ap-ach-wrap .ach-subhead{
  display:flex!important;
  align-items:center!important;
  gap:20px!important;
  margin-bottom:44px!important;
}
.ap-ach-wrap .ach-subhead h3{
  font-size:1.15rem!important;
  color:var(--ach-primary)!important;
  white-space:nowrap!important;
}
.ap-ach-wrap .ach-subhead-line{
  flex:1!important;
  height:1px!important;
  background:linear-gradient(90deg,var(--ach-line),transparent)!important;
}

/* ============================================================
   SECTION
   ============================================================ */
.ap-ach-wrap .ach-section{
  padding:150px 0 140px!important;
  background:var(--ach-white)!important;
  position:relative!important;
  overflow:hidden!important;
}

/* ============================================================
   FEATURED AWARDS (two asymmetric cards)
   ============================================================ */
.ap-ach-wrap .ach-featured{
  display:grid!important;
  grid-template-columns:1.2fr .8fr!important;
  gap:28px!important;
  margin-bottom:72px!important;
}
.ap-ach-wrap .ach-feat{
  border-radius:var(--ach-radius-l)!important;
  overflow:hidden!important;
  position:relative!important;
  background:linear-gradient(155deg,var(--ach-primary),var(--ach-dark) 85%)!important;
  min-height:380px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
  box-shadow:var(--ach-shadow-lift)!important;
  transition:transform .5s var(--ach-ease),box-shadow .5s var(--ach-ease)!important;
}
.ap-ach-wrap .ach-feat:hover{
  transform:translateY(-6px)!important;
  box-shadow:0 40px 90px rgba(9,26,48,.25)!important;
}
.ap-ach-wrap .ach-feat::before{
  content:''!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at 75% 20%,rgba(212,175,55,.15),transparent 55%)!important;
  pointer-events:none!important;
}
.ap-ach-wrap .ach-feat::after{
  content:''!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(to top,rgba(9,26,48,.85) 0%,rgba(9,26,48,.3) 45%,transparent 70%)!important;
  pointer-events:none!important;
}
.ap-ach-wrap .ach-feat-img{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
}
.ap-ach-wrap .ach-feat-img img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  opacity:.35!important;
  transition:opacity .5s var(--ach-ease),transform .8s var(--ach-ease)!important;
}
.ap-ach-wrap .ach-feat:hover .ach-feat-img img{
  opacity:.45!important;
  transform:scale(1.05)!important;
}
.ap-ach-wrap .ach-feat-badge{
  position:absolute!important;
  top:24px!important;
  left:24px!important;
  z-index:3!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  background:rgba(212,175,55,.15)!important;
  border:1px solid rgba(212,175,55,.35)!important;
  padding:8px 16px!important;
  border-radius:100px!important;
  font-family:var(--ach-font-mono)!important;
  font-size:.66rem!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:#F3DA8A!important;
}
.ap-ach-wrap .ach-feat-badge .ach-ic{
  width:13px!important;
  height:13px!important;
}
.ap-ach-wrap .ach-feat-body{
  position:relative!important;
  z-index:3!important;
  padding:36px 32px!important;
}
.ap-ach-wrap .ach-feat-body h3{
  font-size:clamp(1.4rem,2.5vw,1.8rem)!important;
  color:var(--ach-white)!important;
  margin-bottom:10px!important;
}
.ap-ach-wrap .ach-feat-body p{
  color:rgba(255,255,255,.65)!important;
  font-size:.94rem!important;
  line-height:1.7!important;
  max-width:420px!important;
}
.ap-ach-wrap .ach-feat-year{
  display:inline-block!important;
  margin-top:14px!important;
  font-family:var(--ach-font-mono)!important;
  font-size:.68rem!important;
  letter-spacing:.08em!important;
  color:var(--ach-accent)!important;
  border:1px solid rgba(212,175,55,.3)!important;
  padding:4px 12px!important;
  border-radius:100px!important;
}
.ap-ach-wrap .ach-feat-sm{min-height:380px!important;}
.ap-ach-wrap .ach-feat-sm .ach-feat-body h3{
  font-size:clamp(1.2rem,2vw,1.5rem)!important;
}

/* ============================================================
   RECOGNITION LIST
   ============================================================ */
.ap-ach-wrap .ach-recog-list{
  display:flex!important;
  flex-direction:column!important;
  gap:20px!important;
  margin-bottom:80px!important;
}
.ap-ach-wrap .ach-recog{
  display:grid!important;
  grid-template-columns:80px 1fr auto!important;
  gap:0!important;
  align-items:center!important;
  padding:28px 32px!important;
  border-radius:var(--ach-radius-m)!important;
  background:var(--ach-bg)!important;
  border:1px solid var(--ach-line)!important;
  transition:transform .4s var(--ach-ease),box-shadow .4s var(--ach-ease),border-color .4s var(--ach-ease),background .4s var(--ach-ease)!important;
}
.ap-ach-wrap .ach-recog:hover{
  transform:translateX(6px)!important;
  box-shadow:var(--ach-shadow-soft)!important;
  border-color:rgba(212,175,55,.3)!important;
  background:var(--ach-white)!important;
}
.ap-ach-wrap .ach-recog-ic{
  width:52px!important;
  height:52px!important;
  border-radius:50%!important;
  background:var(--ach-white)!important;
  border:1px solid var(--ach-line)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:var(--ach-primary)!important;
  flex-shrink:0!important;
  transition:all .4s var(--ach-ease)!important;
}
.ap-ach-wrap .ach-recog:hover .ach-recog-ic{
  background:var(--ach-primary)!important;
  color:var(--ach-accent)!important;
  border-color:var(--ach-primary)!important;
  box-shadow:var(--ach-shadow-gold)!important;
}
.ap-ach-wrap .ach-recog-ic svg{width:22px!important;height:22px!important;}
.ap-ach-wrap .ach-recog-txt h4{
  font-size:1.05rem!important;
  color:var(--ach-primary)!important;
  margin-bottom:4px!important;
  font-family:var(--ach-font-head)!important;
  font-weight:600!important;
}
.ap-ach-wrap .ach-recog-txt p{
  font-size:.88rem!important;
  color:var(--ach-text-soft)!important;
  max-width:500px!important;
  line-height:1.55!important;
}
.ap-ach-wrap .ach-recog-tag{
  font-family:var(--ach-font-mono)!important;
  font-size:.66rem!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  color:var(--ach-secondary)!important;
  border:1px solid var(--ach-line)!important;
  padding:5px 14px!important;
  border-radius:100px!important;
  white-space:nowrap!important;
  transition:all .3s var(--ach-ease)!important;
}
.ap-ach-wrap .ach-recog:hover .ach-recog-tag{
  border-color:var(--ach-accent)!important;
  color:var(--ach-accent)!important;
  background:var(--ach-accent-soft-2)!important;
}

/* ============================================================
   MEMBERSHIPS GRID
   ============================================================ */
.ap-ach-wrap .ach-mem-grid{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:24px!important;
}
.ap-ach-wrap .ach-mem{
  padding:32px 28px!important;
  border-radius:var(--ach-radius-m)!important;
  border:1px solid var(--ach-line)!important;
  background:var(--ach-white)!important;
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
  transition:transform .5s var(--ach-ease),box-shadow .5s var(--ach-ease),border-color .4s var(--ach-ease)!important;
  position:relative!important;
  overflow:hidden!important;
}
.ap-ach-wrap .ach-mem::before{
  content:''!important;
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:0!important;
  height:3px!important;
  background:linear-gradient(90deg,var(--ach-accent),#F3DA8A)!important;
  transform:scaleX(0)!important;
  transform-origin:left!important;
  transition:transform .5s var(--ach-ease)!important;
}
.ap-ach-wrap .ach-mem:hover{
  transform:translateY(-8px)!important;
  box-shadow:var(--ach-shadow-lift)!important;
  border-color:rgba(212,175,55,.3)!important;
}
.ap-ach-wrap .ach-mem:hover::before{transform:scaleX(1)!important;}
.ap-ach-wrap .ach-mem-ic{
  width:50px!important;
  height:50px!important;
  border-radius:var(--ach-radius-s)!important;
  background:linear-gradient(135deg,var(--ach-primary),var(--ach-secondary))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:var(--ach-accent)!important;
  flex-shrink:0!important;
}
.ap-ach-wrap .ach-mem-ic svg{width:22px!important;height:22px!important;}
.ap-ach-wrap .ach-mem h4{
  font-size:1.05rem!important;
  color:var(--ach-primary)!important;
  margin-bottom:2px!important;
  font-family:var(--ach-font-head)!important;
  font-weight:600!important;
}
.ap-ach-wrap .ach-mem p{
  font-size:.88rem!important;
  color:var(--ach-text-soft)!important;
  line-height:1.6!important;
  flex:1!important;
}
.ap-ach-wrap .ach-mem-type{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  font-family:var(--ach-font-mono)!important;
  font-size:.62rem!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  color:var(--ach-accent)!important;
}
.ap-ach-wrap .ach-mem-type::before{
  content:''!important;
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:var(--ach-accent)!important;
  flex-shrink:0!important;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .ap-ach-wrap .ach-featured{grid-template-columns:1fr!important;}
  .ap-ach-wrap .ach-feat{min-height:320px!important;}
  .ap-ach-wrap .ach-mem-grid{grid-template-columns:repeat(2,1fr)!important;}
}
@media(max-width:860px){
  .ap-ach-wrap .ach-recog{grid-template-columns:52px 1fr!important;gap:16px!important;}
  .ap-ach-wrap .ach-recog-tag{display:none!important;}
}
@media(max-width:640px){
  .ap-ach-wrap .ach-c{padding-left:22px!important;padding-right:22px!important;}
  .ap-ach-wrap .ach-section{padding:100px 0 80px!important;}
  .ap-ach-wrap .ach-feat{min-height:260px!important;}
  .ap-ach-wrap .ach-feat-body{padding:24px 20px!important;}
  .ap-ach-wrap .ach-recog{padding:20px!important;}
  .ap-ach-wrap .ach-mem{padding:24px 20px!important;}
  .ap-ach-wrap .ach-mem-grid{grid-template-columns:1fr!important;}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .ap-ach-wrap *,
  .ap-ach-wrap *::before,
  .ap-ach-wrap *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .ap-ach-wrap [data-reveal]{
    opacity:1!important;
    transform:none!important;
  }
}
