:root { --jba-logo: url("/assets/logo-jba.webp"); }

.logo-mark {
  display: block;
  flex: 0 0 auto;
  background-image: var(--jba-logo);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.brand > .logo-mark {
  display: block;
  width: 54px;
  height: 62px;
  gap: 0;
}

.logo-hero {
  width: 120px;
  height: 138px;
}

.logo-feature {
  width: min(72%, 360px);
  aspect-ratio: 300 / 345;
  filter: drop-shadow(0 26px 35px rgba(0,0,0,.25));
}

.logo-footer {
  width: 54px;
  height: 62px;
}

.hero-card-mark {
  width: 126px;
  min-height: 144px;
  display: flex;
  align-items: center;
  margin-bottom: 24px;
  background: transparent;
  padding: 0;
  border-radius: 0;
}

.brand-panel {
  min-height: 500px;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at center, rgba(184,154,93,.22), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.025), rgba(184,154,93,.04));
  border: 1px solid rgba(216,192,138,.22);
}

.brand-panel .logo-feature {
  width: min(72%, 360px);
}

.footer-brand .logo-footer {
  width: 54px;
  height: 62px;
}

@media (max-width: 680px) {
  .brand > .logo-mark { width: 46px; height: 53px; }
  .brand-panel { min-height: 300px; }
}

/* Interior pages and resources */

.page-hero {
  position: relative;
  overflow: hidden;
  background: var(--charcoal);
  color: white;
  padding: 118px 0 92px;
}

.page-hero::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -180px;
  top: -110px;
  transform: rotate(45deg);
  border: 1px solid rgba(216,192,138,.18);
}

.page-hero .container {
  position: relative;
  z-index: 2;
  max-width: 920px;
}

.page-hero h1 {
  font-family: "Libre Caslon Display", Georgia, serif;
  font-weight: 400;
  font-size: clamp(3rem, 6vw, 5.4rem);
  line-height: 1.06;
  letter-spacing: -.025em;
  margin: 0;
}

.page-hero p:not(.eyebrow) {
  max-width: 760px;
  color: rgba(255,255,255,.7);
  font-size: 1.08rem;
  margin: 24px 0 0;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 30px;
  color: rgba(255,255,255,.5);
  font-size: .78rem;
}

.breadcrumbs a:hover { color: var(--gold-light); }

.resource-intro {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 80px;
  align-items: start;
}

.resource-intro > p {
  margin: 0;
  color: var(--gray);
}

.resource-grid,
.article-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.resource-card,
.article-card {
  min-height: 320px;
  padding: 38px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  display: flex;
  flex-direction: column;
  transition: transform .22s ease, background .22s ease;
}

.resource-card:hover,
.article-card:hover {
  transform: translateY(-4px);
  background: var(--ivory);
}

.resource-card .number,
.article-card .meta {
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .72rem;
  font-weight: 700;
}

.resource-card h3,
.article-card h2 {
  font-family: "Libre Caslon Display", Georgia, serif;
  font-weight: 400;
  line-height: 1.12;
  margin: 48px 0 16px;
  font-size: 2rem;
}

.resource-card p,
.article-card p {
  color: var(--gray);
  margin: 0 0 26px;
}

.resource-card .text-link,
.article-card .text-link {
  margin-top: auto;
  align-self: flex-start;
  color: var(--ink);
}

.article-card.featured {
  grid-column: span 2;
  min-height: 390px;
  background: var(--charcoal);
  color: white;
}

.article-card.featured p { color: rgba(255,255,255,.65); }
.article-card.featured .text-link { color: var(--gold-light); }

.home-resources {
  background: var(--paper);
}

.home-resources .resource-grid {
  margin-top: 48px;
}

.faq-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 70px;
}

.faq-nav {
  position: sticky;
  top: 110px;
  align-self: start;
  border-top: 1px solid var(--line);
}

.faq-nav a {
  display: block;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  color: var(--gray);
  font-size: .9rem;
}

.faq-nav a:hover { color: var(--ink); }

.faq-group {
  scroll-margin-top: 110px;
  margin-bottom: 72px;
}

.faq-group h2 {
  font-family: "Libre Caslon Display", Georgia, serif;
  font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 3.2rem);
  margin: 0 0 28px;
}

.faq-group details {
  border-top: 1px solid var(--line);
}

.faq-group details:last-child {
  border-bottom: 1px solid var(--line);
}

