/* =====================================================================
   ASOSH page builder blocks — classes used by the CMS page builder
   (resources/views/admin/pagebuilder/blocks/*.html). Loaded on every
   builder page and inside the builder canvas.
   ===================================================================== */

/* home blocks: stagger / height helpers that used to be inline styles */
.hx-i0 { --i: 0; } .hx-i1 { --i: 1; } .hx-i2 { --i: 2; } .hx-i3 { --i: 3; } .hx-i4 { --i: 4; } .hx-i5 { --i: 5; }
.hs-ladder .hs-rung:nth-child(1) { --h: 40%; }
.hs-ladder .hs-rung:nth-child(2) { --h: 60%; }
.hs-ladder .hs-rung:nth-child(3) { --h: 80%; }
.hs-ladder .hs-rung:nth-child(4) { --h: 100%; }
.hs-ladder .hs-rung:nth-child(5) { --h: 110%; }
.hs-paths__lead { color: #9fb0c8; }
.hs-pillars > .a-reveal:nth-child(2), .hs-paths__grid > .a-reveal:nth-child(2), .pb-cards > .a-reveal:nth-child(2) { --d: .08s; }
.hs-pillars > .a-reveal:nth-child(3), .hs-paths__grid > .a-reveal:nth-child(3), .pb-cards > .a-reveal:nth-child(3) { --d: .16s; }
.hs-pillars > .a-reveal:nth-child(4), .hs-paths__grid > .a-reveal:nth-child(4) { --d: .24s; }

/* generic */
.pb-narrow { max-width: 820px; margin-inline: auto; }
.pb-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.pb-image { margin: 24px 0; }
.pb-image img { width: 100%; height: auto; border-radius: var(--a-radius-lg); display: block; }
.pb-image figcaption { font-size: 13.5px; color: var(--a-muted); margin-top: 10px; }

/* text + image */
.pb-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.pb-split__media { margin: 0; }
.pb-split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--a-radius-lg); box-shadow: var(--a-shadow); display: block; }
.pb-split .a-btn { margin-top: 10px; }
.pb-ticks { list-style: none; padding: 0; margin: 18px 0 24px; display: grid; gap: 10px; }
.pb-ticks li { position: relative; padding-left: 30px; color: var(--a-text); }
.pb-ticks li::before { content: ""; position: absolute; left: 0; top: .35em; width: 18px; height: 18px; border-radius: 50%; background: var(--a-red-100); box-shadow: inset 0 0 0 5px var(--a-red-100), inset 0 0 0 9px var(--a-red); }

/* cards */
.pb-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pb-card { background: #fff; border: 1px solid var(--a-line-cool); border-radius: var(--a-radius-lg); padding: 28px; transition: transform .3s var(--a-ease), box-shadow .3s var(--a-ease); }
.pb-card:hover { transform: translateY(-4px); box-shadow: var(--a-shadow); }
.pb-card__ic { width: 50px; height: 50px; border-radius: 14px; background: var(--a-navy); color: #fff; display: grid; place-items: center; font-size: 19px; margin-bottom: 18px; }
.pb-card h3 { font: 700 20px/1.3 var(--a-serif-text); color: var(--a-ink); margin: 0 0 8px; }
.pb-card p { color: var(--a-muted); margin: 0; font-size: 15px; line-height: 1.6; }

/* call to action */
.pb-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; padding: clamp(28px, 4vw, 48px); border-radius: var(--a-radius-lg); background: linear-gradient(120deg, var(--a-navy-900), var(--a-navy)); color: #fff; }
.pb-cta h3 { font: 400 clamp(24px, 2.6vw, 32px)/1.2 var(--a-serif); color: #fff; margin: 0 0 6px; }
.pb-cta p { color: #c3cfde; margin: 0; }
.pb-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* questions */
.pb-faq { display: grid; gap: 12px; }
.pb-faq__item { background: #fff; border: 1px solid var(--a-line-cool); border-radius: var(--a-radius); }
.pb-faq__item summary { cursor: pointer; list-style: none; padding: 18px 52px 18px 22px; font-weight: 700; color: var(--a-ink); position: relative; }
.pb-faq__item summary::-webkit-details-marker { display: none; }
.pb-faq__item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font: 400 24px/1 var(--a-sans); color: var(--a-red); }
.pb-faq__item[open] summary::after { content: "–"; }
.pb-faq__a { padding: 0 22px 18px; color: var(--a-text); }
.pb-faq__a p:last-child { margin-bottom: 0; }

/* quote */
.pb-quote { margin: 0 auto; max-width: 860px; text-align: center; }
.pb-quote blockquote { font: 400 clamp(24px, 3vw, 36px)/1.35 var(--a-serif); color: var(--a-ink); margin: 0 0 18px; }
.pb-quote figcaption { color: var(--a-muted); }

/* figures */
.pb-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; text-align: center; }
.pb-figure b { display: block; font: 400 clamp(36px, 4vw, 54px)/1 var(--a-serif); color: #fff; }
.pb-figure span { display: block; margin-top: 8px; color: #9fb0c8; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }

/* document pages */
.pb-doc-section { padding-top: 70px; }
.a-toc.is-empty > h6:first-child, .a-toc.is-empty > ol { display: none; }
.a-related ol { border-left: 0; }
.pol-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 10px; }
.pol-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: #fff; border: 1px solid var(--a-line-cool); border-radius: 20px; color: inherit !important; transition: transform .3s var(--a-ease), box-shadow .3s var(--a-ease); }
.pol-card:hover { transform: translateY(-4px); box-shadow: var(--a-shadow); }
.pol-card .ic { width: 46px; height: 46px; border-radius: 13px; background: var(--a-red-100); color: var(--a-red); display: grid; place-items: center; font-size: 18px; margin-bottom: 6px; }
.pol-card strong { font: 700 18px/1.3 var(--a-serif-text); color: var(--a-ink); }
.pol-card span { font-size: 14px; color: var(--a-muted); line-height: 1.5; }
.pol-card em { font-style: normal; font-weight: 700; font-size: 13.5px; color: var(--a-navy); margin-top: auto; padding-top: 6px; }
.pb-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 991px) {
  .pb-split { grid-template-columns: 1fr; }
  .pb-cards, .pb-services { grid-template-columns: 1fr 1fr; }
  .pb-figures { grid-template-columns: 1fr 1fr; row-gap: 32px; }
}
@media (max-width: 575px) {
  .pb-cards, .pb-services, .pol-grid { grid-template-columns: 1fr; }
  .pb-cta { flex-direction: column; align-items: flex-start; }
}
@media print { .ah, .af, .a-toc, .a-pagehead .a-crumbs, #asosh-preloader, .a-totop { display: none !important; } .a-doc { display: block; } }
