/* APG Case Studies - editorial / corporate layout */
:root{--case-ink:#171717;--case-muted:#6d7075;--case-line:#e5e7ea;--case-soft:#f4f6f7;--case-accent:#ba8b4b}
.caseHero{background:linear-gradient(180deg,#f4f5f6 0%,#fff 100%);padding:150px 7vw 78px}.caseHero_inner,.caseWrap,.caseDetailHero_inner,.caseDetailWrap{max-width:1200px;margin:0 auto}.caseEyebrow{font-size:12px;line-height:1.4;letter-spacing:.22em;font-weight:700;color:#8a6a40;text-transform:uppercase}.caseHero h1{font-size:clamp(42px,5.6vw,72px);letter-spacing:-.035em;line-height:1.05;margin:14px 0 22px;color:var(--case-ink)}.caseHero p{max-width:760px;margin:0;font-size:17px;line-height:1.9;color:var(--case-muted)}
.caseWrap{padding:64px 24px 100px}.caseBreadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:#888;margin-bottom:44px}.caseBreadcrumb a{color:#555;text-decoration:none}.caseBreadcrumb a:hover{color:#111}.caseIntro{display:grid;grid-template-columns:180px minmax(0,1fr);gap:40px;padding:0 0 44px;margin-bottom:44px;border-bottom:1px solid var(--case-line)}.caseIntro_label{font-size:12px;font-weight:700;letter-spacing:.18em;color:#8a6a40}.caseIntro h2{font-size:clamp(25px,3vw,38px);line-height:1.35;margin:0 0 12px;color:var(--case-ink)}.caseIntro p{max-width:780px;font-size:16px;line-height:1.85;color:var(--case-muted);margin:0}
.caseGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 26px}.caseCard{position:relative;background:#fff;border:1px solid var(--case-line);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.caseCard:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(17,17,17,.09);border-color:#d4d6d8}.caseCard a{display:block;height:100%;color:inherit;text-decoration:none}.caseCard_img{aspect-ratio:624/390;background:#e9ecef;overflow:hidden}.caseCard_img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.caseCard:hover .caseCard_img img{transform:scale(1.035)}.caseCard_img--placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1d252c,#4a5156);color:#fff}.caseCard_img--placeholder span{font-size:12px;letter-spacing:.28em;opacity:.72}.caseCard_img--placeholder strong{margin-top:8px;font-size:24px;letter-spacing:.08em}.caseCard_body{padding:24px 24px 26px}.caseCard_meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.08em;color:#8a8d91;text-transform:uppercase;margin-bottom:14px}.caseCard h2,.caseCard h3{font-size:21px;line-height:1.5;letter-spacing:-.015em;margin:0 0 12px;color:var(--case-ink)}.caseCard p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.85;color:var(--case-muted);margin:0}.caseMore{display:inline-flex;align-items:center;gap:10px;margin-top:22px;font-size:13px;font-weight:700;letter-spacing:.03em}.caseMore i{font-style:normal;transition:transform .2s}.caseCard:hover .caseMore i{transform:translateX(4px)}
.casePagination{display:flex;justify-content:center;gap:8px;margin-top:58px}.casePagination a,.casePagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border:1px solid var(--case-line);text-decoration:none;color:#333}.casePagination .current{background:#171717;color:#fff;border-color:#171717}.caseEmpty{padding:60px 24px;text-align:center;background:var(--case-soft);color:var(--case-muted)}
/* Detail hero */
.caseDetailHero{padding:138px 24px 58px;background:#f4f5f6}.caseDetailHero_inner{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);gap:64px;align-items:center}.caseDetailHero_copy{padding:22px 0}.caseDetail_meta{display:flex;gap:18px;margin:18px 0 16px;font-size:12px;letter-spacing:.08em;color:#85898c;text-transform:uppercase}.caseDetailHero h1{font-size:clamp(34px,4.5vw,58px);line-height:1.18;letter-spacing:-.035em;margin:0;color:var(--case-ink)}.caseDetail_lead{font-size:17px;line-height:1.95;color:#606469;margin:24px 0 0}.caseDetailHero_media{width:100%;max-width:624px;min-height:0;aspect-ratio:624/390;justify-self:end;background:#dde1e4;overflow:hidden;box-shadow:0 20px 55px rgba(0,0,0,.11)}.caseDetailHero_media>img{width:100%;height:100%;object-fit:contain;display:block}.caseCoverPlaceholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1d252c,#596168);color:#fff;text-align:center}.caseCoverPlaceholder span{font-size:13px;letter-spacing:.28em;opacity:.7}.caseCoverPlaceholder strong{font-size:34px;letter-spacing:.08em;margin:9px 0}.caseCoverPlaceholder small{font-size:12px;opacity:.55}
.caseDetailWrap{padding:34px 24px 110px}.caseDetailWrap>.caseBreadcrumb{margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--case-line)}.caseArticleLayout{display:grid;grid-template-columns:230px minmax(0,780px);justify-content:center;gap:70px;align-items:start}.caseArticleAside{position:relative}.caseArticleAside_box{position:sticky;top:120px;border-top:2px solid #222;padding-top:18px}.caseArticleAside_label{font-size:11px;font-weight:700;letter-spacing:.18em;color:#8a6a40;margin-bottom:18px}.caseArticleAside dl{margin:0}.caseArticleAside dl>div{padding:14px 0;border-bottom:1px solid var(--case-line)}.caseArticleAside dt{font-size:11px;color:#96999c;margin-bottom:5px}.caseArticleAside dd{font-size:13px;line-height:1.6;color:#333;margin:0}.caseBackLink{display:inline-block;margin-top:24px;color:#222;font-size:13px;text-decoration:none}.caseArticle{min-width:0}.caseArticle_body{font-size:17px;line-height:2.05;color:#333}.caseArticle_body>p:first-child{font-size:19px;line-height:2;color:#45484b}.caseArticle_body h1{display:none}.caseArticle_body h2{position:relative;font-size:29px;line-height:1.45;letter-spacing:-.02em;margin:62px 0 20px;padding-top:22px;color:#171717;border-top:1px solid #dfe2e4}.caseArticle_body h2:before{content:"";position:absolute;left:0;top:-1px;width:64px;height:2px;background:#8a6a40}.caseArticle_body h3{font-size:21px;line-height:1.5;margin:38px 0 12px;color:#242424}.caseArticle_body p{margin:0 0 22px}.caseArticle_body ul,.caseArticle_body ol{margin:0 0 28px;padding-left:1.45em}.caseArticle_body li{padding:4px 0}.caseArticle_body strong{color:#181818}.caseArticle_body blockquote{margin:34px 0;padding:22px 26px;border-left:3px solid #8a6a40;background:#f7f7f6;color:#4f5154}.caseArticle_body hr{border:0;border-top:1px solid var(--case-line);margin:44px 0}.caseArticle_body img{display:block;max-width:100%;height:auto;margin:36px auto}.caseArticle_body a{color:#725227;text-decoration:underline;text-underline-offset:3px}.caseArticle_body .faq{margin-top:56px;padding:34px;background:#f6f7f7}.caseArticle_body .faq h2{margin-top:0;border-top:0;padding-top:0}.caseArticle_body .faq h2:before{display:none}.caseArticle_body .faq h3{font-size:18px;margin-top:28px}.caseArticleEnd{margin-top:72px;padding:42px 44px;background:#1f2529;color:#fff}.caseArticleEnd>span{font-size:11px;letter-spacing:.2em;color:#c7a572}.caseArticleEnd h2{font-size:27px;line-height:1.4;margin:10px 0 12px;color:#fff}.caseArticleEnd p{font-size:15px;line-height:1.85;color:rgba(255,255,255,.72);margin:0 0 22px}.caseArticleEnd a{display:inline-flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font-size:14px;font-weight:700}.caseArticleEnd i{font-style:normal}
/* Existing home case section */
.caseHome{padding:90px 6vw;background:#f7f7f7}.caseHome_inner{max-width:1180px;margin:auto}.caseHome_head{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.caseHome_head h2{font-size:42px;margin:0}.caseHome_all{font-weight:600;text-decoration:none}
/* Shared site TOP/header on case pages */
.caseSiteHeader .header_navA{color:#000!important}.caseSiteHeader{background:#fff;padding-bottom:18px}
@media(max-width:980px){.caseGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.caseDetailHero_inner{grid-template-columns:1fr;gap:34px}.caseDetailHero_media{min-height:0}.caseArticleLayout{grid-template-columns:1fr;gap:20px}.caseArticleAside{display:none}}
@media(max-width:640px){.caseHero{padding:112px 20px 52px}.caseHero h1{font-size:42px}.caseWrap{padding:38px 18px 72px}.caseIntro{grid-template-columns:1fr;gap:12px;margin-bottom:30px;padding-bottom:30px}.caseGrid{grid-template-columns:1fr;gap:24px}.caseCard_body{padding:20px}.caseDetailHero{padding:108px 18px 34px}.caseDetailHero_inner{gap:28px}.caseDetailHero h1{font-size:34px}.caseDetail_lead{font-size:15px}.caseDetailHero_media{aspect-ratio:624/390;max-width:624px;margin:0 auto}.caseDetailWrap{padding:24px 18px 76px}.caseDetailWrap>.caseBreadcrumb{margin-bottom:26px}.caseArticle_body{font-size:16px;line-height:1.95}.caseArticle_body>p:first-child{font-size:17px}.caseArticle_body h2{font-size:24px;margin-top:48px}.caseArticle_body h3{font-size:19px}.caseArticle_body .faq{padding:24px 20px}.caseArticleEnd{padding:30px 24px}.caseArticleEnd h2{font-size:23px}.caseHome_head{display:block}.caseHome_all{display:inline-block;margin-top:12px}.caseSiteHeader{padding-bottom:0}}


/* ===== 2026 case page UX / navigation fixes ===== */
/* Align case-page logo with the original home header. */
.caseSiteHeader{min-height:118px!important;padding-bottom:0!important;background:#fff}
.caseSiteHeader .header_logo{top:35px!important;left:45px!important;width:193px!important;height:auto!important;text-align:left!important}
.caseSiteHeader .header_logo .header_logoImage{width:193px!important;height:auto!important;margin:0!important}
.caseSiteHeader .header_nav{padding-top:35px!important}

/* Desktop left quick navigation. */
.caseSideMenu{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:18;display:flex;flex-direction:column;gap:18px;padding:20px 18px 20px 22px;background:rgba(255,255,255,.94);border-right:1px solid #eceeef;box-shadow:0 10px 30px rgba(0,0,0,.035)}
.caseSideMenu a{position:relative;display:block;padding-left:13px;color:#8e9195;font-size:12px;line-height:1.4;letter-spacing:.02em;text-decoration:none;white-space:nowrap}
.caseSideMenu a:before{content:"";position:absolute;left:0;top:5px;width:5px;height:9px;background:url(../images/icn_breadcrumb_01.svg) no-repeat center/contain;opacity:0}
.caseSideMenu a:hover,.caseSideMenu a.is-current{color:#212326;font-weight:700}
.caseSideMenu a.is-current:before{opacity:1}

/* Mobile back control lives outside the desktop aside, so it cannot disappear. */
.caseMobileBackWrap{display:none}
.caseMobileBack{display:inline-flex;align-items:center;gap:8px;color:#282b2e;text-decoration:none;font-size:13px;font-weight:700}

/* Visible internal links between case studies. */
.caseArticleNav{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);align-items:stretch;margin-top:64px;border-top:1px solid var(--case-line);border-bottom:1px solid var(--case-line)}
.caseArticleNav_item{min-width:0;display:flex}
.caseArticleNav_item a{width:100%;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:24px 20px;color:#222;text-decoration:none;transition:background .2s ease}
.caseArticleNav_item a:hover{background:#f6f7f7}
.caseArticleNav_item small{font-size:11px;letter-spacing:.08em;color:#8a6a40;font-weight:700}
.caseArticleNav_item strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.55;font-weight:600}
.caseArticleNav_next{text-align:right}
.caseArticleNav_all{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-left:1px solid var(--case-line);border-right:1px solid var(--case-line);color:#555;text-decoration:none;font-size:11px}
.caseArticleNav_all span{font-size:19px;line-height:1}.caseArticleNav_all b{font-weight:600}

@media(max-width:1180px){.caseSideMenu{display:none}}
@media(max-width:900px){
  .caseSiteHeader{min-height:90px!important}
  .caseSiteHeader .header_logo{top:18px!important;left:24px!important;width:150px!important}
  .caseSiteHeader .header_logo .header_logoImage{width:150px!important;max-height:54px!important;object-fit:contain;object-position:left center}
  .caseMobileBackWrap{display:block;padding:16px 20px 0;background:#f4f5f6}
}
@media(max-width:640px){
  .caseSiteHeader{min-height:75px!important}
  .caseSiteHeader .header_logo{top:14px!important;left:20px!important;width:125px!important}
  .caseSiteHeader .header_logo .header_logoImage{width:125px!important;max-height:46px!important}
  .caseMobileBackWrap{padding:14px 18px 0}
  .caseDetailHero{padding-top:24px}
  .caseArticleNav{grid-template-columns:1fr 62px 1fr;margin-top:46px}
  .caseArticleNav_item a{padding:18px 10px}
  .caseArticleNav_item strong{font-size:12px;line-height:1.45}
  .caseArticleNav_all b{display:none}
}

/* ===== 2026-08 home-style side menu + hamburger parity ===== */
.caseSideMenu{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0 30px!important;
  gap:20px!important;
}
.caseSideMenu a{
  padding-left:14px!important;
  color:#8E9195!important;
  font-size:13px!important;
  font-weight:400!important;
  line-height:1.5!important;
  letter-spacing:.02em!important;
}
.caseSideMenu a:before{
  top:5px!important;
  width:5px!important;
  height:9px!important;
  background:url(../images/icn_breadcrumb_01.svg) no-repeat 0 0!important;
  background-size:5px 9px!important;
}
.caseSideMenu a:hover,.caseSideMenu a.is-current{color:#212326!important}
.caseSideMenu a.is-current{font-weight:700!important}

@media(max-width:900px){
  .caseSiteHeader .header_nav{display:block!important;padding:0!important;margin:0!important}
  .caseSiteHeader .header_ham{
    display:block!important;
    position:fixed!important;
    top:21px!important;
    right:20px!important;
    z-index:1002!important;
    width:30px!important;
    height:30px!important;
  }
  .caseSiteHeader .header_ham .hamButtonA{display:flex!important;width:30px!important;height:30px!important;opacity:1!important}
  .caseSiteHeader .header_ham .hamButtonA_lineWrap{width:30px!important;height:30px!important;margin:0!important}
  .caseSiteHeader .header_ham .hamButtonA_lineFill{background:#000!important}
}


/* ===== 2026-08 mobile TOP / back-button parity fix ===== */
/* Let the site's original header CSS control the header height and hamburger behavior. */
.caseSiteHeader{
  min-height:0!important;
  padding-bottom:0!important;
  background:#fff;
  position:relative!important;
  z-index:20;
}
.caseSiteHeader .header_logo{
  top:35px!important;
  left:45px!important;
  width:auto!important;
  height:auto!important;
  text-align:center!important;
}
.caseSiteHeader .header_logo .header_logoImage{
  width:193px!important;
  height:auto!important;
  max-height:none!important;
  margin-right:16px!important;
  object-fit:initial!important;
}
.caseSiteHeader .header_nav{
  margin-right:45px!important;
  padding:35px 0 0 0!important;
  height:96px!important;
  display:flex!important;
}

/* Mobile Back stays in document flow below the hero; never overlaps the TOP. */
.caseMobileBackWrap{display:none;position:static!important;background:transparent!important;padding:0!important;margin:0 0 22px!important}
.caseMobileBack{position:static!important;z-index:auto!important}

@media screen and (max-width:900px){
  .caseSiteHeader{
    min-height:0!important;
    height:75px!important;
  }
  .caseSiteHeader .header_logo{
    top:15px!important;
    left:24px!important;
    width:auto!important;
  }
  .caseSiteHeader .header_logo .header_logoImage{
    width:140px!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
  }
  .caseSiteHeader .header_nav{
    display:flex!important;
    margin-right:0!important;
    padding:0!important;
    height:75px!important;
  }
  .caseSiteHeader .header_ham{
    display:block!important;
    position:fixed!important;
    top:21px!important;
    right:20px!important;
    z-index:1002!important;
    width:auto!important;
    height:auto!important;
  }
  .caseSiteHeader .header_ham .hamButtonA{
    display:block!important;
    width:auto!important;
    height:auto!important;
    opacity:1!important;
  }
  .caseSiteHeader .header_ham .hamButtonA_lineWrap{
    margin-top:-10px!important;
  }
  .caseMobileBackWrap{display:block!important}
}

@media screen and (max-width:640px){
  .caseDetailHero{padding-top:34px!important}
  .caseDetailWrap{padding-top:22px!important}
}

/* ===== 2026-08-19 mobile fixed hamburger scroll fix =====
   Original style.css hides body:not(.home) .hamButton on <=767px by moving it to -9999px.
   Case pages need the fixed hamburger after scrolling, just like the home page. */
@media screen and (max-width:767px){
  body .hamButton.js-hamButton.-is-fixed{
    display:block!important;
    position:fixed!important;
    top:21px!important;
    right:20px!important;
    left:auto!important;
    opacity:1!important;
    visibility:visible!important;
    width:30px!important;
    height:30px!important;
    z-index:1002!important;
  }
  body .hamButton.js-hamButton.-is-fixed .hamButtonA{
    display:flex!important;
    opacity:1!important;
    width:30px!important;
    height:30px!important;
  }
  body .hamButton.js-hamButton.-is-fixed .hamButtonA_lineWrap{
    width:30px!important;
    height:30px!important;
    margin:0!important;
  }
  body .hamButton.js-hamButton.-is-fixed .hamButtonA_lineFill{
    background:#000!important;
  }
}