.faq-group summary {
  list-style: none;
  cursor: pointer;
  padding: 22px 48px 22px 0;
  position: relative;
  font-weight: 600;
}

.faq-group summary::-webkit-details-marker { display: none; }

.faq-group summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 18px;
  color: var(--gold);
  font-size: 1.6rem;
  font-weight: 400;
}

.faq-group details[open] summary::after { content: "−"; }

.faq-answer {
  color: var(--gray);
  padding: 0 54px 24px 0;
  max-width: 820px;
}

.notice-box {
  background: var(--ivory);
  border-left: 3px solid var(--gold);
  padding: 24px 28px;
  color: var(--gray);
  margin: 36px 0;
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 90px;
  align-items: start;
}

.article-body {
  font-size: 1.04rem;
}

.article-body h2 {
  font-family: "Libre Caslon Display", Georgia, serif;
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 400;
  margin: 54px 0 20px;
}

.article-body h3 {
  font-family: "Libre Caslon Display", Georgia, serif;
  font-weight: 400;
  font-size: 1.6rem;
  margin: 38px 0 14px;
}

.article-body p,
.article-body li {
  color: #4e4b47;
}

.article-body ul,
.article-body ol {
  padding-left: 24px;
}

.article-body a {
  color: #765e32;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.article-sidebar {
  position: sticky;
  top: 110px;
  border: 1px solid var(--line);
  padding: 28px;
  background: var(--ivory);
}

.article-sidebar h3 {
  font-family: "Libre Caslon Display", Georgia, serif;
  font-weight: 400;
  font-size: 1.45rem;
  margin: 0 0 14px;
}

.article-sidebar p {
  color: var(--gray);
  font-size: .9rem;
}

.article-sidebar .button { width: 100%; margin-top: 12px; }

.source-list {
  margin-top: 54px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  font-size: .84rem;
}

.source-list strong {
  display: block;
  margin-bottom: 12px;
}

.source-list a {
  display: block;
  margin: 8px 0;
}

.archive-note {
  font-size: .78rem;
  color: var(--gray);
  margin-top: 18px;
}

/* Premium interaction layer */
.site-header{transition:box-shadow .25s ease,background .25s ease}
.site-header.is-scrolled{box-shadow:0 12px 32px rgba(18,18,18,.08);background:rgba(255,253,248,.98)}

