:root{--paper:#f4f1e9;--paper-2:#e9e5da;--ink:#151713;--muted:#65675f;--blue:#1f5cff;--line:rgba(21,23,19,.16);--green:#1f9d62;--container:min(1240px,calc(100% - 48px))}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Manrope",sans-serif;overflow-x:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.skip-link{position:fixed;top:-50px;left:20px;z-index:100;background:var(--ink);color:#fff;padding:12px}.skip-link:focus{top:20px}a{color:inherit;text-decoration:none}button,input{font:inherit}:focus-visible{outline:3px solid #f3a51b;outline-offset:4px}.site-header{width:var(--container);height:86px;margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;z-index:30;position:relative}.brand{display:inline-flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;letter-spacing:-.04em}.brand img{width:23px;height:32px;object-fit:contain}.desktop-nav{display:flex;gap:28px;font-size:.82rem;font-weight:600}.desktop-nav a:hover,.desktop-nav .active{color:var(--blue)}.nav-actions{display:flex;justify-content:flex-end;align-items:center;gap:20px;font-size:.82rem;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--blue);color:#fff;border:1px solid var(--blue);padding:15px 20px;font-size:.82rem;font-weight:700;transition:.2s}.button-small{padding:11px 16px}.button:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(31,92,255,.22)}.button:active{transform:scale(.97)}.button-light{background:#fff;color:var(--ink);border-color:#fff}.menu-button,.mobile-menu{display:none}.masthead{width:var(--container);margin:auto;padding:65px 0 100px}.directory-line{display:flex;justify-content:space-between;border-block:1px solid var(--ink);padding:12px 0;font:500 .6rem "DM Mono",monospace;letter-spacing:.08em}.masthead-grid{display:grid;grid-template-columns:1fr 2.2fr;gap:7%;align-items:end;padding:70px 0}.eyebrow,.popular header>span,.catalog header span,.request-service>div>span{font:500 .62rem "DM Mono",monospace;color:var(--blue)}.masthead-grid>div p{max-width:320px;color:var(--muted);font-size:.82rem;line-height:1.7;margin-top:28px}h1,h2,h3{font-family:"Newsreader",serif;font-weight:600;letter-spacing:-.055em;margin:0;text-wrap:balance}.masthead h1{font-size:clamp(4.8rem,9vw,9.2rem);line-height:.79}.masthead h1 em,h2 em{color:var(--blue);font-weight:500}.search-shell{margin-left:31%;max-width:850px}.search-shell label{display:block;font:500 .6rem "DM Mono",monospace;margin-bottom:10px}.search-shell>div{height:70px;border:2px solid var(--ink);display:grid;grid-template-columns:auto 1fr auto;align-items:center;background:#fff;padding:0 18px;box-shadow:10px 10px 0 var(--paper-2)}.search-shell>div>span{font-size:1.5rem}.search-shell input{border:0;outline:0;background:transparent;padding:0 15px;font-size:1rem;min-width:0}.search-shell kbd{font:500 .6rem "DM Mono",monospace;border:1px solid var(--line);padding:7px}.popular{background:var(--ink);color:#fff;padding:120px max(24px,calc((100% - 1240px)/2))}.popular header{display:grid;grid-template-columns:1fr 2fr;gap:7%;margin-bottom:70px}.popular h2,.catalog h2,.request-service h2{font-size:clamp(3.5rem,6vw,6.5rem);line-height:.84}.popular-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.28);border-left:1px solid rgba(255,255,255,.28)}.popular-grid article{min-height:390px;padding:25px;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28);transition:.25s}.popular-grid article:hover{background:#1d201b;transform:translateY(-6px)}.popular-grid article>span{align-self:flex-end;font:500 .6rem "DM Mono",monospace;color:#777c73}.service-icon{width:48px;height:48px;display:grid;place-items:center;font-style:normal;font-weight:800;border-radius:12px;margin-bottom:auto}.wa{background:#173b2c;color:#67dc9f}.ig{background:#432837;color:#f49ac9}.tg{background:#16354d;color:#74c8ff}.go{background:#3b3020;color:#ffca75}.popular-grid h3{font-size:2rem;margin:0 0 10px}.popular-grid p{font-size:.7rem;color:#8e938a}.popular-grid strong{font:500 .72rem "DM Mono",monospace;margin:10px 0 25px}.popular-grid a{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.25);padding-top:16px;color:#e5ff44;font-size:.7rem;font-weight:700}.catalog{width:var(--container);margin:auto;padding:150px 0}.catalog>header{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:55px}.catalog>header p{text-align:right;font:500 .68rem/1.7 "DM Mono",monospace}.catalog>header p b{font-size:1.3rem;color:var(--blue)}.catalog>header small{color:var(--muted)}.filter-bar{display:flex;gap:7px;overflow-x:auto;padding:0 0 18px}.filter-bar button{flex:none;border:1px solid var(--line);background:transparent;padding:10px 14px;font:500 .61rem "DM Mono",monospace;cursor:pointer}.filter-bar button:hover,.filter-bar button.active{background:var(--blue);border-color:var(--blue);color:#fff}.catalog-head,.service-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 40px;gap:20px;align-items:center}.catalog-head{height:48px;border-block:2px solid var(--ink);font:500 .57rem "DM Mono",monospace;color:var(--muted)}.service-row{min-height:72px;border-bottom:1px solid var(--line);transition:padding .2s,background .2s}.service-row:hover{padding-left:14px;background:rgba(255,255,255,.35)}.service-name{display:flex;align-items:center;gap:14px}.service-monogram{width:35px;height:35px;display:grid;place-items:center;background:var(--paper-2);font-weight:800;font-size:.72rem}.service-name strong{font-size:.86rem}.service-row>span{font-size:.72rem;color:var(--muted)}.service-status{font:500 .58rem "DM Mono",monospace!important;color:var(--green)!important}.service-status:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:7px}.service-row>a{color:var(--blue);font-size:1rem;text-align:right}.catalog-note{max-width:740px;color:var(--muted);font:400 .6rem/1.7 "DM Mono",monospace;margin:25px 0 0}.empty-state{text-align:center;padding:80px;border-bottom:1px solid var(--line)}.empty-state strong{font:600 2rem "Newsreader",serif}.empty-state p{color:var(--muted)}.empty-state button{border:0;background:var(--ink);color:#fff;padding:12px 16px;cursor:pointer}.request-service{background:var(--blue);color:#fff;padding:110px max(24px,calc((100% - 1240px)/2));display:grid;grid-template-columns:1.4fr .6fr;gap:10%;align-items:end}.request-service>div>span{color:#e5ff44}.request-service h2{margin-top:25px}.request-service p{color:rgba(255,255,255,.7);font-size:.83rem;line-height:1.7;margin-bottom:28px}footer{background:#10120f;color:#fff;padding:80px max(24px,calc((100% - 1240px)/2)) 25px}.footer-main{display:grid;grid-template-columns:1.3fr 1fr;gap:12%;padding-bottom:80px}.footer-brand p{max-width:350px;color:rgba(255,255,255,.5);font-size:.78rem;line-height:1.7;margin-top:25px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.footer-links div{display:flex;flex-direction:column;gap:13px}.footer-links b{font:500 .6rem "DM Mono",monospace;color:#e5ff44;margin-bottom:10px}.footer-links a{font-size:.75rem;color:rgba(255,255,255,.62)}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:24px;display:flex;justify-content:space-between;font:400 .56rem "DM Mono",monospace;color:rgba(255,255,255,.45)}.footer-bottom strong{color:#fff;font-weight:400}@media(max-width:900px){:root{--container:calc(100% - 34px)}.desktop-nav,.nav-actions .login,.nav-actions .button{display:none}.site-header{height:72px;grid-template-columns:1fr auto}.menu-button{display:flex;width:42px;height:42px;border:1px solid var(--line);background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:6px}.menu-button span{width:17px;height:1.5px;background:var(--ink);transition:.25s}.menu-button.active span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-button.active span:last-child{transform:translateY(-3.75px) rotate(-45deg)}.mobile-menu{display:flex;position:fixed;z-index:25;inset:72px 0 auto;background:var(--paper);border-bottom:1px solid var(--line);padding:20px 17px 30px;flex-direction:column;transform:translateY(-120%);transition:.3s}.mobile-menu.open{transform:none}.mobile-menu a{padding:14px;border-bottom:1px solid var(--line);font-weight:600}.masthead-grid{grid-template-columns:1fr}.masthead-grid>div{margin-bottom:30px}.search-shell{margin-left:0}.popular header{grid-template-columns:1fr}.popular h2{margin-top:25px}.popular-grid{grid-template-columns:1fr 1fr}.request-service{grid-template-columns:1fr}.request-service>div:last-child{margin-top:40px}.footer-main{grid-template-columns:1fr}.footer-links{margin-top:50px}}@media(max-width:620px){.masthead{padding-top:45px}.directory-line span:last-child{display:none}.masthead h1{font-size:4.5rem}.search-shell>div{height:60px}.search-shell kbd{display:none}.popular{padding-block:90px}.popular-grid{grid-template-columns:1fr}.popular-grid article{min-height:310px}.catalog{padding:100px 0}.catalog-head{display:none}.service-row{grid-template-columns:1fr auto;gap:8px;padding:16px 0}.service-row>span:not(.service-status){display:none}.service-status{grid-column:1}.service-row>a{grid-column:2;grid-row:1/3}.catalog>header{grid-template-columns:1fr}.catalog>header p{text-align:left;margin-top:25px}.request-service{padding-block:80px}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column;gap:12px}.footer-bottom strong{order:-1}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(prefers-contrast:more){:root{--muted:#3f413b;--line:rgba(21,23,19,.4)}}
.catalog-head,.service-row{grid-template-columns:46px 105px 2fr 1fr 1fr 1fr 40px;gap:18px}.service-serial,.service-id{font:500 .58rem "DM Mono",monospace!important}.service-serial{color:var(--blue)!important}.service-id{color:var(--ink)!important}@media(max-width:620px){.service-row{grid-template-columns:42px 1fr auto}.service-id{grid-column:2;grid-row:2}.service-name{grid-column:2;grid-row:1}.service-status{grid-column:2;grid-row:3}.service-row>a{grid-column:3;grid-row:1/4}.service-row>span:not(.service-status):not(.service-serial):not(.service-id){display:none}}
main{display:flex;flex-direction:column}.masthead{order:1;padding-bottom:55px}.catalog{order:2;padding-top:45px}.popular{order:3}.request-service{order:4}.table-shell{border-top:2px solid var(--ink);max-height:720px;overflow:auto;background:rgba(255,255,255,.2)}table{width:100%;border-collapse:collapse;text-align:left}thead{z-index:2}th{height:50px;border-bottom:2px solid var(--ink);font:500 .58rem "DM Mono",monospace;color:var(--muted)}th:first-child,td:first-child{width:190px;padding-left:18px}td{height:68px;border-bottom:1px solid var(--line)}.service-id{font:500 .63rem "DM Mono",monospace!important;color:var(--blue)!important}.service-name{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:14px;padding-right:18px}.service-name span{color:var(--blue);font-size:1rem}.service-list tr{transition:background .2s}.service-list tr:hover{background:rgba(255,255,255,.55)}.catalog-head,.service-row{display:none}@media(max-width:620px){.catalog{padding-top:30px}.table-shell{max-height:620px}th:first-child,td:first-child{width:125px;padding-left:8px}.service-id{font-size:.52rem!important}.service-name{grid-template-columns:32px 1fr auto;gap:9px}.service-monogram{width:32px;height:32px}}

/* Real brand logos. services.icon supplies a logo per service; these slots were
   drawn for a single letter, so the image is centred and contained inside the
   existing chip rather than resized to fill it. Explicit width/height on the
   <img> keeps the row from shifting as logos load. */
.service-monogram.has-logo{display:grid;place-items:center;background:#fff;overflow:hidden}
.service-monogram.has-logo img{width:20px;height:20px;object-fit:contain;display:block}
.service-icon.has-logo{display:grid;place-items:center;overflow:hidden}
.service-icon.has-logo img{width:60%;height:60%;object-fit:contain;display:block}

/* Sticky directory header.
   It was `thead{position:sticky;background:var(--paper)}`. A row-group
   background paints BELOW cell content, so the header tinted correctly but
   scrolled rows drew their text straight over it — the "Service / Available in
   / From" bar and the first row appeared on top of one another. Stickying the
   th cells fixes it: a cell background paints above row content. */
thead th{position:sticky;top:0;z-index:3;background:var(--paper)}

/* The row-group border does not travel with sticky cells either, so the rule
   under the header goes on the cells. */
thead th{border-bottom:2px solid var(--ink)}

/* Long country counts ("108 countries") wrapped onto two lines and pushed the
   price column out of the viewport. Keep those two columns on one line and let
   the service name take the slack instead. */
@media(max-width:620px){
  .table-shell td:nth-child(2),
  .table-shell td:nth-child(3),
  .table-shell th:nth-child(2),
  .table-shell th:nth-child(3){white-space:nowrap}
  .table-shell td:first-child,
  .table-shell th:first-child{width:auto;min-width:0}
  .service-name b,.service-name strong{overflow:hidden;text-overflow:ellipsis}
}
