/* Angularcamp frontend — dense editorial magazine layer.
   Prefix .ac- only. Complements style.css + theme.json tokens. */

.ac-shell{width:100%;max-width:1320px;margin-inline:auto;padding-inline:28px}
.wp-block-post-content > .wp-block-group.ac-shell.alignfull,
.wp-block-group.ac-shell.alignfull{max-width:1320px;margin-left:auto;margin-right:auto}
@media(max-width:760px){.ac-shell{padding-inline:18px}}

/* Query grids map to block markup */
.ac-grid-2.wp-block-post-template,
.wp-block-post-template.ac-grid-2{display:grid!important;grid-template-columns:1fr 1fr;gap:16px}
.ac-grid-3.wp-block-post-template,
.wp-block-post-template.ac-grid-3{display:grid!important;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.ac-grid-2.wp-block-post-template,.wp-block-post-template.ac-grid-2,.ac-grid-3.wp-block-post-template,.wp-block-post-template.ac-grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.ac-grid-2.wp-block-post-template,.wp-block-post-template.ac-grid-2,.ac-grid-3.wp-block-post-template,.wp-block-post-template.ac-grid-3{grid-template-columns:1fr}}

/* Equal-height cards: WP wraps every card in li.wp-block-post (the real
   grid item), so the stretch chain must be grid -> li -> .ac-card. */
.wp-block-post-template.is-layout-grid{align-items:stretch}
.wp-block-post-template > li.wp-block-post{margin:0!important;min-width:0;height:auto}
.wp-block-post-template > li.wp-block-post > .wp-block-group.ac-card{height:100%}
.wp-block-group.ac-thumb{aspect-ratio:16/9;min-height:170px}
/* Even rhythm: titles clamp to 2 lines with reserved height, excerpts
   reserve 2 lines, footer pinned to card bottom via margin-top:auto. */
.ac-card .wp-block-post-title,
.ac-card-body h3{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:2.6em;
}
.ac-card .ac-excerpt{min-height:3.2em}

/* Card thumb fallback — never empty grey boxes */
.ac-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,#0e1420,#182032 55%,#232c44);border-bottom:1px solid #202736;min-height:170px}
.ac-thumb .wp-block-post-featured-image{margin:0;height:100%}
.ac-thumb .wp-block-post-featured-image img,.ac-thumb img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}
.ac-thumb .wp-block-post-featured-image:empty{display:block;min-height:170px;background:linear-gradient(135deg,#0e1420,#182032 55%,#232c44)}
.ac-thumb-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:14px;background:radial-gradient(420px 200px at 18% 8%,rgba(245,158,11,.16),transparent 62%),radial-gradient(380px 200px at 88% 90%,rgba(16,185,129,.12),transparent 60%),linear-gradient(135deg,#0e1420 0%,#182032 52%,#232c44 100%)}
.ac-thumb-fallback::before{content:"NO SIGNAL — LIVE DATA CARD";font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;letter-spacing:.12em;color:rgba(241,245,249,.62);border:1px solid rgba(255,255,255,.14);align-self:flex-start;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.32)}
.ac-fallback-title{font-weight:800;line-height:1.25;font-size:15.5px;color:#F1F5F9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ac-fallback-meta{display:flex;align-items:center;gap:8px;font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:11.5px;color:#8B9BB4}
.ac-fallback-pill{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#0b0d11;background:#F59E0B;border-radius:999px;padding:4px 9px}
.ac-cat{position:absolute;left:12px;top:12px;z-index:2;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#0b0d11!important;background:#F59E0B!important;border-radius:999px;padding:6px 10px!important;text-decoration:none!important;border:1px solid #fcd34d!important}
.ac-cat a{color:#0b0d11!important;text-decoration:none!important}
.ac-cat .taxonomy-category{color:#0b0d11}

/* Editorial rhythm */
.ac-feed .wp-block-query{margin-bottom:6px}
.wp-block-details{border:1px solid #202736;border-radius:12px;background:#131720;padding:0;margin-bottom:10px;overflow:hidden}
.wp-block-details summary{cursor:pointer;padding:14px 16px;font-weight:800;font-size:15px;color:#F1F5F9;list-style:none}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::after{content:"+";float:right;color:#F59E0B;font-weight:800}
.wp-block-details[open] summary::after{content:"–"}
.wp-block-details p{padding:0 16px 16px;margin:0;color:#cbd5e1;font-size:14.5px}

/* Inquiry form */
.ac-inquiry{background:#0e1320;border:1px solid #202736;border-radius:12px;padding:18px;margin-top:14px}
.ac-inquiry .ac-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:620px){.ac-inquiry .ac-grid-2{grid-template-columns:1fr}}
.ac-field{margin-bottom:13px}
.ac-field label{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8B9BB4;margin-bottom:7px}
.ac-field input,.ac-field select,.ac-field textarea{width:100%;background:#0b0d11;border:1px solid #202736;color:#F1F5F9;border-radius:10px;padding:12px 13px;font-size:14.5px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;outline:none}
.ac-field input:focus,.ac-field select:focus,.ac-field textarea:focus{border-color:rgba(245,158,11,.6);box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.ac-field textarea{min-height:130px;resize:vertical;line-height:1.6}
.ac-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:#8B9BB4}
.ac-check input{width:17px;height:17px;margin-top:3px;accent-color:#F59E0B}
.ac-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:800;font-size:14px;padding:11px 14px;border-radius:10px;border:1px solid transparent;cursor:pointer}
.ac-btn-amber{background:#F59E0B;color:#0b0d11;border-color:#fbbf24}
.ac-btn-amber:hover{background:#fbbf24}
.ac-btn-ghost{background:#0e1320;color:#F1F5F9;border-color:#202736}
.ac-btn-ghost:hover{border-color:rgba(245,158,11,.5);color:#F59E0B}

/* Single + page polish */
.single .ac-page-head,.page .ac-page-head{margin-top:0}
.wp-block-post-content h2{margin-top:1.5em;padding-top:.4em;border-top:1px solid #202736}
.wp-block-post-content h2:first-child{border-top:0;margin-top:0;padding-top:0}
.wp-block-post-content blockquote{border-left:3px solid #F59E0B;padding-left:16px;color:#F1F5F9;font-weight:600}
.wp-block-post-content code{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;background:#0e1320;border:1px solid #202736;border-radius:6px;padding:2px 6px;font-size:.88em;color:#F59E0B}
.wp-block-post-content pre{background:#0e1320;border:1px solid #202736;border-radius:12px;padding:16px;overflow:auto}
.wp-block-post-content pre code{border:0;background:transparent;padding:0}

/* Header scrolled state (JS toggles) */
.ac-topbar.is-scrolled{box-shadow:0 10px 30px rgba(0,0,0,.45);background:rgba(9,11,15,.96)}

/* Responsive nav: pills scroll on small screens */
@media(max-width:1100px){
  .ac-topbar-inner{flex-wrap:wrap}
  .ac-nav{order:3;width:100%;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
  .ac-header-cta{margin-left:auto}
}
@media(max-width:560px){
  .ac-brand-name{font-size:15px}
  .ac-header-cta{width:100%;justify-content:center;margin-left:0}
}

/* Print: keep text readable */
@media print{
  body{background:#fff;color:#111}
  .ac-topbar,.ac-rail,.ac-hero-side,.ac-footer{display:none}
  .ac-hero-main,.ac-panel,.ac-card{background:#fff;border-color:#ddd;color:#111}
}