.nav-dropdown{position:relative;align-self:stretch;display:flex;align-items:center}
.nav-dropdown-trigger-row{display:flex;align-items:center;gap:3px;height:100%}
.nav-dropdown-link{position:relative;padding:12px 0}
.nav-dropdown-link::after{content:"";position:absolute;left:0;bottom:6px;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .22s ease}
.nav-dropdown:hover .nav-dropdown-link::after,.nav-dropdown:focus-within .nav-dropdown-link::after{transform:scaleX(1);transform-origin:left}
.nav-dropdown-toggle{display:grid;place-items:center;width:28px;height:28px;border:0;background:transparent;color:var(--gray);font-size:1rem;transition:transform .2s ease,color .2s ease}
.nav-dropdown:hover .nav-dropdown-toggle,.nav-dropdown:focus-within .nav-dropdown-toggle,.nav-dropdown.open .nav-dropdown-toggle{color:var(--gold);transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:calc(100% - 2px);left:-26px;width:330px;padding:14px;background:var(--paper);border:1px solid var(--line);box-shadow:0 24px 54px rgba(18,18,18,.14);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown:focus-within .nav-dropdown-menu,.nav-dropdown.open .nav-dropdown-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.nav-dropdown-menu a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border-bottom:1px solid var(--line);font-size:.88rem;transition:background .18s ease,padding-left .18s ease,color .18s ease}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:var(--ivory);padding-left:18px;color:#765e32}
.nav-dropdown-menu a:last-child{border-bottom:0}
.nav-dropdown-menu .nav-dropdown-all{margin-top:8px;background:var(--ink);color:#fff;border:0}
.nav-dropdown-menu .nav-dropdown-all:hover,.nav-dropdown-menu .nav-dropdown-all:focus-visible{background:#302f2c;color:var(--gold-light)}

.mobile-action-bar{display:none}
.back-to-top{position:fixed;right:26px;bottom:104px;z-index:115;width:44px;height:44px;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.22);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{transform:translateY(-2px);color:var(--gold-light)}

.reveal-on-scroll{opacity:0;transform:translateY(22px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.reveal-on-scroll.is-visible{opacity:1;transform:none}

.reading-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:1000;background:transparent;pointer-events:none}
.reading-progress span{display:block;width:var(--reading-progress,0%);height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-light));transition:width .08s linear}

.related-reading{margin-top:70px;padding-top:34px;border-top:1px solid var(--line)}
.related-reading .eyebrow{margin-bottom:10px;color:var(--gold)}
.article-body .related-reading h2{margin:0 0 24px;font-size:clamp(2rem,3vw,2.7rem)}
.related-reading-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.article-body .related-reading-grid a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:120px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink);text-decoration:none;font-family:"Libre Caslon Display",Georgia,serif;font-size:1.3rem;transition:background .2s ease,color .2s ease,transform .2s ease}
.article-body .related-reading-grid a:hover,.article-body .related-reading-grid a:focus-visible{background:var(--ivory);color:#765e32;transform:translateY(-2px)}

.consultation-context{display:none;padding:18px 20px;border:1px solid rgba(184,154,93,.42);background:var(--ivory);color:var(--gray);font-size:.92rem;line-height:1.55}
.consultation-context.show{display:block}
.consultation-context strong{display:block;color:var(--ink);font-family:"Libre Caslon Display",Georgia,serif;font-size:1.25rem;font-weight:400;margin-bottom:3px}
.request-reference{display:none;margin:22px auto 0;padding:13px 18px;border:1px solid var(--line);background:var(--ivory);font-size:.86rem;color:var(--gray);max-width:max-content}
.request-reference.show{display:block}
.request-reference strong{color:var(--ink);letter-spacing:.06em}

@media (max-width: 980px) {
  .nav-dropdown{display:block;align-self:auto;border-bottom:1px solid var(--line)}
  .nav-dropdown-trigger-row{justify-content:space-between;height:auto}
  .nav-dropdown-link{flex:1;padding:14px 0}
  .nav-dropdown-link::after{display:none}
  .nav-dropdown-toggle{width:44px;height:44px}
  .nav-dropdown-menu{position:static;width:auto;padding:0 0 8px;border:0;box-shadow:none;background:transparent;opacity:1;visibility:visible;pointer-events:auto;transform:none;display:none}
  .nav-dropdown.open .nav-dropdown-menu{display:block}
  .nav-dropdown-menu a{padding:12px 16px;margin-left:12px;background:var(--ivory)}
  .nav-dropdown-menu .nav-dropdown-all{margin:8px 0 0 12px}
}

@media (max-width: 900px) {
  .resource-intro,
  .article-layout {
    grid-template-columns: 1fr;
    gap: 44px;
  }
  .faq-layout {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .faq-nav {
    position: static;
    display: flex;
    overflow-x: auto;
    gap: 18px;
    border: 0;
  }
  .faq-nav a {
    white-space: nowrap;
    border: 0;
    border-bottom: 1px solid var(--line);
  }
  .article-sidebar { position: static; }
}

@media (max-width: 700px) {
  body{padding-bottom:72px}
  .mobile-action-bar{position:fixed;left:0;right:0;bottom:0;z-index:210;display:grid;grid-template-columns:1fr 1.35fr;min-height:64px;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -12px 30px rgba(18,18,18,.1);padding-bottom:env(safe-area-inset-bottom)}
  .mobile-action-bar a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:64px;font-size:.82rem;font-weight:700}
  .mobile-action-bar a:first-child{border-right:1px solid var(--line)}
  .mobile-action-bar .mobile-action-primary{background:var(--ink);color:#fff}
  .assistant-launcher{bottom:82px!important}
  .assistant-panel{bottom:150px!important;height:min(560px,calc(100vh - 180px))}
  .back-to-top{right:15px;bottom:148px;width:40px;height:40px}
  .related-reading-grid{grid-template-columns:1fr}
  .article-body .related-reading-grid a{min-height:100px;font-size:1.15rem}
}

@media (max-width: 680px) {
  .page-hero { padding: 90px 0 68px; }
  .resource-grid,
  .article-grid {
    grid-template-columns: 1fr;
  }
  .article-card.featured { grid-column: auto; }
  .resource-card,
  .article-card { min-height: 280px; padding: 28px; }
  .resource-card h3,
  .article-card h2 { margin-top: 36px; font-size: 1.75rem; }
}

@media (prefers-reduced-motion:reduce){
  .reveal-on-scroll{opacity:1;transform:none;transition:none}
  .nav-dropdown-menu,.back-to-top,.site-header{transition:none}
  html{scroll-behavior:auto}
}