html{scroll-behavior:smooth}body{margin:0}.site-header .menu,.site-header ul{list-style:none;margin:0;padding:0}.site-header .nav-links>ul{display:contents}.site-header .nav-links li{display:inline-flex}
/* One active item only. WordPress current-* classes are normalized in functions.php. */
.site-header .nav-links li.ang-active>a,
.site-header .nav-links a[aria-current="page"]{
  text-decoration:none!important;
  opacity:1;
  color:var(--accent-ink);
}
.site-header .nav-links li.ang-active>a::after,
.site-header .nav-links a[aria-current="page"]::after{right:0;}
.site-header .mobile-menu li.ang-active>a,
.site-header .mobile-menu a[aria-current="page"]{color:var(--accent-ink);font-weight:700;}
.wp-theme-content{min-height:45vh}.wp-theme-content>p:empty{display:none}.skip-link{position:fixed;left:12px;top:-80px;z-index:999999;background:#fff;color:#111;padding:10px 14px;border-radius:4px;box-shadow:0 4px 18px rgba(0,0,0,.18)}.skip-link:focus{top:12px}.mobile-toggle{display:none}.mobile-menu{display:none}
/* One exact family-bar component across all themes. */
.network-bar .wrap{display:flex;align-items:center;justify-content:center;gap:8px;min-height:32px}.network-bar a.is-active{color:#C9CFC7!important;font-weight:700}.network-bar .sep{opacity:.55}
@media(max-width:1100px){.site-header .nav-links,.site-header .nav>.btn.small,.rr-nav-consult{display:none!important}.mobile-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:inherit;cursor:pointer}.mobile-toggle svg{width:25px;height:25px}.mobile-menu.open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--paper,#fff);padding:16px 22px 22px;box-shadow:0 14px 30px rgba(0,0,0,.12);z-index:1000}.mobile-menu a{padding:11px 4px;text-decoration:none}.nav{position:relative}}
@media(max-width:700px){.network-bar .wrap{justify-content:flex-start;overflow-x:auto;white-space:nowrap;padding-left:14px;padding-right:14px}.brand-logo{max-width:min(240px,68vw)}}


/* 2.5.4 mobile masthead contract — mirrors the approved HTML master. */
.mobile-menu-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;}
.mobile-menu-list>li{display:block;margin:0;padding:0;list-style:none;}
@media(max-width:1100px){
  .site-header .nav{position:relative;display:flex;align-items:center;gap:12px;min-height:72px;}
  .site-header .brand{min-width:0;max-width:calc(100% - 60px);}
  .site-header .brand-logo{display:block;width:auto;height:38px;max-width:min(240px,68vw);object-fit:contain;}
  .mobile-toggle{display:flex!important;flex:0 0 44px;margin-left:auto;width:44px;height:44px;border:1px solid var(--panel-border,#d8d2c5)!important;background:var(--panel,#fffdfa)!important;border-radius:10px;align-items:center;justify-content:center;color:var(--ink,#161b18);cursor:pointer;}
  .mobile-toggle svg{width:22px;height:22px;}
  .mobile-menu.open{display:block!important;position:absolute;left:16px;right:16px;top:calc(100% + 8px);padding:10px;background:rgba(255,253,250,.98);border:1px solid var(--panel-border,#d8d2c5);border-radius:14px;box-shadow:0 18px 42px rgba(17,23,19,.15);z-index:1000;}
  .mobile-menu-list a{display:block;padding:12px 14px;border-radius:8px;text-decoration:none!important;font-weight:700;line-height:1.3;color:var(--ink,#161b18);}
  .mobile-menu-list a:hover,.mobile-menu-list a:focus-visible{background:var(--accent-soft,#dceee5);color:var(--accent-ink,#12402f);outline:none;}
  .mobile-menu-list li.ang-active>a,.mobile-menu-list a[aria-current="page"]{background:var(--accent-soft,#dceee5);color:var(--accent-ink,#12402f);}
  .mobile-menu>.btn{display:block;margin-top:8px;width:100%;text-align:center;box-sizing:border-box;}
}
@media(max-width:560px){
  .network-bar .wrap{justify-content:flex-start;gap:8px;overflow-x:auto;white-space:nowrap;padding-left:16px;padding-right:16px;scrollbar-width:none;}
  .network-bar .wrap::-webkit-scrollbar{display:none;}
  .network-bar .wrap>span:first-child{display:none;}
  .site-header .nav{min-height:68px;padding-left:16px;padding-right:16px;}
  .site-header .brand-logo{height:34px!important;max-width:min(190px,62vw)!important;}
  .mobile-menu.open{left:12px;right:12px;top:calc(100% + 6px);}
}


/* Blog + article system 2.6.0 */
.ang-blog-list{display:grid;gap:24px;max-width:980px;margin:0 auto}
.ang-blog-card{background:var(--paper,#f7f4ec);border:1px solid var(--line,#ddd5c7);border-radius:22px;overflow:hidden;display:grid;grid-template-columns:1fr;box-shadow:0 12px 30px rgba(22,27,24,.03)}
.ang-blog-card.has-image{grid-template-columns:minmax(220px,34%) 1fr}
.ang-blog-thumb{display:block;min-height:230px;background:#e8e2d6;overflow:hidden}
.ang-blog-thumb img{width:100%;height:100%;min-height:230px;object-fit:cover;display:block}
.ang-blog-card-content{padding:28px 30px}
.ang-blog-card .post-meta,.ang-post-kicker{font-size:.76rem;letter-spacing:.055em;text-transform:uppercase;color:var(--ink-soft,#66706a);font-weight:600}
.ang-blog-card h3{margin:9px 0 10px;font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.16}
.ang-blog-card h3 a{color:var(--ink,#161b18);text-decoration:none}
.ang-blog-card h3 a:hover{color:var(--accent-bright,#12402f)}
.ang-blog-card p{margin:0;color:var(--ink-soft,#66706a);line-height:1.65}
.ang-read-more{display:inline-block;margin-top:16px;color:var(--accent-bright,#12402f);font-weight:700;text-decoration:none}
.ang-post-hero{padding:78px 24px 52px;border-bottom:1px solid var(--line,#ddd5c7);background:var(--paper,#f7f4ec)}
.ang-post-hero-inner{max-width:1080px}
.ang-post-kicker{margin-bottom:18px}
.ang-post-hero h1{max-width:940px;margin:0;font-size:clamp(2.45rem,5vw,4.65rem);line-height:1.03;letter-spacing:-.025em}
.ang-post-deck{max-width:820px;margin:24px 0 0;color:var(--ink-soft,#66706a);font-size:1.15rem;line-height:1.65}
.ang-post-feature{padding:44px 24px 0}.ang-post-feature .wrap{max-width:1080px}.ang-post-feature figure{margin:0;border-radius:20px;overflow:hidden}.ang-post-feature img{width:100%;height:auto;max-height:620px;object-fit:cover;display:block}
.ang-post-body-section{padding:58px 24px 88px}.ang-post-body-section .wrap{max-width:1080px}.ang-post-body{max-width:780px;margin:0 auto;color:var(--ink-soft,#53605a);font-size:1.06rem;line-height:1.75}
.ang-post-body>p:first-child{margin-top:0}.ang-post-body p{margin:0 0 1.35em}.ang-post-body h2,.ang-post-body h3,.ang-post-body h4{color:var(--ink,#161b18);line-height:1.18;margin:1.8em 0 .65em}.ang-post-body h2{font-size:clamp(1.65rem,3vw,2.25rem)}.ang-post-body h3{font-size:1.5rem}
.ang-post-body ul,.ang-post-body ol{padding-left:1.35em;margin:0 0 1.5em}.ang-post-body li{margin:.45em 0}.ang-post-body blockquote{margin:2em 0;padding:4px 0 4px 24px;border-left:4px solid var(--accent,#2e8b69);font-family:Georgia,serif;font-size:1.2rem;color:var(--ink,#161b18)}
.ang-post-body img{max-width:100%;height:auto;border-radius:16px}.ang-post-body figure{margin:2em 0}.ang-post-body figcaption{font-size:.86rem;color:var(--ink-soft,#66706a);margin-top:8px;text-align:center}.ang-post-body .alignwide{width:min(960px,calc(100vw - 48px));max-width:none;margin-left:50%;transform:translateX(-50%)}
.ang-post-body .alignfull{width:100vw;max-width:none;margin-left:50%;transform:translateX(-50%)}
@media(max-width:760px){.ang-blog-card.has-image{grid-template-columns:1fr}.ang-blog-thumb,.ang-blog-thumb img{min-height:190px;max-height:260px}.ang-blog-card-content{padding:22px}.ang-post-hero{padding:48px 20px 36px}.ang-post-hero h1{font-size:clamp(2.1rem,11vw,3.2rem)}.ang-post-deck{font-size:1rem}.ang-post-feature{padding:24px 20px 0}.ang-post-body-section{padding:38px 20px 64px}.ang-post-body{font-size:1rem}.ang-post-body .alignwide,.ang-post-body .alignfull{width:100%;margin-left:0;transform:none}}


/* 2.7.3 family-bar current-site treatment
   Keep every family name the same text color. The current site is indicated
   by a quiet highlight rather than turning the label green. */
.network-bar a.is-active,
.network-bar a.is-active:hover,
.network-bar a.is-active:focus-visible{
  color:#C9CFC7!important;
  font-weight:700!important;
  background:rgba(201,207,199,.11);
  box-shadow:inset 0 -1px 0 rgba(201,207,199,.62);
  border-radius:4px;
}


/* 2.7.3 family-bar hardening: active family label is highlighted without changing text hue. */
.network-bar .wrap a.is-active,
.network-bar .wrap a.is-active:visited,
.network-bar .wrap a.is-active:hover,
.network-bar .wrap a.is-active:focus-visible{
  color:#C9CFC7!important;
  background:rgba(201,207,199,.11)!important;
  box-shadow:inset 0 -1px 0 rgba(201,207,199,.62)!important;
  border-radius:4px;
  text-decoration:none!important;
}


/* 2.8.0 fuller page layout contract — use more of the viewport like CyberDefenseIQ while preserving each brand. */
:root{--maxw:1360px;}

/* Generic heroes: broader, left-led, and less vertically sparse. CyberDefenseIQ keeps its purpose-built product hero. */
@media (min-width:860px){
  .hero:not(.cdiq-hero){text-align:left;padding:clamp(68px,7vw,96px) 0 clamp(62px,6vw,86px);background:radial-gradient(circle at 82% 18%,rgba(31,138,99,.13),transparent 30%),linear-gradient(135deg,rgba(255,255,255,.18),transparent 58%);}
  .hero:not(.cdiq-hero) .hero-content{max-width:var(--maxw)!important;margin-left:auto;margin-right:auto;}
  .hero:not(.cdiq-hero) h1{max-width:980px;font-size:clamp(3rem,6vw,5.15rem);}
  .hero:not(.cdiq-hero) .hero-sub{max-width:860px;margin-left:0;margin-right:0;font-size:clamp(1.05rem,1.7vw,1.25rem);}
  .hero:not(.cdiq-hero) .hero-ctas{justify-content:flex-start;}
}

/* Secondary page heroes use the full content rail instead of a narrow centered island. */
.page-hero{text-align:left!important;padding:clamp(56px,6vw,82px) 0 clamp(42px,5vw,64px);}
.page-hero .wrap{max-width:var(--maxw);}
.page-hero h1{max-width:1040px;}
.page-hero p{max-width:900px!important;margin-left:0!important;margin-right:0!important;text-align:left!important;line-height:1.65;}

/* Main content sections occupy more horizontal space and establish a stronger left-to-right reading rhythm. */
.section{padding:clamp(58px,6vw,88px) 0;}
.section>.wrap>h2.center{text-align:left;max-width:1000px;}
.section>.wrap>.eyebrow.center{text-align:left;}
.section-intro{max-width:900px;margin-left:0;margin-right:0;text-align:left;line-height:1.7;}
.card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr));gap:22px;}
.for-list{max-width:none!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.step-grid{max-width:none!important;gap:18px;}
.related-links{max-width:none!important;grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0;margin-right:0;}
.faq-list{max-width:1100px!important;margin-left:0;margin-right:0;}
.quote-panel{max-width:1100px;}
.prose-page{max-width:1040px!important;}
.post-list{max-width:1120px!important;margin-left:0;margin-right:0;}

/* Long-form material remains readable while feature blocks, galleries, and service grids can breathe. */
.two-col{gap:clamp(40px,5vw,72px);}
.feature-panel{gap:26px;}
.solution-row{gap:clamp(36px,5vw,68px);}

@media (max-width:980px){
  .for-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  :root{--maxw:1200px;}
  .hero:not(.cdiq-hero){text-align:left;padding:56px 0 54px;}
  .hero:not(.cdiq-hero) .hero-content{max-width:none;}
  .hero:not(.cdiq-hero) h1{max-width:none;margin-left:0;margin-right:0;font-size:clamp(2.45rem,12vw,3.7rem);}
  .hero:not(.cdiq-hero) .hero-sub{max-width:none;margin-left:0;margin-right:0;}
  .hero:not(.cdiq-hero) .hero-ctas{justify-content:flex-start;}
  .page-hero{padding:46px 0 36px;}
  .section{padding:52px 0;}
  .section-intro{margin-bottom:32px;}
  .for-list,.related-links{grid-template-columns:1fr;}
  .faq-list{max-width:none!important;}
}

/* 2.8.4 persistent family masthead — production invariant.
   The complete family bar + primary header are fixed to the viewport on every
   route. JS measures the real masthead height and reserves exactly that space
   above page content, so long pages, consultation/contact pages, blog posts,
   hash navigation, and mobile layouts all behave consistently. */
:root{--ang-masthead-height:116px;}
body{overflow-x:clip!important;overflow-y:visible!important;}
.sticky-top{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  z-index:99990!important;
  width:100%!important;
  isolation:isolate;
}
body.admin-bar .sticky-top{top:32px!important;}
.sticky-top>.network-bar{position:relative;z-index:2;flex:0 0 auto;}
.sticky-top>.site-header{position:relative;z-index:1;}
.wp-theme-content{padding-top:var(--ang-masthead-height)!important;}
html{scroll-padding-top:calc(var(--ang-masthead-height) + 16px)!important;}
@media(max-width:782px){body.admin-bar .sticky-top{top:46px!important;}}


/* 3.0.5 blog landing layout stabilization */
.ang-blog-list{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:22px!important;
  width:100%!important;
  max-width:1120px!important;
  margin:0 auto!important;
}
.ang-blog-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  background:linear-gradient(135deg,var(--paper,#f7f4ec) 0%,var(--panel,#fffdfa) 100%)!important;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.ang-blog-card:nth-child(even){
  background:linear-gradient(135deg,var(--panel,#fffdfa) 0%,var(--paper,#f7f4ec) 100%)!important;
}
.ang-blog-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(22,27,24,.07);}
.ang-blog-card-content{min-width:0;}
@media(max-width:760px){.ang-blog-list{gap:16px!important}.ang-blog-card:hover{transform:none}}

/* 3.1.4 family masthead scale ------------------------------------------------
   Increase logo, navigation, and action sizing on desktop/tablet while keeping
   the mobile header compact and usable. */
@media (min-width:701px){
  .network-bar .wrap{min-height:38px!important;font-size:.72rem!important;padding-top:7px!important;padding-bottom:7px!important;}
  .site-header .nav{min-height:84px!important;padding-top:14px!important;padding-bottom:14px!important;gap:20px!important;}
  .site-header .brand-logo{height:46px!important;max-width:260px!important;}
  .site-header .nav-links a{font-size:16px!important;font-weight:650!important;}
  .site-header .nav-links{gap:22px!important;}
  .site-header .nav > .btn{min-height:48px!important;padding-left:20px!important;padding-right:20px!important;font-size:14px!important;}
  .mobile-toggle{width:48px!important;height:48px!important;}
  .mobile-toggle svg{width:24px!important;height:24px!important;}
}
@media (min-width:1180px){
  .site-header .nav-links{gap:26px!important;}
  .site-header .nav-links a{font-size:16px!important;}
}
@media (max-width:700px){
  .site-header .nav{min-height:74px!important;}
  .site-header .brand-logo{height:38px!important;max-width:min(210px,64vw)!important;}
}


/* 3.1.6 Platinum Steno supplied logo ---------------------------------------
   Uses the supplied Platinum Steno artwork with only transparent outer canvas
   removed. Match the AquilaNera Global masthead logo's visible 46px height. */
.site-header .brand{
  flex:0 0 auto!important;
  min-width:0!important;
}
.site-header .ps-brand-logo{
  display:block!important;
  width:auto!important;
  height:46px!important;
  max-width:260px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
.site-footer .ps-footer-logo{
  display:block!important;
  width:auto!important;
  height:46px!important;
  max-width:260px!important;
  object-fit:contain!important;
  object-position:left center!important;
  filter:none!important;
  opacity:1!important;
}
.ang-construction-logo{
  width:auto!important;
  height:46px!important;
  max-width:min(260px,72%)!important;
  object-fit:contain!important;
}
@media(max-width:700px){
  .site-header .ps-brand-logo{height:38px!important;max-width:min(210px,64vw)!important;}
  .site-footer .ps-footer-logo{height:38px!important;max-width:min(210px,70vw)!important;}
  .ang-construction-logo{height:38px!important;max-width:min(210px,72vw)!important;}
}


/* 3.1.7 Platinum Steno visual logo scale + footer variant -------------------
   The Platinum mark has a taller aspect ratio than AquilaNera Global, so a
   60px visible height gives it comparable masthead presence while preserving
   the shared navigation rhythm. */
.site-header .ps-brand-logo{
  display:block!important;
  width:auto!important;
  height:60px!important;
  max-width:190px!important;
  object-fit:contain!important;
  object-position:left center!important;
  flex:none!important;
}
.site-header .brand{flex:0 0 190px!important;width:190px!important;}
.site-footer .ps-footer-logo{
  display:block!important;
  width:auto!important;
  height:60px!important;
  max-width:190px!important;
  object-fit:contain!important;
  object-position:left center!important;
  filter:none!important;
  opacity:1!important;
}
.ang-construction-logo{height:60px!important;max-width:190px!important;width:auto!important;}
@media(max-width:700px){
  .site-header .brand{width:auto!important;flex:0 0 auto!important;}
  .site-header .ps-brand-logo{height:48px!important;max-width:150px!important;}
  .site-footer .ps-footer-logo{height:48px!important;max-width:150px!important;}
  .ang-construction-logo{height:48px!important;max-width:150px!important;}
}


/* 3.2.1 standard WordPress page + shortcode alignment -----------------------
   New editor-created pages that do not already contain the theme's full-width
   section markup are automatically placed inside the same centered 1160px
   content system used throughout Platinum Steno. This keeps shortcode forms,
   checkout tables, embeds, and plugin output aligned with the site. */
.ang-standard-page{
  padding:clamp(48px,6vw,80px) 0!important;
}
.ang-standard-page>.wrap{
  width:100%;
  max-width:var(--maxw,1160px);
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:24px!important;
  padding-right:24px!important;
  box-sizing:border-box;
}
.ang-standard-page-content{
  width:100%;
  max-width:100%;
  margin:0 auto;
  box-sizing:border-box;
}
.ang-standard-page-content>*{
  max-width:100%;
  box-sizing:border-box;
}
.ang-standard-page-content table,
.ang-standard-page-content form,
.ang-standard-page-content .wp-block-shortcode,
.ang-standard-page-content .wp-block-shortcode>*{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.ang-standard-page-content input:not([type="checkbox"]):not([type="radio"]),
.ang-standard-page-content select,
.ang-standard-page-content textarea{
  max-width:100%;
  box-sizing:border-box;
}
@media(max-width:700px){
  .ang-standard-page{padding:42px 0!important;}
  .ang-standard-page>.wrap{padding-left:18px!important;padding-right:18px!important;}
  .ang-standard-page-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}


/* 3.3.2 Theory Program: free-course-first positioning + closing speedbuilding CTA */
.ps-theory-free-hero{text-align:center}.ps-theory-free-hero h1{max-width:900px;margin-left:auto;margin-right:auto}.ps-theory-free-hero p{max-width:900px}.ps-theory-free-promise{display:inline-flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:22px;padding:12px 18px;border:1px solid #d8d0c4;border-radius:999px;background:#fff}.ps-theory-free-promise strong{font-size:1.02rem}.ps-theory-free-promise span{color:#67615a}.ps-theory-library-heading{max-width:900px}.ps-theory-speedbuilding{padding-top:58px;padding-bottom:76px}.ps-theory-speedbuilding-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center;padding:34px 38px;border:1px solid #d8d0c4;border-top:4px solid #5d2a5e;border-radius:18px;background:#fff}.ps-theory-speedbuilding-card h2{margin:.45rem 0 .75rem}.ps-theory-speedbuilding-card p{max-width:760px;margin-bottom:0}.ps-theory-speedbuilding-action{display:grid;gap:10px;justify-items:center;text-align:center}.ps-theory-speedbuilding-action span{font-size:.9rem;color:#67615a}@media(max-width:800px){.ps-theory-speedbuilding-card{grid-template-columns:1fr;padding:28px 24px}.ps-theory-speedbuilding-action{justify-items:start;text-align:left}.ps-theory-free-promise{border-radius:18px}}
