/* HQ page rhythm. Loaded only by alcohq.com; Access keeps its own layout.
   Neighboring white sections contribute half the gap each. Page edges and
   colored CTA bands receive one full inset instead of stacked margins. */
body #main {
  --hq-section-half: 32px;
  --hq-section-edge: 48px;
  --hq-content-gap: 32px;
  --hq-group-gap: 24px;
}
body #main .section {
  margin-block: 0 !important;
  padding-block: var(--hq-section-half) !important;
}
body #main .section:not(.section ~ .section) {
  padding-top: var(--hq-section-edge) !important;
}
body #main .section:last-of-type,
body #main .section:has(+ .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section)) {
  padding-bottom: var(--hq-section-edge) !important;
}
body #main .section > .wrap {
  padding-block: 0 !important;
}
body #main .section > .wrap > :last-child {
  margin-bottom: 0;
}
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) {
  padding-block: var(--hq-section-edge) !important;
}
/* The surrounding section already provides the space above a summary. */
body #main .alco-ai-summary {
  margin: 0 0 var(--hq-content-gap) !important;
}
body #main .article-meta {
  margin-bottom: var(--hq-group-gap);
}
body #main .learning-section-heading {
  margin-bottom: var(--hq-group-gap);
}
body #main .training-preview-note,
body #main .training-video-fallback {
  margin: 0 0 var(--hq-group-gap);
}
body #main .training-player,
body #main .training-reading {
  margin: 0 0 var(--hq-content-gap);
}
body #main .training-reading > :last-child {
  margin-bottom: 0;
}
/* Legal sections had both a full top margin and a full top padding. */
body #main .legal-block + .legal-block {
  margin-top: var(--hq-section-half);
  padding-top: var(--hq-section-half);
}
body #main .legal-block + .legal-block .legal-number {
  top: calc(var(--hq-section-half) + 2px);
}
@media (max-width:1040px) {
  body #main {
    --hq-section-half: 28px;
    --hq-section-edge: 40px;
    --hq-content-gap: 28px;
  }
}
@media (max-width:650px) {
  body #main {
    --hq-section-half: 24px;
    --hq-section-edge: 32px;
    --hq-content-gap: 24px;
    --hq-group-gap: 20px;
  }
}
@media (max-width:620px) {
  body #main .legal-block + .legal-block .legal-number { top:auto; }
}
@media print {
  body #main {
    --hq-section-half: 12px;
    --hq-section-edge: 16px;
    --hq-content-gap: 16px;
  }
}

/* Match CTA and footer edges to the thin grey page-banner divider. */
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) {
  border-block: 1px solid var(--line, #dce0e5) !important;
}
body :is(footer.foot,footer.alco-footer-v2) { border-top: 1px solid var(--line, #dce0e5) !important; }
/* A CTA already supplies the lower edge; avoid a second line at the footer. */
body:has(#main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section):last-of-type) :is(footer.foot,footer.alco-footer-v2) {
  border-top: 0 !important;
}

/* CTA controls follow the site's grey border and orange interaction state. */
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) .btn {
  border: 1px solid var(--line, #dcdfe3) !important;
}
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) .btn:is(:hover,:focus-visible) {
  border-color: #ff8c2b !important;
}
@media (min-width:1041px) {
  body #main .service-core-cta > .wrap { align-items:start; }
  body #main .service-core-cta > .wrap > .btnrow {
    grid-column:2;
    grid-row:1 / span 2;
    align-self:start;
    margin:0;
  }
}

/* A consistent closing invitation: useful context, generous but measured
   padding, and a clear action aligned with the first heading line. */
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) {
  padding-block:56px !important;
}
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) h2 {
  margin:0 0 16px;
  font-size:clamp(26px,2.5vw,34px);
  line-height:1.2;
  letter-spacing:-.025em;
  max-width:36ch;
}
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) p:not(:has(.btn)) {
  max-width:70ch;
  margin:0 !important;
  color:#41474d;
  font-size:16px;
  line-height:1.75;
}
body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) .btn {
  min-height:48px;
  min-width:168px;
  padding:12px 24px;
  font-size:15px;
  line-height:1.4;
  white-space:normal;
  text-align:center;
}
/* Remove the extra card inside Why ALCO's already framed CTA band. */
body #main .why-next-step-card {
  padding:0 !important;
  border:0 !important;
  border-radius:0;
  box-shadow:none;
}
body #main .why-next-step-card > .eyebrow { display:none !important; }
body #main .industry-next-layout { grid-template-columns:1fr; gap:32px; }
body #main .industry-next-layout > .industry-service-links {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px 20px;
}
body #main .industry-service-links > h3 { grid-column:1 / -1; margin:0; }
body #main .industry-service-links > a { margin:0; }
/* The flat templates share this layout, including the new homepage CTA.
   Location photography remains a contextual illustration alongside its copy. */
