/* ============================================================
   Philip Berry Associates
   Built on the MegaOne "Personal Profile" demo.
   Brand: deep teal and brass. Template accent (#dc3545) retired.
   ============================================================ */

:root{
  --pb-brand:#0E3B3E;
  --pb-brand-2:#14504F;
  --pb-accent:#B8873B;
  --pb-accent-2:#CFA157;
  --pb-ink:#141B1C;
  --pb-body:#4C5657;
  --pb-soft:#F4F2ED;
  --pb-line:rgba(14,59,62,.12);
  --pb-ease:cubic-bezier(.22,.61,.36,1);
}

/* the template already animates nav clicks with jQuery, so CSS smooth scroll
   is left off to avoid the two fighting each other */

/* ---------- retire the template's red accent ---------- */
.color-summer-sky{ color:var(--pb-accent) !important; }
.bg-summer-sky{ background-color:var(--pb-brand) !important; }
.bg-light-gray{ background-color:var(--pb-soft) !important; }

body{ color:var(--pb-body); font-family:'Montserrat',sans-serif; }
h1,h2,h3,h4,h5,h6{ color:var(--pb-brand); font-family:'Montserrat',sans-serif; }
p{ line-height:1.85; }
a{ transition:color .28s var(--pb-ease); }

.main-title h5{
  color:var(--pb-accent) !important; letter-spacing:.16em;
  text-transform:uppercase; font-weight:600; font-size:12.5px;
}
.main-title h2{ color:var(--pb-brand) !important; font-weight:400; }
/* the template zeroes paragraph margins inside .main-title, which runs
   consecutive paragraphs together */
.main-title p{ margin-bottom:1.2rem !important; }
.main-title p:last-child{ margin-bottom:0 !important; }
.color-black{ color:var(--pb-brand) !important; }

/* ---------- reveal animation ---------- */
[data-reveal]{
  opacity:0; transform:translate3d(0,26px,0);
  transition:opacity .85s var(--pb-ease), transform .85s var(--pb-ease);
  will-change:opacity, transform;
}
[data-reveal].is-in{ opacity:1; transform:none; }

/* ---------- header ---------- */
.navbar-top-default{ transition:background .4s var(--pb-ease), box-shadow .4s var(--pb-ease); }
.box-nav .container{ transition:height .35s var(--pb-ease), background .35s var(--pb-ease); }

/* Sticky state: the template collapses the nav container to height 0 and makes
   it transparent, which drops the links onto the page content and wraps the
   wordmark. Restore a solid bar instead. */
