/* ScopeX — Infrastructure & Extras v3.
   Owns the body sections on /infrastructure-extras/. Pairs with industry-v3.css
   for the shared hero. Nothing here leaks to other pages: everything is under .ifx */

.ifx{
  --blue:#2059e9; --deep:#1a47c4; --mid:#6f9bf5; --soft:#c8d9f7; --tint:#eef3fc;
  --navy:#0d1d36; --ink:#101d35; --body:#51617c; --line:#e4ebf6; --good:#1d9e75;
  --disp:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif;
  --sans:'Geist',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-family:var(--sans);color:var(--ink);
}
.ifx *{box-sizing:border-box;}
.ifx__wrap{max-width:1160px;margin:0 auto;padding:0 24px;}

.ifx-s{padding:88px 0;background:#fff;}
.ifx-s--tint{background:var(--tint);}
.ifx-s--navy{background:var(--navy);color:#fff;}

.ifx-head{max-width:760px;margin:0 0 46px;}
.ifx-head--mid{margin-left:auto;margin-right:auto;text-align:center;}
.ifx-eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;
  font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);
  background:var(--tint);border-radius:99px;padding:8px 15px;margin:0 0 16px;
}
.ifx-s--navy .ifx-eyebrow{background:rgba(255,255,255,.1);color:var(--mid);}
.ifx-h2{
  font-family:var(--disp)!important;font-size:clamp(30px,3.9vw,45px)!important;font-weight:800!important;
  line-height:1.1!important;letter-spacing:-.03em;color:var(--ink)!important;margin:0 0 14px!important;
  border:0!important;text-transform:none!important;
}
.ifx-s--navy .ifx-h2{color:#fff!important;}
.ifx-h2 em{font-style:normal;color:var(--blue);display:block;}
.ifx-s--navy .ifx-h2 em{color:var(--mid);}
.ifx-lead{font-size:17px;line-height:1.7;color:var(--body);margin:0;}
.ifx-s--navy .ifx-lead{color:#aebdd4;}

/* ---------------------------------------------------- capability grid */
.ifx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.ifx-card{
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 26px 26px;
  box-shadow:0 14px 34px rgba(13,29,54,.05);transition:transform .2s,box-shadow .2s,border-color .2s;
}
.ifx-card:hover{transform:translateY(-3px);border-color:var(--soft);box-shadow:0 22px 48px rgba(13,29,54,.1);}
.ifx-card__ic{
  width:46px;height:46px;border-radius:14px;background:var(--tint);color:var(--blue);
  display:grid;place-items:center;margin:0 0 18px;
}
.ifx-card h3{
  font-family:var(--disp)!important;font-size:19px!important;font-weight:800!important;
  letter-spacing:-.02em;color:var(--ink)!important;margin:0 0 9px!important;border:0!important;
}
.ifx-card p{font-size:14.8px;line-height:1.65;color:var(--body);margin:0;}
.ifx-card p strong{color:var(--ink);font-weight:600;}

/* ---------------------------------------------------------- tier cards */
.ifx-tiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start;}
.ifx-tier{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;
  padding:32px 30px 30px;box-shadow:0 18px 44px rgba(13,29,54,.07);
  display:flex;flex-direction:column;height:100%;
}
.ifx-tier--hl{border-color:var(--blue);box-shadow:0 26px 60px rgba(32,89,233,.16);}
.ifx-tier__badge{
  position:absolute;top:-13px;left:30px;background:var(--blue);color:#fff;
  font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;padding:7px 14px;border-radius:99px;
  box-shadow:0 8px 20px rgba(32,89,233,.3);
}
.ifx-tier h3{
  font-family:var(--disp)!important;font-size:25px!important;font-weight:800!important;
  letter-spacing:-.025em;color:var(--ink)!important;margin:0 0 6px!important;border:0!important;
}
.ifx-tier__sub{font-size:14.5px;line-height:1.55;color:var(--body);margin:0 0 20px;}
.ifx-tier__price{display:flex;align-items:baseline;gap:4px;margin:0 0 4px;}
.ifx-tier__price b{font-family:var(--disp);font-size:46px;font-weight:800;letter-spacing:-.03em;color:var(--ink);}
.ifx-tier__price span{font-family:var(--disp);font-size:19px;font-weight:700;color:var(--body);}
.ifx-tier__note{font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:#8494ab;margin:0 0 22px;}

.ifx-feat{list-style:none!important;margin:0 0 22px!important;padding:0!important;display:block!important;}
.ifx-feat li{
  position:relative;list-style:none!important;margin:0 0 13px!important;padding:0 0 0 30px!important;
  font-size:14.6px;line-height:1.6;color:var(--body);background:none!important;border:0!important;
  border-radius:0!important;box-shadow:none!important;
}
.ifx-feat li::before{
  content:"";position:absolute;left:0;top:3px;width:19px;height:19px;border-radius:50%;
  background:var(--tint);
}
.ifx-feat li::after{
  content:"";position:absolute;left:5.5px;top:9px;width:7px;height:3.5px;
  border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg);
}
.ifx-feat li b{color:var(--ink);font-weight:600;}

.ifx-best{
  background:var(--tint);border-radius:14px;padding:15px 17px;margin:auto 0 20px;
  font-size:14px;line-height:1.6;color:#33405a;
}
.ifx-best b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--blue);margin:0 0 5px;}