@media(min-width:1041px) {
  body #main .section:is(.page-cta,.service-core-cta,.life-contact-cta,.alco-cta-section) > .wrap:has(> h2),
  body #main .why-next-step-card,
  body #main .industry-next-layout > div:first-child {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:0 clamp(32px,5vw,80px);
    align-items:start;
    text-align:left !important;
  }
  body #main .section:is(.page-cta,.service-core-cta,.life-contact-cta,.alco-cta-section) > .wrap > h2,
  body #main .why-next-step-card > h2,
  body #main .industry-next-layout > div > h2 {
    grid-column:1;
    grid-row:1;
  }
  body #main .section:is(.page-cta,.service-core-cta,.life-contact-cta,.alco-cta-section) > .wrap > p:not(:has(.btn)),
  body #main .why-next-step-card > p,
  body #main .industry-next-layout > div > p {
    grid-column:1;
    grid-row:2;
    margin:0 !important;
  }
  body #main .section:is(.page-cta,.service-core-cta,.life-contact-cta,.alco-cta-section) > .wrap > :is(.btnrow,.btn,p:has(> .btn)),
  body #main .why-next-step-card > .btnrow,
  body #main .industry-next-layout > div > .btn {
    grid-column:2;
    grid-row:1 / span 2;
    align-self:start;
    justify-self:end;
    margin:0 !important;
  }
  body #main .section:is(.page-cta,.service-core-cta,.life-contact-cta,.why-next-step,.alco-cta-section) .btnrow {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    max-width:280px;
  }
}
@media(max-width:1040px) {
  body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) {
    padding-block:40px !important;
  }
  body #main .section:is(.page-cta,.service-core-cta,.life-contact-cta,.alco-cta-section) > .wrap > :is(.btnrow,.btn,p:has(> .btn)),
  body #main .why-next-step-card > .btnrow,
  body #main .industry-next-layout > div > .btn {
    margin:24px 0 0 !important;
  }
}
@media(max-width:650px) {
  body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) .btnrow {
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  body #main .section:is(.page-cta,.service-core-cta,.industry-next,.life-contact-cta,.why-next-step,.alco-cta-section) .btn {
    width:100%;
    min-width:0;
  }
  body #main .industry-next-layout > .industry-service-links { grid-template-columns:1fr; }
}

/* HQ closing CTAs match the Tools invitation. Keep these selectors scoped:
   Tools also consumes this stylesheet through its shared assets symlink. */