.navbar-top-default.fixed-menu{
  background:#fff !important;
  box-shadow:0 4px 24px rgba(14,59,62,.12);
}
.box-nav.fixed-menu .container{
  height:auto !important; background:transparent !important;
  padding-top:12px; padding-bottom:12px; box-shadow:none !important;
}
.navbar-top-default.fixed-menu .navbar-nav .nav-link{ color:var(--pb-ink) !important; }
.navbar-top-default.fixed-menu .navbar-nav .nav-link.active{ color:#fff !important; }
.fixed-menu .pb-logo-name{ color:var(--pb-brand) !important; }

.pb-logo{
  display:inline-flex; align-items:center; text-decoration:none;
  padding:0; line-height:1; white-space:nowrap; flex:0 0 auto;
}
.pb-logo span{ white-space:nowrap; }
.pb-logo-name{
  font-size:20px; font-weight:600; letter-spacing:.02em;
  color:var(--pb-brand); white-space:nowrap;
  transition:color .3s var(--pb-ease);
}
.pb-logo-rule{
  width:1px; height:20px; background:var(--pb-accent);
  margin:0 12px; opacity:.65; flex:0 0 auto;
}
.pb-logo-sub{
  font-size:9.5px; font-weight:600; letter-spacing:.26em;
  text-transform:uppercase; color:var(--pb-accent); white-space:nowrap;
}
.pb-logo:hover .pb-logo-name{ color:var(--pb-accent); }

.navbar-top-default .navbar-nav .nav-link{
  font-family:'Montserrat',sans-serif; font-size:14px; font-weight:500;
  text-transform:none; transition:color .28s var(--pb-ease), background .28s var(--pb-ease);
}
.navbar-top-default .nav-link:hover{ color:var(--pb-accent) !important; }
.nav-radius .navbar-nav .nav-item .nav-link.active,
.nav-radius .navbar-nav .nav-item .nav-link.active:hover{
  background:var(--pb-brand) !important; color:#fff !important;
}
.fixed-menu.navbar-top-default .navbar-nav .nav-link:hover{ color:var(--pb-accent) !important; }

#sidemenu_toggle{ -webkit-appearance:none; appearance:none; background:transparent !important; border:0 !important; }
#sidemenu_toggle .menu-lines span{ background-color:var(--pb-brand) !important; height:2px; transition:all .3s var(--pb-ease); }
#sidemenu_toggle:hover .menu-lines span{ background-color:var(--pb-accent) !important; }
.side-menu{ background:var(--pb-brand) !important; }
.side-menu .nav-link{ color:#fff !important; }
.side-menu .nav-link:hover,.side-menu .nav-link.active{ color:var(--pb-accent-2) !important; }

/* ---------- buttons ---------- */
.pb-btn{
  display:inline-block; padding:14px 30px; margin:0 8px 10px 0;
  font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  border-radius:2px; border:1px solid transparent; text-decoration:none;
  transition:background .32s var(--pb-ease), color .32s var(--pb-ease),
             border-color .32s var(--pb-ease), transform .32s var(--pb-ease),
             box-shadow .32s var(--pb-ease);
}
.pb-btn:hover{ transform:translateY(-2px); text-decoration:none; }
.pb-btn-solid{ background:var(--pb-brand); color:#fff !important; border-color:var(--pb-brand); }
.pb-btn-solid:hover{ background:var(--pb-accent); border-color:var(--pb-accent); box-shadow:0 10px 26px rgba(184,135,59,.32); }
.pb-btn-ghost{ background:transparent; color:#fff !important; border-color:rgba(255,255,255,.55); }
.pb-btn-ghost:hover{ background:#fff; color:var(--pb-brand) !important; border-color:#fff; }
.pb-btn-dark{ color:var(--pb-brand) !important; border-color:var(--pb-line); }
.pb-btn-dark:hover{ background:var(--pb-brand); color:#fff !important; border-color:var(--pb-brand); }

/* ---------- hero ---------- */
.bg-img-1{ background:url("../img/hero.jpg") no-repeat center center !important; background-size:cover !important; }
#home .bg-overlay.bg-gradient{
  background:linear-gradient(100deg, rgba(8,32,34,.94) 0%, rgba(8,32,34,.82) 34%,
             rgba(10,40,42,.44) 66%, rgba(14,59,62,.14) 100%) !important;
}
#home .not-fullscreen{ padding:200px 0 150px; }
#home .personal-box h1{ font-size:3.1rem; margin-top:26px; letter-spacing:.01em; }
#home .personal-box h3{ color:var(--pb-accent-2) !important; font-size:21px; min-height:34px; margin-top:.5rem; font-weight:400; }

/* .center-col is absolutely positioned with left:0, so auto margins will not
   centre it. Pad it to match the nav container instead. */
.pb-hero-inner{
  text-align:center;
  left:0 !important; right:0 !important;
  max-width:none !important; width:auto !important;
  padding-left:max(15px, calc(50% - 570px));
  padding-right:max(15px, calc(50% - 570px));
}
@media(min-width:992px){
  .pb-hero-inner{ text-align:left; }
  .pb-hero-inner .personal-box{ max-width:600px; }
  .pb-hero-inner .pb-hero-strap{ margin-left:0; }
}
.pb-hero-strap{ color:rgba(255,255,255,.88); max-width:600px; margin:20px auto 0; font-size:17px; }
.pb-hero-cta{ margin-top:34px; }

/* the only real photograph is a tight magazine crop with no headroom,
   so it is shown as a portrait card rather than a circle */
.myphoto{
  border-radius:3px !important; width:168px !important; height:222px !important;
  border:3px solid rgba(255,255,255,.32); box-shadow:0 18px 44px rgba(0,0,0,.42);
  overflow:hidden;
}
.myphoto:before{ display:none !important; content:none !important; }
.myphoto img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.pb-contact-photo .myphoto{
  width:230px !important; height:304px !important;
  border:1px solid var(--pb-line); box-shadow:0 16px 40px rgba(14,59,62,.16);
}

/* ---------- about ---------- */
.pb-about-img{ overflow:hidden; }
.pb-about-img img{ transition:transform 1.1s var(--pb-ease); }
.pb-about-img:hover img{ transform:scale(1.04); }

/* ---------- cards ---------- */
.pb-card{
  background:#fff; border:1px solid var(--pb-line); border-top:3px solid var(--pb-accent);
  padding:34px 30px; height:100%;
  transition:box-shadow .45s var(--pb-ease), transform .45s var(--pb-ease);
}
.pb-card:hover{ box-shadow:0 18px 44px rgba(14,59,62,.14); transform:translateY(-6px); }
.pb-card i{ font-size:34px; color:var(--pb-accent); display:block; margin-bottom:16px; transition:transform .45s var(--pb-ease); }
.pb-card:hover i{ transform:translateY(-3px); }
.pb-card h4{ font-size:18px; margin-bottom:12px; color:var(--pb-brand); line-height:1.45; }
.pb-card p{ font-size:15px; margin-bottom:0; }

#practice .row > [class*="col-"], #career .row > [class*="col-"]{ display:flex; }
#practice .pb-card, #career .pb-card{ display:flex; flex-direction:column; width:100%; }

/* ---------- stats ---------- */
.stats .serial-box i{ color:var(--pb-accent) !important; }
.stats .serial-box p{ color:var(--pb-brand) !important; font-weight:600; }

/* ---------- credentials list ---------- */
.pb-cred{ list-style:none; padding:0; margin:0; }
.pb-cred li{
  position:relative; padding:0 0 16px 28px; margin-bottom:16px;
  border-bottom:1px solid var(--pb-line);
}
.pb-cred li:last-child{ border-bottom:0; margin-bottom:0; padding-bottom:0; }
.pb-cred li::before{
  content:""; position:absolute; left:0; top:8px; width:8px; height:8px;
  background:var(--pb-accent); border-radius:50%;
}
.pb-cred strong{ display:block; color:var(--pb-brand); font-size:15.5px; font-weight:600; }
.pb-cred span{ font-size:14px; color:var(--pb-body); }

/* ---------- quote band ---------- */
.pb-quote{ background:var(--pb-brand); padding:86px 0; }
.pb-quote blockquote{
  color:#fff; font-size:26px; line-height:1.6; font-weight:300;
  max-width:900px; margin:0 auto; text-align:center; border:0;
}
.pb-quote .pb-attrib{
  color:var(--pb-accent-2); letter-spacing:.18em; text-transform:uppercase;
  font-size:12px; margin-top:22px; font-weight:600;
}

/* ---------- gallery ---------- */
.pb-shot{ position:relative; overflow:hidden; }
.pb-shot img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--pb-ease); }
.pb-shot:hover img{ transform:scale(1.06); }
.pb-shot figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 24px;
  background:linear-gradient(to top, rgba(8,32,34,.92), rgba(8,32,34,0));
  color:#fff; font-size:14.5px; letter-spacing:.05em;
  transform:translateY(6px); opacity:.92;
  transition:transform .5s var(--pb-ease), opacity .5s var(--pb-ease);
}
.pb-shot:hover figcaption{ transform:none; opacity:1; }

/* ---------- book feature band ---------- */
.pb-book{ position:relative; background:var(--pb-brand); overflow:hidden; padding:110px 0; }
.pb-book-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:.22; filter:grayscale(30%);
}
.pb-book::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(8,32,34,.96) 0%, rgba(8,32,34,.88) 45%, rgba(14,59,62,.72) 100%);
}
.pb-book .container{ position:relative; z-index:2; }