.ifx-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  border-radius:99px;padding:15px 26px;font-family:var(--sans);font-size:15.5px;font-weight:600;
  text-decoration:none;transition:background .2s,transform .2s,border-color .2s;
}
.ifx-btn--p{background:var(--blue);color:#fff!important;border:0;box-shadow:0 14px 30px rgba(32,89,233,.26);}
.ifx-btn--p:hover{background:var(--deep);transform:translateY(-2px);}
.ifx-btn--s{background:#fff;color:var(--ink)!important;border:1px solid var(--line);}
.ifx-btn--s:hover{border-color:var(--blue);transform:translateY(-2px);}

/* ------------------------------------------------------------- table */
.ifx-tablewrap{
  background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;
  box-shadow:0 18px 44px rgba(13,29,54,.06);
}
.ifx-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ifx-table{width:100%;border-collapse:collapse;min-width:640px;margin:0!important;}
.ifx-table th{
  background:var(--navy);color:#fff;text-align:left;font-family:var(--mono);font-size:11.5px;
  font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:16px 22px;border:0;
}
.ifx-table td{
  padding:17px 22px;border-top:1px solid var(--line);font-size:14.6px;line-height:1.6;
  color:var(--body);vertical-align:top;background:#fff;
}
.ifx-table tr td:first-child{font-weight:600;color:var(--ink);white-space:nowrap;}
.ifx-table tr td:nth-child(2){font-family:var(--mono);font-size:13.5px;color:var(--blue);white-space:nowrap;}
.ifx-table tbody tr:hover td{background:#fbfcff;}
.ifx-hint{
  display:none;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:#8494ab;
  padding:11px 22px;border-top:1px solid var(--line);background:var(--tint);
}
.ifx-note{
  margin:22px 0 0;padding:18px 22px;background:var(--tint);border-left:3px solid var(--blue);
  border-radius:0 14px 14px 0;font-size:14.3px;line-height:1.7;color:#33405a;
}
.ifx-note b{color:var(--ink);font-weight:600;}


/* two-column variant of the a-la-carte table (no price column) */
.ifx-table--2{min-width:520px;}
.ifx-table--2 tr td:first-child{width:31%;white-space:normal;}
.ifx-table--2 tr td:nth-child(2){font-family:var(--sans);font-size:14.6px;color:var(--body);white-space:normal;}

/* --------------------------------------------------- mascot split band */
.ifx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:56px;align-items:center;}
.ifx-split__art{position:relative;display:flex;justify-content:center;}
.ifx-split__art img{width:100%;max-width:400px;height:auto;display:block;position:relative;z-index:2;}
.ifx-split__disc{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-46%);
  width:min(400px,96%);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,rgba(111,155,245,.30),rgba(32,89,233,0) 68%);
  z-index:1;
}
.ifx-points{list-style:none!important;margin:26px 0 0!important;padding:0!important;display:block!important;}
.ifx-points li{
  position:relative;list-style:none!important;margin:0 0 16px!important;padding:0 0 0 34px!important;
  font-size:15.4px;line-height:1.65;color:#aebdd4;background:none!important;border:0!important;
  border-radius:0!important;box-shadow:none!important;
}
.ifx-points li b{display:block;color:#fff;font-weight:600;font-size:16px;margin:0 0 3px;}
.ifx-points li::before{
  content:"";position:absolute;left:0;top:3px;width:21px;height:21px;border-radius:50%;
  background:rgba(111,155,245,.22);
}
.ifx-points li::after{
  content:"";position:absolute;left:6px;top:10px;width:8px;height:4px;
  border-left:2px solid var(--mid);border-bottom:2px solid var(--mid);transform:rotate(-45deg);
}

/* --------------------------------------------------------------- FAQ */
.ifx-faq{max-width:820px;margin:0 auto;}
.ifx-q{
  background:#fff;border:1px solid var(--line);border-radius:15px;margin:0 0 12px;
  overflow:hidden;transition:border-color .2s,box-shadow .2s;
}
.ifx-q[open]{border-color:var(--soft);box-shadow:0 14px 34px rgba(13,29,54,.07);}
.ifx-q summary{
  cursor:pointer;list-style:none;padding:20px 54px 20px 24px;position:relative;
  font-family:var(--disp);font-size:17.5px;font-weight:700;letter-spacing:-.015em;color:var(--ink);
}
.ifx-q summary::-webkit-details-marker{display:none;}
.ifx-q summary::after{
  content:"";position:absolute;right:24px;top:26px;width:9px;height:9px;
  border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);
  transform:rotate(45deg);transition:transform .22s;
}
.ifx-q[open] summary::after{transform:rotate(-135deg);top:30px;}
.ifx-q .a{padding:0 24px 22px;font-size:15px;line-height:1.72;color:var(--body);}
.ifx-q .a strong{color:var(--ink);font-weight:600;}