body #main .section.hq-closing-cta {
  background:#faf9f7;
}
body #main .section.hq-closing-cta .hq-cta-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:32px;
  align-items:center;
  text-align:left;
}
body #main .section.hq-closing-cta .hq-cta-copy {
  min-width:0;
}
body #main .section.hq-closing-cta .hq-cta-copy > .eyebrow {
  display:block;
  margin:0 0 12px;
  color:#ff8c2b;
  font-size:12px;
  font-weight:600;
  line-height:1.2;
}
body #main .section.hq-closing-cta .hq-cta-copy > h2 {
  margin:0 0 16px;
  font-size:clamp(26px,2.5vw,34px);
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.025em;
  max-width:36ch;
}
body #main .section.hq-closing-cta .hq-cta-copy > p {
  max-width:64ch;
  margin:0 !important;
  color:#41474d;
  font-size:16px;
  line-height:1.75;
}
body #main .section.hq-closing-cta .hq-cta-layout > .btnrow.hq-cta-actions {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  align-self:center;
  justify-self:end;
  grid-column:auto;
  grid-row:auto;
  gap:12px;
  margin:0 !important;
  max-width:280px;
}
body #main .section.hq-closing-cta .hq-cta-layout > .btnrow.hq-cta-actions > .btn {
  min-height:48px;
  min-width:168px;
  padding:12px 24px;
  font-size:15px;
  font-weight:400;
  line-height:1.4;
  background:#fff;
  color:#000;
  border-radius:4px;
}
body #main .section.hq-closing-cta .hq-cta-layout--illustrated {
  grid-template-columns:200px minmax(0,1fr) auto;
}
body #main .section.hq-closing-cta .hq-cta-illustration img {
  display:block;
  width:100%;
  height:144px;
  object-fit:cover;
  border-radius:4px;
}
@media(max-width:1040px) {
  body #main .section.hq-closing-cta .hq-cta-layout--illustrated {
    grid-template-columns:160px minmax(0,1fr);
  }
  body #main .section.hq-closing-cta .hq-cta-layout.hq-cta-layout--illustrated > .btnrow.hq-cta-actions {
    grid-column:2;
    justify-self:start;
  }
}
@media(max-width:860px) {
  body #main .section.hq-closing-cta .hq-cta-layout,
  body #main .section.hq-closing-cta .hq-cta-layout--illustrated {
    grid-template-columns:minmax(0,1fr);
  }
  body #main .section.hq-closing-cta .hq-cta-layout > .btnrow.hq-cta-actions,
  body #main .section.hq-closing-cta .hq-cta-layout.hq-cta-layout--illustrated > .btnrow.hq-cta-actions {
    grid-column:auto;
    justify-self:start;
    flex-direction:row;
    flex-wrap:wrap;
    max-width:none;
  }
  body #main .section.hq-closing-cta .hq-cta-illustration {
    max-width:240px;
  }
}
@media(max-width:650px) {
  body #main .section.hq-closing-cta .hq-cta-layout > .btnrow.hq-cta-actions { width:100%; }
  body #main .section.hq-closing-cta .hq-cta-layout > .btnrow.hq-cta-actions > .btn { width:100%; min-width:0; }
}

/* Desktop consent layout; phone rules and consent behavior stay independent. */
@media (min-width:651px) {
  .cookiebar {
    width:min(480px,calc(100vw - 48px));
    left:24px; bottom:24px; padding:24px;
    max-height:calc(100dvh - 48px); overflow-y:auto;
    border-radius:8px; font-size:14px; line-height:1.6;
  }
  .cookiebar .cookiebar-title {
    display:block; margin:0 0 12px;
    font-size:16px; font-weight:600; line-height:1.4;
    letter-spacing:0; text-transform:none;
  }
  .cookiebar p { max-width:none; margin:0 0 20px; font-size:14px; line-height:1.6; }
  .cookiebar .ckrow {
    display:grid; grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px 8px; align-items:stretch;
  }
  /* Override the shared site's compact button treatment inside this panel. */
  .cookiebar .ckrow .btn {
    grid-column:span 3; width:100%; min-width:0; min-height:44px;
    padding:10px 12px; border-radius:4px;
    background:#fff; color:#171717; border:1px solid #dcdfe3;
    font-size:14px; line-height:1.4; font-weight:400;
    white-space:normal; text-align:center;
  }
  .cookiebar .ckrow .btn:hover { border-color:#ff8c2b; background:#fff7ef; color:#171717; }
  .cookiebar .ckrow .cklink {
    grid-column:span 2; display:flex; align-items:center; justify-content:center;
    margin:0; padding:4px 0; min-height:32px;
    font-size:12px; line-height:1.4; text-align:center; overflow-wrap:anywhere;
  }
}