/* 3D cover treatment */
.pb-book-3d{ perspective:1600px; display:inline-block; position:relative; }
.pb-book-object{
  position:relative; display:inline-block; transform:rotateY(-17deg) rotateX(2deg);
  transform-style:preserve-3d; transition:transform .9s var(--pb-ease);
  box-shadow:34px 40px 70px rgba(0,0,0,.55), 0 2px 0 rgba(255,255,255,.10);
  border-radius:2px 4px 4px 2px;
}
.pb-book-3d:hover .pb-book-object{ transform:rotateY(-9deg) rotateX(1deg) translateY(-6px); }
.pb-book-object img{
  display:block; width:300px; height:auto; border-radius:2px 4px 4px 2px;
}
/* spine shading down the left edge */
.pb-book-spine{
  position:absolute; top:0; bottom:0; left:0; width:22px; border-radius:2px 0 0 2px;
  background:linear-gradient(90deg, rgba(0,0,0,.52) 0%, rgba(0,0,0,.20) 42%, rgba(255,255,255,.16) 78%, rgba(0,0,0,.06) 100%);
}
/* soft sheen across the face */
.pb-book-gloss{
  position:absolute; inset:0; border-radius:2px 4px 4px 2px; pointer-events:none;
  background:linear-gradient(112deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,.04) 32%, rgba(255,255,255,0) 58%);
}
.pb-book-shadow{
  position:absolute; left:8%; right:-6%; bottom:-26px; height:34px; z-index:-1;
  background:radial-gradient(ellipse at center, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 72%);
  filter:blur(5px);
}