/* ------------------------------------------------------- responsive */
@media (max-width:1000px){
  .ifx-grid{grid-template-columns:repeat(2,1fr);}
  .ifx-split{grid-template-columns:1fr;gap:38px;}
  .ifx-split__art{order:-1;}
  .ifx-split__art img{max-width:320px;}
}
@media (max-width:760px){
  .ifx-s{padding:60px 0;}
  .ifx__wrap{padding:0 20px;}
  .ifx-grid{grid-template-columns:1fr;}
  .ifx-tiers{grid-template-columns:1fr;gap:30px;}
  .ifx-tier{padding:28px 22px 26px;}
  .ifx-hint{display:block;}
  .ifx-q summary{font-size:16px;padding:18px 46px 18px 20px;}
  .ifx-q .a{padding:0 20px 20px;}
}

/* ---------------------------------------------------------------------------
   Guard for the shared sub-service stylesheet.
   subservice-v3.css turns every <ul> into a two-column card grid, which breaks
   any nested list. Nested lists are never decorative bullet rows, so opt them out.
   Lives here so it loads after subservice-v3.css.
   --------------------------------------------------------------------------- */
.sxsub .sx-sw-richtext ul ul,
.sxsub .sx-sw-richtext li ul{
  display:block!important;grid-template-columns:none!important;gap:0!important;
}
.sxsub .sx-sw-richtext li ul li{
  background:none!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;padding:4px 0 4px 22px!important;
}
/* any table inside sub-service body copy must scroll rather than overflow */
.sxsub .sx-sw-richtext table{display:block;overflow-x:auto;max-width:100%;}
