/* Rouge Hill Consulting — site styles. Element styles use :where() (zero specificity)
   so custom code-block pages keep full control of their own look. */
:root{
  --ink:#0b0d10; --ink-2:#3b4048; --mute:#6b717b; --line:#e6e8ec; --paper:#fff; --soft:#f5f6f8;
  --blue:#45b4ea; --blue-ink:#1676ad; --night:#07090c;
  --wrap:1180px; --r:18px;
  --sans:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --display:'Poppins','Manrope',sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
:where(img){max-width:100%;height:auto;display:block}
:where(a){color:var(--blue-ink)}
:where(h1,h2,h3,h4){line-height:1.2;letter-spacing:-.015em;margin:0 0 .5em;font-weight:700}
:where(h1){font-size:clamp(32px,4.4vw,52px);font-weight:800}
:where(h2){font-size:clamp(26px,3vw,38px)}
:where(h3){font-size:clamp(20px,2vw,24px)}
:where(p,ul,ol){margin:0 0 1em}
:where(table){border-collapse:collapse;width:100%;margin:1em 0;font-size:15px}
:where(th,td){border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
:where(tr:not([style*="background"])>th){background:var(--soft)}
.skip{position:absolute;left:12px;top:-60px;background:#fff;color:var(--ink);padding:10px 14px;border-radius:10px;z-index:100;font-weight:700;transition:top .2s var(--ease)}.skip:focus{top:12px}

/* motion tokens */
:root{--ease:cubic-bezier(.2,.8,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--t-fast:.16s;--t:.28s;--t-slow:.6s}
html{scroll-behavior:smooth;scroll-padding-top:96px}
:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;border-radius:6px}
::selection{background:rgba(69,180,234,.28)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;padding:13px 24px;border-radius:999px;font-size:15px;line-height:1.2;border:0;cursor:pointer;font-family:inherit;min-height:44px;
  transition:transform var(--t) var(--ease-out),background-color var(--t) var(--ease),box-shadow var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease);will-change:transform}
.btn:hover{background:#000;transform:translateY(-2px);box-shadow:0 10px 24px -8px rgba(11,13,16,.45)}
.btn:active{transform:translateY(0) scale(.98);transition-duration:.08s}
.btn--light{background:#fff;color:var(--ink)}.btn--light:hover{background:#eaf6fd;box-shadow:0 10px 24px -8px rgba(69,180,234,.55)}
.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}.btn--ghost:hover{background:var(--soft);border-color:#cfd4da}
.btn--sm{padding:9px 16px;font-size:14px;min-height:40px}
.sec--dark .btn{background:#fff;color:var(--ink)}

/* header */
.announce{display:block;background:#e9eaec;text-align:center;font-size:13px;padding:7px 12px}
.announce a{color:var(--ink);text-decoration:none;font-weight:600;transition:color var(--t-fast)}
.announce a:hover{color:var(--blue-ink)}
.hdr{background:#000;color:#fff;position:sticky;top:0;z-index:50;transition:box-shadow var(--t) var(--ease),background-color var(--t) var(--ease)}
@supports (backdrop-filter:blur(8px)){.hdr{backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px)}.hdr.is-scrolled{background:rgba(0,0,0,.8)}}
.hdr.is-scrolled{box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}
.hdr__in{max-width:var(--wrap);margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:24px;}
.hdr__logo{display:block;border-radius:8px}
.hdr__logo img{height:46px;width:auto}
.hdr__nav{margin-left:auto;display:flex;align-items:center;gap:24px}
.nl{position:relative;color:#fff;text-decoration:none;font-size:15px;font-weight:600;background:none;border:0;font-family:inherit;cursor:pointer;padding:8px 0;display:inline-flex;align-items:center;gap:6px;transition:color var(--t-fast) var(--ease)}
.nl::after{content:'';position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform var(--t) var(--ease-out)}
.nl:hover,.nl[aria-current="page"],.dd.is-open .dd__btn{color:#fff}
.nl:hover::after,.nl[aria-current="page"]::after,.dd.is-open .dd__btn::after{transform:scaleX(1)}
.dd__chev{width:12px;height:12px;transition:transform var(--t) var(--ease-out)}
.dd.is-open .dd__chev{transform:rotate(180deg)}
.hdr__nav>a.hdr__cta{color:var(--ink);padding:10px 20px;min-height:42px}
.dd{position:relative}
.dd__menu{position:absolute;top:calc(100% + 10px);left:-18px;background:#fff;border-radius:16px;box-shadow:0 24px 60px -12px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.04);padding:10px;min-width:310px;
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:20% 0;transition:opacity .2s var(--ease),transform .28s var(--ease-out),visibility 0s linear .28s}
.dd__menu::before{content:'';position:absolute;left:0;right:0;top:-12px;height:12px}
.dd.is-open .dd__menu{opacity:1;visibility:visible;transform:none;transition:opacity .2s var(--ease),transform .32s var(--ease-out),visibility 0s}
.dd__menu a{display:flex;align-items:center;justify-content:space-between;color:var(--ink);text-decoration:none;padding:9px 12px;border-radius:10px;font-size:14.5px;font-weight:500;
  opacity:0;transform:translateY(-4px);transition:background-color var(--t-fast) var(--ease),color var(--t-fast),opacity .25s var(--ease),transform .3s var(--ease-out),padding var(--t) var(--ease-out)}
.dd.is-open .dd__menu a{opacity:1;transform:none;transition-delay:0s,0s,calc(var(--i)*18ms),calc(var(--i)*18ms),0s}
.dd__menu a::after{content:'→';color:var(--blue-ink);opacity:0;transform:translateX(-6px);transition:opacity var(--t-fast),transform var(--t) var(--ease-out)}
.dd__menu a:hover,.dd__menu a:focus-visible{background:#f1f8fd;color:var(--blue-ink);padding-left:16px}
.dd__menu a:hover::after,.dd__menu a:focus-visible::after{opacity:1;transform:none}
.dd__menu a[aria-current="page"]{color:var(--blue-ink);font-weight:700}
@media (min-width:1200px){.dd__menu{display:grid;grid-template-columns:1fr 1fr;column-gap:4px;min-width:600px}}
.hdr__burger{display:none}
@media (max-width:960px){
  .hdr__burger{display:flex;flex-direction:column;justify-content:center;gap:5px;margin-left:auto;cursor:pointer;width:44px;height:44px;padding:10px;background:none;border:0;border-radius:10px}
  .hdr__burger span{width:24px;height:2px;border-radius:2px;background:#fff;display:block;transition:transform .35s var(--ease-out),opacity .2s var(--ease)}
  .nav-open .hdr__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-open .hdr__burger span:nth-child(2){opacity:0;transform:scaleX(.3)}
  .nav-open .hdr__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .hdr__nav{position:absolute;left:0;right:0;top:100%;background:#000;flex-direction:column;align-items:stretch;gap:0;padding:6px 20px 24px;max-height:calc(100svh - 70px);overflow:auto;overscroll-behavior:contain;
    clip-path:inset(0 0 100% 0);opacity:0;visibility:hidden;transition:clip-path .45s var(--ease-out),opacity .25s var(--ease),visibility 0s linear .45s}
  .nav-open .hdr__nav{clip-path:inset(0 0 0 0);opacity:1;visibility:visible;transition:clip-path .45s var(--ease-out),opacity .25s var(--ease),visibility 0s}
  .hdr__nav>*{opacity:0;transform:translateY(-6px);transition:opacity .3s var(--ease),transform .4s var(--ease-out)}
  .nav-open .hdr__nav>*{opacity:1;transform:none}
  .nav-open .hdr__nav>*:nth-child(2){transition-delay:.04s}.nav-open .hdr__nav>*:nth-child(3){transition-delay:.08s}.nav-open .hdr__nav>*:nth-child(4){transition-delay:.12s}.nav-open .hdr__nav>*:nth-child(5){transition-delay:.16s}.nav-open .hdr__nav>*:nth-child(6){transition-delay:.2s}
  .nl{padding:13px 0;font-size:17px;border-bottom:1px solid #1a1d22;width:100%;justify-content:space-between}
  .nl::after{display:none}
  .nl[aria-current="page"]{color:var(--blue)}
  .dd__menu{position:static;min-width:0;background:transparent;box-shadow:none;padding:0 0 0 12px;border-radius:0;transform:none;opacity:1;visibility:visible;
}
  .dd__menu{display:block;max-height:0;overflow:hidden;transition:max-height .45s var(--ease-out)}
  .dd.is-open .dd__menu{max-height:900px}
  .dd__menu::before{display:none}
  .dd__menu a{color:#cfd3d8;padding:10px 0;opacity:1;transform:none;min-height:44px}
  .dd__menu a:hover,.dd__menu a:focus-visible{background:transparent;color:var(--blue);padding-left:6px}
  .hdr__nav>a.hdr__cta{margin-top:18px;align-self:flex-start}
}

/* sections */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.wrap--text{max-width:780px}
.sec{padding:64px 0;position:relative}
.sec--soft{background:var(--soft)}
.sec--dark{background:var(--night);color:#fff}
.sec--dark :where(a){color:var(--blue)}
.sec--bg{background:linear-gradient(rgba(5,8,12,.62),rgba(5,8,12,.62)),var(--bg) center/cover no-repeat}
.sec--code{padding:0}
.sec + .sec:not(.sec--dark):not(.sec--soft):not(.sec--bg):not(.sec--code){padding-top:24px}
.sec__title{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(26px,3vw,36px);margin-bottom:22px}
.page-h1{margin-bottom:12px}
.lead{font-size:19px;color:var(--ink-2);max-width:720px;margin-bottom:32px}
.stack{display:flex;flex-direction:column;gap:18px;max-width:980px;margin:0 auto}
.stack>.b-html{text-align:inherit}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split__col{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (min-width:861px){.split--rev>.split__col:first-child{order:2}}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:28px}.sec{padding:44px 0}}
.b-img img{border-radius:var(--r);width:100%}
.b-img figcaption{font-size:13px;color:var(--mute);margin-top:6px}
.b-btn{margin:0}
.b-code{width:100%}
.b-html :where(h1,h2,h3){margin-top:.2em}
.b-quote{margin:0;border-left:4px solid var(--blue);padding:6px 0 6px 20px;font-size:20px}
.b-quote cite{display:block;font-size:14px;color:var(--mute);font-style:normal;margin-top:8px}
.b-marquee{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0;justify-content:center}
.b-marquee li{background:rgba(255,255,255,.9);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-weight:600;font-size:14px}
.b-acc details,.post__body details{border-bottom:1px solid var(--line);padding:14px 0}
.sec--dark .b-acc details{border-color:#2a2f36}
.b-acc summary,.post__body summary{cursor:pointer;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.b-acc summary::after,.post__body summary::after{content:'+';font-size:22px;line-height:1;color:var(--blue-ink)}
.b-acc details[open] summary::after,.post__body details[open] summary::after{content:'–'}
.b-acc details>div{padding-top:10px;color:var(--ink-2)}
.sec--dark .b-acc details>div{color:#c9ced5}

/* gallery + lists */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:14px}
.gallery figcaption{font-size:14px;font-weight:600;margin-top:8px}
.ulist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.ulist__item{background:var(--soft);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:10px}
.sec--dark .ulist__item{background:#12161b}
.ulist__item img{border-radius:12px;max-height:120px;width:auto;object-fit:contain}
.ulist__item h3{margin:0;font-size:19px}
.ulist__item .btn{align-self:flex-start;margin-top:auto}

/* cards (posts) */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 14px 20px;transition:box-shadow .2s,transform .2s}
.card:hover{box-shadow:0 14px 34px rgba(0,0,0,.08);transform:translateY(-2px)}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px}
.card strong{font-size:18px;line-height:1.3}
.card__date{font-size:12.5px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.card__ex{font-size:14.5px;color:var(--ink-2)}

/* blog post */
.post__head{padding-top:48px;max-width:780px}
.crumbs{font-size:13.5px;color:var(--mute);margin-bottom:14px}.crumbs a{color:var(--mute)}
.post__cat a{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;text-decoration:none}
.post__meta{color:var(--mute);font-size:15px}
.post__body{padding-top:12px;padding-bottom:20px;font-size:18px;line-height:1.75}
.post__body :where(h2){font-size:28px;margin-top:1.6em}
.post__body :where(h3){font-size:22px;margin-top:1.4em}
.post__body :where(figure){margin:1.6em 0}
.post__body :where(figure img){border-radius:14px}
.post__body :where(figcaption){font-size:14px;color:var(--mute);margin-top:6px}
.post__body :where(blockquote){margin:1.4em 0;border-left:4px solid var(--blue);padding-left:18px;color:var(--ink-2)}
.post__body :where(li){margin-bottom:.4em}
.post__body :where(table){display:block;overflow-x:auto}
.post__author{background:var(--soft);border-radius:var(--r);padding:20px 22px;margin:20px auto;font-size:15.5px}
.post__author p{margin:6px 0 0;color:var(--ink-2)}
.post__author a{overflow-wrap:anywhere}
.post__pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-bottom:32px}
.post__pager a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.post__pager a span{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.post__pager a strong{font-size:15.5px;line-height:1.35}
.post__pager-next{text-align:right}
@media (max-width:560px){.post__pager{grid-template-columns:1fr}.post__pager-next{text-align:left}}
.post__tags{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:40px}
.post__tags a{font-size:12.5px;background:var(--soft);color:var(--ink-2);text-decoration:none;padding:4px 10px;border-radius:999px}

/* form */
.cform{display:flex;flex-direction:column;gap:14px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:24px;width:100%;max-width:620px}
.cform h3{margin:0}
.cform label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.cform input,.cform textarea{font:inherit;font-size:16px;font-weight:400;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;width:100%}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--blue)}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.cform__row{grid-template-columns:1fr}}
.cform .btn{align-self:flex-start;background:var(--ink);color:#fff}
.cform__msg{margin:0;font-weight:600;color:var(--blue-ink)}
.hp{display:none}

/* footer */
.ftr{background:#000;color:#c9ced5;padding:56px 0 24px;font-size:15px}
.ftr__in{max-width:var(--wrap);margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.ftr h2{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:#fff;margin-bottom:12px}
.ftr ul{list-style:none;padding:0;margin:0}.ftr li{margin-bottom:7px}
.ftr a{color:#c9ced5;text-decoration:none}.ftr a:hover{color:var(--blue)}
.ftr img{height:46px;width:auto;margin-bottom:14px}
.ftr__tag{max-width:320px}
.ftr__copy{max-width:var(--wrap);margin:32px auto 0;padding:18px 20px 0;border-top:1px solid #1d2128;font-size:13px;color:#7d848e}
@media (max-width:860px){.ftr__in{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr__in{grid-template-columns:1fr}}
.band+.band{margin-top:40px}
.imgrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:center}
.stack>.b-img,.stack>a>.b-img{max-width:760px;margin:0 auto}
.split__col .b-img img{max-height:560px;object-fit:cover}
.sec--bright{background:var(--blue);color:#06121a}
.sec--dark .ulist__item{background:#12161b;color:#fff}

/* homepage hero */
.hh{position:relative;overflow:hidden;background:#07111d;color:#fff;padding:88px 0 0}
.hh__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(69,180,234,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(69,180,234,.08) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 30%,transparent 75%)}
.hh__glow{position:absolute;width:720px;height:720px;right:-160px;top:-220px;background:radial-gradient(circle,rgba(69,180,234,.28),transparent 62%);filter:blur(10px)}
.hh__in{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hh__eyebrow{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:18px}
.hh__eyebrow span{width:28px;height:2px;background:var(--blue)}
.hh h1{color:#fff;font-size:clamp(38px,5vw,64px);line-height:1.04;letter-spacing:-.03em;margin-bottom:20px}
.hh__lead{color:#b8c7d6;font-size:19px;max-width:560px;margin-bottom:30px}
.hh__ctas{display:flex;gap:12px;flex-wrap:wrap}
.hh__stats{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(3,auto);gap:32px;justify-content:start;border-top:1px solid rgba(255,255,255,.1);padding-top:26px}
.hh__stats strong{display:block;font-size:34px;font-weight:800;letter-spacing:-.02em;color:#fff}
.hh__stats span{font-size:13px;color:#8fa3b8}
.hh__card{background:linear-gradient(180deg,rgba(18,33,52,.92),rgba(11,22,36,.92));border:1px solid rgba(69,180,234,.22);border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);padding:18px 18px 20px;backdrop-filter:blur(8px)}
.hh__cardhead{display:flex;align-items:center;gap:6px;padding:2px 4px 14px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:8px}
.hh__dot{width:9px;height:9px;border-radius:50%;background:#2a3b50}
.hh__cardtitle{margin-left:10px;font-size:12.5px;color:#8fa3b8;font-weight:600}
.hh__steps{list-style:none;margin:0;padding:0;position:relative}
.hh__steps li{display:grid;grid-template-columns:22px 1fr auto;gap:14px;align-items:center;padding:13px 6px;position:relative}
.hh__steps li:not(:last-child)::after{content:'';position:absolute;left:16px;top:38px;bottom:-12px;width:2px;background:rgba(69,180,234,.25)}
.hh__steps i{width:22px;height:22px;border-radius:50%;border:2px solid #2f4a66;background:#0b1624;position:relative;z-index:1}
.hh__steps .is-done i{background:var(--blue);border-color:var(--blue)}
.hh__steps .is-done i::after{content:'';position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid #07111d;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.hh__steps .is-active i{border-color:var(--blue);box-shadow:0 0 0 6px rgba(69,180,234,.15)}
.hh__steps .is-active i::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--blue);animation:hhpulse 1.6s ease-in-out infinite}
@keyframes hhpulse{50%{opacity:.35}}
.hh__steps b{display:block;font-size:15.5px;color:#fff}
.hh__steps span{font-size:13px;color:#8fa3b8}
.hh__steps em{font-style:normal;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.06);color:#8fa3b8}
.hh__steps .is-done em{background:rgba(69,180,234,.14);color:var(--blue)}
.hh__steps .is-active em{background:var(--blue);color:#07111d}
.hh__cities{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:14px;border-top:1px solid rgba(255,255,255,.07)}
.hh__cities span{font-size:12px;font-weight:600;color:#b8c7d6;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:4px 10px}
.hh__cities .more{color:var(--blue);border-color:rgba(69,180,234,.3)}
.hh__services{position:relative;display:grid;grid-template-columns:repeat(6,1fr);margin-top:0;border-top:1px solid rgba(255,255,255,.1)}
.hh__services a{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#dce6f0;text-decoration:none;font-weight:600;font-size:14.5px;padding:22px 16px;border-right:1px solid rgba(255,255,255,.08);transition:background .15s,color .15s}
.hh__services a:first-child{padding-left:0}.hh__services a:last-child{border-right:0}
.hh__services a span{color:var(--blue);transition:transform .15s}
.hh__services a:hover{color:#fff}.hh__services a:hover span{transform:translateX(3px)}
.btn--blue{background:var(--blue);color:#06121a}.btn--blue:hover{background:#6cc5f0;color:#06121a}
.btn--outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}.btn--outline:hover{background:rgba(255,255,255,.08)}
@media (max-width:1000px){.hh__in{grid-template-columns:1fr;gap:40px}.hh__services{grid-template-columns:repeat(3,1fr)}.hh__services a:nth-child(3n){border-right:0}.hh__services a:nth-child(4){padding-left:0}.hh__services a:nth-child(n+4){border-top:1px solid rgba(255,255,255,.08)}}
@media (max-width:560px){.hh{padding-top:52px}.hh__stats{grid-template-columns:repeat(3,1fr);gap:14px}.hh__stats strong{font-size:24px}.hh__services{grid-template-columns:1fr 1fr;margin-top:48px}.hh__services a{padding:16px 12px 16px 0!important;border-right:0!important;border-top:1px solid rgba(255,255,255,.08)}.hh__steps em{display:none}}

/* client logos */
.clients__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.clients__grid li{background:#fff;border:1px solid var(--line);border-radius:16px;height:120px;display:flex;align-items:center;justify-content:center;padding:22px}
.clients__grid img{max-height:64px;max-width:100%;width:auto;object-fit:contain}
@media (max-width:860px){.clients__grid{grid-template-columns:repeat(2,1fr)}.clients__grid li:last-child{grid-column:1/-1}}

/* footer affiliations */
.ftr__aff{max-width:var(--wrap);margin:40px auto 0;padding:28px 20px 0;border-top:1px solid #1d2128}
.ftr__aff ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ftr__aff li{background:#fff;border-radius:14px;height:96px;display:flex;align-items:center;justify-content:center;padding:16px 20px}
.ftr__aff img{max-height:60px;max-width:100%;width:auto;height:auto;object-fit:contain}
.ftr__aff + .ftr__copy{margin-top:28px}
@media (max-width:700px){.ftr__aff ul{grid-template-columns:1fr 1fr}.ftr__aff li{height:84px}}


/* ===================== polish: motion + interaction ===================== */
/* text links in content: animated underline */
:where(.b-html,.post__body,.ulist__item,.b-acc) a:not(.btn){text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;text-decoration-color:rgba(22,118,173,.35);transition:text-decoration-color var(--t) var(--ease),color var(--t-fast)}
:where(.b-html,.post__body,.ulist__item,.b-acc) a:not(.btn):hover{text-decoration-color:currentColor}

/* cards */
.card{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color var(--t) var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -18px rgba(11,13,16,.28);border-color:#d6e9f5}
.card img{transition:transform .7s var(--ease-out),filter .5s var(--ease)}
.card:hover img{transform:scale(1.035)}
.card{overflow:hidden}
.card strong{transition:color var(--t-fast)}
.card:hover strong{color:var(--blue-ink)}
.ulist__item{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
.ulist__item:hover{transform:translateY(-3px);box-shadow:0 18px 40px -20px rgba(11,13,16,.3)}
.gallery figure{overflow:hidden;border-radius:14px}
.gallery img{transition:transform .8s var(--ease-out)}
.gallery figure:hover img{transform:scale(1.04)}
.b-img img,.split__col .b-img img{transition:transform .8s var(--ease-out)}
a:hover>.b-img img{transform:scale(1.02)}
.clients__grid li{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color var(--t)}
.clients__grid li:hover{transform:translateY(-3px);box-shadow:0 16px 34px -18px rgba(11,13,16,.3);border-color:#d6e9f5}
.clients__grid img{filter:grayscale(.15);transition:filter var(--t) var(--ease),transform .5s var(--ease-out)}
.clients__grid li:hover img{filter:none;transform:scale(1.04)}
.post__tags a{transition:background-color var(--t-fast),color var(--t-fast)}
.post__tags a:hover{background:#e3f2fb;color:var(--blue-ink)}

/* accordions */
.b-acc summary,.post__body summary{padding:4px 0;border-radius:8px;transition:color var(--t-fast)}
.b-acc summary:hover,.post__body summary:hover{color:var(--blue-ink)}
.b-acc summary::-webkit-details-marker,.post__body summary::-webkit-details-marker{display:none}
.b-acc summary::after,.post__body summary::after{content:'';flex-shrink:0;width:22px;height:22px;border-radius:50%;
  background:var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%231676ad' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;
  transition:transform .4s var(--ease-out),background-color var(--t)}
.b-acc details[open]:not(.is-closing) summary::after,.post__body details[open]:not(.is-closing) summary::after{content:'';transform:rotate(180deg);background-color:#e3f2fb}
.sec--dark .b-acc summary::after{background-color:#1a222c}
.det__body{overflow:hidden;transition:height .42s var(--ease-out),opacity .3s var(--ease)}
.det__body>div{padding-top:10px}

/* forms */
.cform input,.cform textarea{transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),background-color var(--t)}
.cform input:hover,.cform textarea:hover{border-color:#cfd4da}
.cform input:focus,.cform textarea:focus{box-shadow:0 0 0 4px rgba(69,180,234,.16)}
.cform__msg:not([hidden]){animation:rvIn .4s var(--ease-out) both}

/* footer */
.ftr a{transition:color var(--t-fast) var(--ease)}
.ftr li a{display:inline-block;transition:color var(--t-fast),transform var(--t) var(--ease-out)}
.ftr li a:hover{transform:translateX(3px)}
.ftr__aff li{transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
.ftr__aff li:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(69,180,234,.5)}

/* scroll reveal (added by site.js only for below-the-fold elements) */
.rv{opacity:0;transform:translateY(18px)}
.rv.is-in{opacity:1;transform:none;transition:opacity .7s var(--ease) var(--rv-d,0ms),transform .9s var(--ease-out) var(--rv-d,0ms)}
@keyframes rvIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ===================== responsive + a11y fixes ===================== */
html,body{overflow-x:clip}
.ftr a,.post__body,.b-html,.cform{overflow-wrap:anywhere}
.post__body :where(p,li){overflow-wrap:break-word}
.tablewrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1em 0;border-radius:10px}
.tablewrap>table{margin:0;min-width:520px}
.tablewrap:focus-visible{outline-offset:2px}
@media (max-width:700px){.b-code table{display:block;max-width:100%;overflow-x:auto}}
.b-code img,.b-code iframe,.b-code video{max-width:100%}
/* contrast fixes inside migrated code blocks */
.sbl-section-lead{color:#5f6368!important}
.sbl-section-alt .sbl-section-lead{color:#b4b9c0!important}
.post__body a[style*="6fb8e5"]{color:var(--blue-ink)!important}
.ulist__item .ulist__h{margin:0;font-size:19px}
.rhc-fine{color:#5c6b7b!important}
/* touch targets */
@media (pointer:coarse){.ftr li a,.crumbs a,.post__tags a{display:inline-block;padding-top:6px;padding-bottom:6px}.ftr li{margin-bottom:2px}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .rv{opacity:1;transform:none}
}

/* ===================== hero blueprint animation ===================== */
.hh{isolation:isolate}
.hh__in,.hh__services{z-index:1}
.bp{position:relative;z-index:0;display:block;width:100%;height:220px;margin-top:56px;color:#45b4ea;pointer-events:none}
.bp .d{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;--o:.38;opacity:var(--o);
  stroke-dasharray:1;stroke-dashoffset:1;animation:bpDraw 16s var(--ease-out) var(--d,0s) infinite}
.bp .faint{--o:.2;stroke-width:1}
.bp .hi{--o:.6;stroke-width:1.6}
.bp .dim{--o:.32;stroke-width:1}
.bp .pl{--o:.3}
.bp .foot{--o:.3;stroke-width:1.2}
.bp .t{font:600 10.5px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;fill:#7fa7c6;opacity:0;animation:bpText 16s var(--ease) var(--d,0s) infinite}
.bp .dot{fill:currentColor;opacity:0;animation:bpText 16s var(--ease) var(--d,0s) infinite}
.bp .letters{font:800 30px/1 'Manrope',sans-serif;letter-spacing:.2em;fill:#45b4ea;fill-opacity:0;stroke:#45b4ea;stroke-width:1.2;stroke-opacity:.6;
  stroke-dasharray:260;stroke-dashoffset:260;animation:bpLetters 16s var(--ease-out) 2.6s infinite}
.bp .wind path{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.35;stroke-dasharray:14 10;animation:bpWind 2.4s linear infinite}
.bp .wind path:nth-child(2){animation-duration:3s}.bp .wind path:nth-child(3){animation-duration:2.7s}
.bp .reg{fill:none;stroke:currentColor;stroke-width:1;opacity:.3;transform-origin:1380px 60px;animation:bpSpin 24s linear infinite}
.bp .scan{opacity:.0;animation:bpScan 16s var(--ease) 1s infinite}
@keyframes bpDraw{0%{stroke-dashoffset:1}22%{stroke-dashoffset:0}88%{stroke-dashoffset:0;opacity:var(--o)}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes bpText{0%,12%{opacity:0}20%,86%{opacity:.85}95%,100%{opacity:0}}
@keyframes bpLetters{0%{stroke-dashoffset:260;fill-opacity:0}18%{stroke-dashoffset:0;fill-opacity:0}24%{fill-opacity:.0}27%{fill-opacity:.55;filter:drop-shadow(0 0 10px rgba(69,180,234,.8))}29%{fill-opacity:.15}31%,84%{fill-opacity:.5;filter:drop-shadow(0 0 8px rgba(69,180,234,.55))}94%,100%{fill-opacity:0;stroke-dashoffset:0;filter:none}}
@keyframes bpWind{to{stroke-dashoffset:-48}}
@keyframes bpSpin{to{transform:rotate(360deg)}}
@keyframes bpScan{0%{transform:translateX(0) translateY(-26px);opacity:0}6%{opacity:.35}30%{transform:translateY(190px);opacity:.25}34%,100%{transform:translateY(190px);opacity:0}}
@media (max-width:1000px){.bp{margin-top:40px;height:190px}}
@media (max-width:560px){.bp{height:160px;margin-top:32px}}
main .post__body .rhc-blog{--accent:#12608f}
main .post__body .rhc-blog .blog-tag{color:#fff!important}
.sbl-cta-banner p{color:rgba(0,0,0,.8)!important}
main .post__body .rhc-blog .blog-cta-card a.blog-btn:not(.blog-btn-outline){color:#fff!important}

/* Custom service pages (.rhc-sbl): plain sections use white headings, so give them the dark band too (full width).
   On Squarespace these headings were white on light grey and could not be read. */
.rhc-sbl > .sbl-section{background:var(--ink,#000);box-shadow:0 0 0 100vmax var(--ink,#000);clip-path:inset(0 -100vmax)}
/* Long text lines in the custom service pages: keep paragraphs readable */
.rhc-sbl .sbl-phase-body p,.rhc-sbl .sbl-phase-body ul,.rhc-sbl .sbl-accordion-content{max-width:860px}
/* Sign Code Checks page: side padding so text does not touch the screen edge */
.rhc-scc{padding-left:20px;padding-right:20px;padding-bottom:48px}
/* Post author box: inset on phones */
@media (max-width:820px){.post__author{margin-left:16px;margin-right:16px}}
/* Text cover art at the top of Markdown permit guides */
.post__cover{margin:8px auto 4px}
.post__cover img{display:block;width:100%;height:auto;border-radius:14px}