.pb-book-copy h2{ color:#fff !important; font-weight:300; font-size:2.5rem; line-height:1.22; margin-bottom:10px; }
.pb-book-eyebrow{
  color:var(--pb-accent-2); letter-spacing:.2em; text-transform:uppercase;
  font-size:12px; font-weight:600; margin-bottom:16px;
}
.pb-book-sub{
  color:var(--pb-accent-2); font-size:17px; letter-spacing:.04em;
  margin-bottom:22px; font-weight:500;
}
.pb-book-copy p{ color:rgba(255,255,255,.80); }
.pb-book-facts{
  list-style:none; padding:0; margin:30px 0 34px;
  display:flex; flex-wrap:wrap; gap:0;
  border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16);
}
.pb-book-facts li{ padding:18px 34px 18px 0; margin-right:34px; border-right:1px solid rgba(255,255,255,.14); }
.pb-book-facts li:last-child{ border-right:0; margin-right:0; padding-right:0; }
.pb-book-facts span{
  display:block; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.50); margin-bottom:6px; font-weight:600;
}
.pb-book-facts strong{ color:#fff; font-size:15px; font-weight:500; }
.pb-btn-gold{ background:var(--pb-accent); color:#fff !important; border-color:var(--pb-accent); }
.pb-btn-gold:hover{ background:#fff; color:var(--pb-brand) !important; border-color:#fff; box-shadow:0 10px 26px rgba(0,0,0,.30); }

/* ---------- media ---------- */
.pb-subhead{
  font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--pb-accent); margin:0 0 26px; padding-bottom:12px;
  border-bottom:1px solid var(--pb-line);
}
.pb-video-frame{
  position:relative; padding-top:56.25%; background:var(--pb-brand);
  overflow:hidden; border-radius:2px; box-shadow:0 12px 32px rgba(14,59,62,.14);
  transition:box-shadow .45s var(--pb-ease), transform .45s var(--pb-ease);
}
.pb-video-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.pb-video:hover .pb-video-frame{ box-shadow:0 20px 46px rgba(14,59,62,.22); transform:translateY(-4px); }
.pb-video h4{ font-size:16px; margin:20px 0 6px; line-height:1.5; }
.pb-video p{ font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--pb-accent); font-weight:600; margin:0; }

/* credential card with no destination behind it: same shape as the link card
   but no hover lift and no "go" affordance, so it never looks clickable */
.pb-fact-card{
  height:100%; background:#fff;
  border:1px solid var(--pb-line); border-left:3px solid var(--pb-accent);
  padding:28px 26px;
}
.pb-fact-card i{ font-size:26px; color:var(--pb-accent); display:block; margin-bottom:14px; }
.pb-fact-card h4{ font-size:16px; line-height:1.5; margin-bottom:10px; }
.pb-fact-card p{ font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--pb-body); margin:0; }

.pb-link-card{
  display:block; height:100%; background:#fff; text-decoration:none;
  border:1px solid var(--pb-line); border-left:3px solid var(--pb-accent);
  padding:28px 26px;
  transition:box-shadow .45s var(--pb-ease), transform .45s var(--pb-ease);
}
.pb-link-card:hover{ box-shadow:0 18px 42px rgba(14,59,62,.14); transform:translateY(-5px); text-decoration:none; }
.pb-link-card i{ font-size:26px; color:var(--pb-accent); display:block; margin-bottom:14px; }
.pb-link-card h4{ font-size:16px; line-height:1.5; margin-bottom:10px; }
.pb-link-card p{ font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--pb-body); margin:0 0 16px; }
.pb-link-go{ font-size:12.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--pb-brand); }
.pb-link-go i{ display:inline-block; font-size:15px; margin:0 0 0 6px; vertical-align:-2px; transition:transform .35s var(--pb-ease); }
.pb-link-card:hover .pb-link-go i{ transform:translateX(5px); }

