/* AISearch Global shared layout (25 Oct 2026). Loaded LAST on every page, after each page's own inline <style>.
   One container (1120px) shared by header, content and footer, so all three start at the same left edge.
   Mobile first: base rules are the phone layout; wider screens add to them. Reading text is capped at 760px.
   Full-bleed is for backgrounds only: no edge-to-edge divider lines. Do not add per-page widths; change them here. */

:root{--g:1rem;--container:1120px;--read:760px;--edge:max(var(--g),calc((100% - var(--container))/2 + var(--g)))}
@media (min-width:768px){:root{--g:1.5rem}}

/* ---------- header and footer: same container, same gutters ---------- */
html body header .container,
html body .site-footer .f-wrap{box-sizing:border-box;max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:var(--g);padding-right:var(--g)}

html body .container{box-sizing:border-box;padding-left:var(--g);padding-right:var(--g)}

/* cookie banner: compact on phones so it does not cover a fifth of the screen */
html body #cookie-consent-banner{padding:.6rem var(--g);gap:.5rem;font-size:.78rem}
html body #cookie-consent-banner p{flex:1 1 100%;min-width:0;line-height:1.4}
html body #cookie-consent-banner .cc-actions{width:100%;flex-wrap:nowrap}
html body #cookie-consent-banner button{flex:1;padding:.5rem .8rem}
@media (min-width:768px){
  html body #cookie-consent-banner{font-size:.85rem}
  html body #cookie-consent-banner p{flex:1 1 320px}
  html body #cookie-consent-banner .cc-actions{width:auto}
  html body #cookie-consent-banner button{flex:none;padding:.55rem 1.1rem}
}

/* footer: no edge-to-edge lines, and defeat the old per-page ".site-footer{display:flex...}" rules */
html body footer.site-footer{display:block;background:transparent;border-top:0;justify-content:normal;align-items:normal;flex-wrap:nowrap;gap:0;text-transform:none;letter-spacing:normal}
html body .site-footer .f-cta{border-bottom:0}
html body .site-footer .f-cta .f-wrap{border-bottom:1px solid rgba(255,255,255,.09);padding-bottom:2.5rem}
html body .site-footer .f-cta{padding:2.5rem 0 0}
html body .site-footer .f-main{padding:2.5rem 0 1.5rem}

/* ---------- content: starts at the container's left edge ---------- */
/* reading-width pages (articles, legal, FAQ) */
html body article.article,
html body article.doc,
html body main.article-page:not(.report-wrap){box-sizing:border-box;width:auto;max-width:var(--read);margin-left:var(--edge);margin-right:var(--g);padding-left:0;padding-right:0}
html body article.doc{padding-left:1.25rem;padding-right:1.25rem}
/* a .doc card that already sits inside a padded .container needs no extra edge margin */
html body .container article.doc{margin-left:0;margin-right:0}

/* wider pages: container width, children capped for reading */
html body .page-wrap,
html body main.report-wrap{box-sizing:border-box;max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:var(--g);padding-right:var(--g)}
html body .page-wrap:not(.wide)>*{max-width:var(--read)}

/* index pages (Insights, Case Studies) */
html body .insights-wrap{box-sizing:border-box;max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:var(--g);padding-right:var(--g)}

/* ---------- headlines: left aligned like the pages below them ---------- */
html body .hero,html body .hero *{text-align:left}
html body .hero>*:not(.container),html body .hero .container>*{margin-left:0;margin-right:0}
html body .hero h1,html body .hero p,html body .hero .sub,html body .hero .lead{max-width:var(--read);margin-left:0;margin-right:0}
html body .hero .badge,html body .hero .hero-actions,html body .hero .cta-row,html body .hero .actions,html body .hero .hero-cta{justify-content:flex-start}
html body main>section{border-top:0}
html body main section .container>h2,html body main section .container>h3,html body main section .container>p,html body main section .container>.eyebrow,html body main section .container>.sub,
html body main section .section-head,html body main section .section-head *{text-align:left;margin-left:0;margin-right:0}
html body main section .container>p,html body main section .container>.sub{max-width:var(--read)}

/* form blocks (home, About, Contact): the block IS a .container, so keep its auto margins and left-align its contents */
html body .contact-wrap{max-width:var(--container);margin-left:auto;margin-right:auto;text-align:left}
html body .contact-wrap>*{max-width:var(--read);margin-left:0;margin-right:0;text-align:left}
html body .contact-wrap .lead-form{max-width:640px;margin-left:0;margin-right:0}
html body .lead{margin-left:0;margin-right:0}