.pb-pub{
  background:#fff; border:1px solid var(--pb-line); border-left:3px solid var(--pb-accent);
  padding:24px 26px; margin-bottom:20px;
  transition:box-shadow .45s var(--pb-ease), transform .45s var(--pb-ease);
}
.pb-pub:hover{ box-shadow:0 14px 34px rgba(14,59,62,.12); transform:translateX(4px); }
.pb-pub h4{ font-size:16.5px; line-height:1.55; margin-bottom:9px; }
.pb-pub p{ margin:0; font-size:12.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--pb-accent); font-weight:600; }

/* ---------- client index ----------
   Real client logos are deliberately not used. Of the 41 organizations only
   about ten have a logo that can be sourced and self hosted, and several of
   those resolve to the wrong mark entirely (Comcast returns a defunct
   "AT&T Comcast" logo, Biomet returns KKR, Colgate returns a product brand).
   A wall carrying wrong marks would damage credibility rather than build it,
   so the names are set as typographic wordmarks in an editorial index. */

.pb-index-sec{ background:var(--pb-soft); padding:118px 0 104px; }

/* editorial masthead */
.pb-index-head{ margin-bottom:56px; align-items:flex-start; }
.pb-index-eyebrow{
  font-size:11px; font-weight:600; letter-spacing:.28em; text-transform:uppercase;
  color:var(--pb-accent); margin:0 0 22px;
}
.pb-index-title{
  font-size:clamp(28px, 3.4vw, 44px); font-weight:300; line-height:1.16;
  letter-spacing:-.012em; color:var(--pb-brand); margin:0;
}
.pb-index-rule{
  display:block; width:56px; height:1px; background:var(--pb-accent);
  margin:26px 0 24px;
}
.pb-index-lead{
  font-size:16px; line-height:1.85; color:var(--pb-body);
  max-width:52ch; margin:0;
}
.pb-index-figure{ text-align:right; padding-top:6px; }
.pb-figure-num{
  display:block; font-size:clamp(64px, 8vw, 104px); font-weight:200;
  line-height:.9; letter-spacing:-.04em; color:var(--pb-brand);
}
.pb-figure-cap{
  display:block; margin-top:16px; font-size:11px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--pb-body);
  line-height:1.9;
}

/* filters as editorial tabs, not pills */
.pb-index-filters{
  display:flex; flex-wrap:wrap; gap:6px 34px;
  border-top:1px solid rgba(14,59,62,.16);
  border-bottom:1px solid rgba(14,59,62,.16);
  padding:18px 0; margin:0 0 8px;
}
.pb-tab{
  -webkit-appearance:none; appearance:none; background:none; border:0; padding:6px 0;
  cursor:pointer; position:relative; font-family:'Montserrat',sans-serif;
  font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(20,27,28,.48);
  transition:color .35s var(--pb-ease);
}
.pb-tab sup{
  font-size:9px; font-weight:600; letter-spacing:.04em; margin-left:5px;
  top:-.7em; color:var(--pb-accent); transition:color .35s var(--pb-ease);
}
.pb-tab::after{
  content:""; position:absolute; left:0; right:0; bottom:-19px; height:1px;
  background:var(--pb-accent); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--pb-ease);
}
.pb-tab:hover{ color:var(--pb-brand); }
.pb-tab.is-on{ color:var(--pb-brand); }
.pb-tab.is-on::after{ transform:scaleX(1); }

/* the index itself: a hairline logo directory, no cards */
.pb-index{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:repeat(4, 1fr);
  border-top:1px solid rgba(14,59,62,.14);
  border-bottom:1px solid rgba(14,59,62,.14);
}
.pb-idx-item{
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  text-align:center; padding:32px 18px 26px;
  border-bottom:1px solid rgba(14,59,62,.14);
  border-right:1px solid rgba(14,59,62,.14);
  transition:background .45s var(--pb-ease);
}
.pb-index > .pb-idx-item:nth-child(4n){ border-right:0; }
.pb-idx-item.is-out{ display:none; }
.pb-idx-item:hover{ background:#fff; }

/* brass bar that draws down the left edge on hover */
.pb-idx-rule{
  position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--pb-accent); transform:scaleY(0); transform-origin:top;
  transition:transform .5s var(--pb-ease);
}
.pb-idx-item:hover .pb-idx-rule{ transform:scaleY(1); }

/* the mark: fixed optical box so every logo sits on the same baseline grid */
.pb-mark{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:66px; margin-bottom:16px;
}
/* one self hosted sprite, 5 columns of 260x110 cells, drawn at half size */
.pb-mark-logo{
  display:block; width:154px; height:65px;
  background-image:url("../img/clients.png");
  background-repeat:no-repeat;
  background-size:770px 390px;
  background-position:calc(var(--c) * -154px) calc(var(--r) * -65px);
  /* logos keep their own brand colours; only a slight lift on hover */
  transition:transform .5s var(--pb-ease);
}
.pb-idx-item:hover .pb-mark-logo{ transform:translateY(-3px) scale(1.04); }
/* organizations with no sourceable mark are set as a wordmark in the same box */
.pb-mark-type{
  font-size:18px; font-weight:600; letter-spacing:.05em;
  color:rgba(20,27,28,.42); line-height:1.25;
  transition:color .5s var(--pb-ease), transform .5s var(--pb-ease);
}
.pb-idx-item:hover .pb-mark-type{ color:var(--pb-brand); transform:translateY(-2px); }

.pb-name{
  display:block; font-size:12.5px; font-weight:500; line-height:1.55;
  letter-spacing:.02em; color:var(--pb-body);
  transition:color .4s var(--pb-ease);
}
.pb-idx-item:hover .pb-name{ color:var(--pb-brand); }
.pb-sector{
  display:block; margin-top:9px;
  font-size:9px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:var(--pb-accent); opacity:0; transform:translateY(4px);
  transition:opacity .4s var(--pb-ease), transform .4s var(--pb-ease);
}
.pb-idx-item:hover .pb-sector{ opacity:1; transform:none; }

/* restrained stagger when a filter is applied */
.pb-idx-item.is-fresh{ animation:pbFade .55s var(--pb-ease) both; }
@keyframes pbFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }

.pb-index-note{
  margin:34px 0 0; font-size:11.5px; letter-spacing:.04em;
  color:var(--pb-body); opacity:.66; text-align:center;
}

@media(max-width:991px){
  .pb-index-sec{ padding:78px 0 70px; }
  .pb-index-head{ margin-bottom:44px; }
  .pb-index-figure{ text-align:left; margin-top:34px; padding-top:0; }
  .pb-index-sec .main-title, .pb-index-head{ text-align:left; }
  .pb-index{ grid-template-columns:repeat(3, 1fr); }
  .pb-index > .pb-idx-item{ border-right:1px solid rgba(14,59,62,.14); }
  .pb-index > .pb-idx-item:nth-child(3n){ border-right:0; }
  .pb-index-filters{ gap:6px 26px; }
}