/* phones: nothing may push the page wider than the screen (wide tables scroll inside their own box) */
html body img,html body video,html body iframe,html body pre{max-width:100%}
html body pre{overflow-x:auto}
@media (max-width:767px){
  html body article table,html body main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

@media (min-width:768px){
  html body article.doc{padding-left:2rem;padding-right:2rem}
}

/* pages with their own inline "centre" styles (home, About, Contact): same left edge as everything else */
html body .hero p{text-align:left!important;margin-left:0!important;margin-right:0!important;max-width:var(--read)!important}
html body main#main [style*="text-align:center"]{text-align:left!important}
html body main#main p[style*="auto"]{margin-left:0!important;margin-right:0!important}

/* ---------- clean-up pass 2 (Viv, 25 Oct 2026) ---------- */
/* 1. the extra "free tool by AISearch Global" strip under the header repeats what the page already says */
html body .brand-banner{display:none}

/* 2. no tinted edge-to-edge bands or section lines (Services page): content sits in the container like everything else */
html body .avail-band,html body .proof-band{background:none;border-top:0;border-bottom:0}
html body main section{border-top:0;border-bottom:0}

/* 3. cookie banner: one slim row on phones (text left, two small buttons right) */
html body #cookie-consent-banner{flex-wrap:nowrap;align-items:center;gap:.6rem;padding:.45rem var(--g);font-size:.72rem}
html body #cookie-consent-banner p{flex:1 1 0;min-width:0;line-height:1.3}
html body #cookie-consent-banner .cc-actions{width:auto;flex:none;flex-wrap:nowrap;gap:.4rem}
html body #cookie-consent-banner button{flex:none;padding:.4rem .7rem;font-size:.74rem}
@media (min-width:768px){
  html body #cookie-consent-banner{font-size:.85rem;padding:.6rem var(--g)}
  html body #cookie-consent-banner button{padding:.5rem 1rem;font-size:.85rem}
}

/* ---------- big screens: scale the whole page up so it fills the window (same as browser zoom, but automatic) ---------- */
@media (min-width:1700px){html{zoom:1.15}}
@media (min-width:2200px){html{zoom:1.4}}
@media (min-width:3000px){html{zoom:1.9}}
@media (min-width:4200px){html{zoom:2.6}}
@media (min-width:6000px){html{zoom:4}}
@media (min-width:9000px){html{zoom:6}}

/* ---------- phone footer: compact, no clutter (Viv, 26 Oct 2026) ---------- */
@media (max-width:767px){
  html body .site-footer .f-cta{padding:1.75rem 0 0}
  html body .site-footer .f-cta .f-wrap{padding-bottom:1.5rem;gap:1rem}
  html body .site-footer .f-cta-title{font-size:1.2rem;max-width:none}
  html body .site-footer .f-btn{padding:.7rem 1rem}
  html body .site-footer .f-main{padding:1.75rem 0 1rem}
  html body .site-footer .f-top{gap:1.4rem 1rem}
  html body .site-footer .f-brand img{height:24px;margin:0 0 .7rem}
  html body .site-footer .f-brand p{max-width:none;margin:0 0 .6rem;font-size:.8rem;line-height:1.5}
  html body .site-footer .f-social{margin-left:-.55rem;gap:.45rem}
  html body .site-footer .f-social a{width:38px;height:38px;font-size:1.2rem}
  html body .site-footer .f-title{margin:0 0 .45rem;font-size:.78rem}
  html body .site-footer .f-col li a,html body .site-footer .f-col .f-line{padding:.18rem 0;font-size:.84rem}
  /* Legal links on one line under the two columns instead of an orphan third column */
  html body .site-footer .f-col[aria-label="Legal"]{grid-column:1/-1}
  html body .site-footer .f-col[aria-label="Legal"] ul{display:flex;gap:1.4rem}
  html body .site-footer .f-band{margin-top:1.1rem;padding-top:1rem;font-size:.72rem;line-height:1.55}
  html body .site-footer .f-band + .f-band{margin-top:1rem}
  html body .site-footer .f-land .f-title{margin:0 0 .35rem}
  html body .site-footer .f-legal{margin-top:1.1rem;padding-top:1rem;font-size:.72rem;gap:.25rem}
}