@media(max-width:575px){
  .pb-index-sec{ padding:58px 0 54px; }
  /* the template centres text at this breakpoint; the index reads as a
     directory, so everything in this section stays left aligned */
  .pb-index-sec, .pb-index-sec .row > [class*="col-"]{ text-align:left; }
  .pb-idx-item{ text-align:center; }
  .pb-index-title{ font-size:26px; }
  .pb-index-lead{ font-size:15px; }
  .pb-figure-num{ font-size:62px; }
  .pb-index-filters{
    flex-wrap:nowrap; overflow-x:auto; gap:24px; padding:16px 0;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    /* the row scrolls sideways, so fade the right edge to show there is more */
    -webkit-mask-image:linear-gradient(90deg,#000 82%,transparent 100%);
            mask-image:linear-gradient(90deg,#000 82%,transparent 100%);
  }
  .pb-index-filters::-webkit-scrollbar{ display:none; }
  .pb-tab{ white-space:nowrap; font-size:10.5px; letter-spacing:.13em; }
  .pb-tab::after{ bottom:-17px; }
  .pb-index{ grid-template-columns:1fr; }
  .pb-index > .pb-idx-item{ border-right:0 !important; }
  .pb-index{ grid-template-columns:repeat(2, 1fr); }
  .pb-index > .pb-idx-item{ border-right:1px solid rgba(14,59,62,.14); }
  .pb-index > .pb-idx-item:nth-child(2n){ border-right:0; }
  .pb-idx-item{ padding:24px 12px 22px; }
  .pb-mark{ height:54px; margin-bottom:13px; }
  .pb-mark-logo{ width:122px; height:52px; background-size:610px 312px;
    background-position:calc(var(--c) * -122px) calc(var(--r) * -52px); }
  .pb-mark-type{ font-size:15px; }
  .pb-name{ font-size:11.5px; }
  /* touch has no hover, so the sector label stays visible */
  .pb-sector{ opacity:1; transform:none; margin-top:7px; font-size:8.5px; }
}

/* ---------- parallax band ---------- */
.parallax1{
  background:url("../img/parallax.jpg") no-repeat center center !important;
  background-size:cover !important; position:relative;
}
.parallax1::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,32,34,.88) 0%, rgba(8,32,34,.74) 100%);
}
.parallax1 .container{ position:relative; z-index:2; }
.pb-band-eyebrow{
  color:var(--pb-accent-2); letter-spacing:.18em; text-transform:uppercase;
  font-size:12px; font-weight:600; margin-bottom:14px;
}
.pb-band-title{ color:#fff !important; font-weight:300; line-height:1.35; margin:0; }

/* ---------- contact ---------- */
.contact-box-shadow{ background:#fff; border:1px solid var(--pb-line); box-shadow:0 16px 40px rgba(14,59,62,.09); }
.pb-contact-list{ list-style:none; padding:0; margin:0 0 30px; }
.pb-contact-list li{
  display:flex; align-items:flex-start; gap:14px;
  padding:14px 0; border-bottom:1px solid var(--pb-line);
}
.pb-contact-list li:last-child{ border-bottom:0; }
.pb-contact-list i{ font-size:20px; color:var(--pb-accent); line-height:1.6; flex:0 0 auto; }
.pb-contact-list a{ color:var(--pb-body); font-size:15px; }
.pb-contact-list a:hover{ color:var(--pb-brand); }
.pb-contact-actions{ margin-top:6px; }

.pb-form{ margin-top:8px; }
.pb-label{
  display:block; font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--pb-brand); margin-bottom:7px;
}
.pb-form input, .pb-form textarea{
  width:100%; margin-bottom:18px; padding:13px 15px;
  border:1px solid var(--pb-line); border-radius:2px; background:#fff;
  font-family:'Montserrat',sans-serif; font-size:15px; color:var(--pb-ink);
  transition:border-color .3s var(--pb-ease), box-shadow .3s var(--pb-ease);
}
.pb-form input::placeholder, .pb-form textarea::placeholder{ color:#9aa4a5; }
.pb-form textarea{ min-height:132px; resize:vertical; }
.pb-form input:focus, .pb-form textarea:focus{
  outline:none; border-color:var(--pb-accent);
  box-shadow:0 0 0 3px rgba(184,135,59,.15);
}
.pb-form input:invalid:not(:placeholder-shown){ border-color:#c2603f; }
.pb-form .pb-btn{ margin-top:4px; }
.pb-contact-actions{
  margin-top:26px; padding-top:22px; border-top:1px solid var(--pb-line);
}

/* ---------- social ---------- */
.pb-social{ list-style:none; padding:0; margin:0 0 22px; display:flex; justify-content:center; gap:12px; }
.pb-social li{ display:inline-block; }
.pb-social a{
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%;
  border:1px solid rgba(255,255,255,.28); color:#fff;
  transition:background .32s var(--pb-ease), border-color .32s var(--pb-ease), transform .32s var(--pb-ease);
}
.pb-social a:hover{ background:var(--pb-accent); border-color:var(--pb-accent); transform:translateY(-3px); }
.pb-social i{ font-size:17px; }
.side-footer .pb-social{ justify-content:flex-start; }

/* ---------- footer ---------- */
footer{ background:var(--pb-brand) !important; }
footer .copyrights{ color:rgba(255,255,255,.62) !important; font-size:13px; line-height:1.8; max-width:820px; margin:0 auto; }

/* ---------- back to top ---------- */
.go-top{
  position:fixed !important; right:26px; bottom:26px; z-index:30; margin:0 !important;
  width:46px; height:46px; border-radius:50%;
  background:var(--pb-brand); color:#fff !important;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .4s var(--pb-ease), transform .4s var(--pb-ease),
             background .3s var(--pb-ease), visibility .4s;
}
.go-top.is-on{ opacity:1; visibility:visible; transform:none; }
.go-top:hover{ background:var(--pb-accent); }
.go-top i{ font-size:19px; }
#contact{ margin-bottom:0 !important; }

/* ---------- responsive ---------- */
/* ---------- responsive ---------- */
@media(max-width:1199px){
  .pb-book-copy h2{ font-size:2.2rem; }
  .pb-book-object img{ width:270px; }
}

@media(max-width:991px){
  section{ padding:70px 0; }
  #home .not-fullscreen{ padding:150px 0 110px; }
  #home .personal-box h1{ font-size:2.4rem; }
  #home .personal-box h3{ font-size:18px; }
  .pb-hero-strap{ font-size:16px; }
  .main-title h2{ font-size:1.9rem; }
  .pb-quote{ padding:64px 0; }
  .pb-quote blockquote{ font-size:20px; }
  .pb-band-title{ font-size:26px; }
  .pb-book{ padding:70px 0; }
  .pb-book-copy{ text-align:center; }
  .pb-book-copy h2{ font-size:2rem; }
  .pb-book-facts{ justify-content:center; }
  .pb-book-object{ transform:rotateY(-12deg); }
  .pb-about-img img{ max-height:520px; object-fit:cover; }
  .pb-contact-photo{ margin-bottom:36px !important; }
}

@media(max-width:767px){
  .pb-book-facts li{ padding:14px 20px 14px 0; margin-right:20px; }
  .pb-shot img{ max-height:300px; }
  .pb-video h4{ font-size:15.5px; }
  .pb-roster li{ font-size:14.5px; }
}

@media(max-width:575px){
  section{ padding:56px 0; }
  .pb-logo-name{ font-size:15px; }
  .pb-logo-rule{ margin:0 8px; height:15px; }
  .pb-logo-sub{ font-size:7.5px; letter-spacing:.18em; }
  .box-nav .container{ padding-left:16px; padding-right:16px; }

  #home .not-fullscreen{ padding:130px 0 90px; }
  #home .personal-box h1{ font-size:1.95rem; margin-top:20px; }
  #home .personal-box h3{ font-size:16px; min-height:26px; }
  .pb-hero-strap{ font-size:15.5px; margin-top:16px; }
  .pb-hero-cta{ margin-top:26px; }
  .myphoto{ width:132px !important; height:174px !important; }

  .main-title h2{ font-size:1.6rem; line-height:1.3; }
  .main-title h5{ font-size:11.5px; }
  /* the template centres text at this breakpoint, which strands the bullets
     and rules on the left of every list. Components stay left aligned. */
  .pb-card, .pb-link-card, .pb-fact-card, .pb-pub, .pb-roster, .pb-roster li,
  .pb-cred, .pb-cred li, .pb-contact-list{ text-align:left; }
  .pb-card{ padding:26px 22px; }
  .pb-card i, .pb-link-card i, .pb-fact-card i{ margin-left:0; }
  .pb-fact-card{ padding:24px 20px; }
  .pb-btn{
    padding:14px 22px; font-size:11.5px; margin:0 auto 10px;
    display:block; max-width:290px; text-align:center;
  }

  .pb-quote{ padding:52px 0; }
  .pb-quote blockquote{ font-size:17.5px; }
  .pb-band-title{ font-size:21px; }
  .pb-shot figcaption{ padding:16px 18px; font-size:13.5px; }

  .pb-book{ padding:56px 0; }
  .pb-book-object img{ width:200px; }
  .pb-book-object{ transform:rotateY(-8deg); box-shadow:20px 24px 44px rgba(0,0,0,.5); }
  .pb-book-copy h2{ font-size:1.65rem; }
  .pb-book-sub{ font-size:15px; }
  .pb-book-facts{ display:block; margin:24px 0 28px; }
  .pb-book-facts li{ padding:13px 0; margin:0; border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }
  .pb-book-facts li:last-child{ border-bottom:0; }

  .pb-subhead{ font-size:11.5px; letter-spacing:.14em; }
  .pb-pub{ padding:20px 20px; }
  .pb-pub h4{ font-size:15.5px; }
  .pb-link-card{ padding:24px 20px; }
  .pb-contact-list a{ font-size:14px; }
  .pb-contact-list li{ gap:11px; }
  .contact-box-shadow{ padding:26px 20px !important; }
  .pb-contact-photo .myphoto{ width:186px !important; height:246px !important; }
  footer .copyrights{ font-size:12px; }
  .go-top{ right:16px; bottom:16px; width:42px; height:42px; }
}
