@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');

:root { --ink: #102744; --muted: #596b7f; --blue: #1264d8; --violet: #6752bf; --line: #d8e2ee; --pale: #f3f7fb; --white: #fff; --radius: 8px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: linear-gradient(180deg, #f9fbfe 0, #fff 32rem); font: 16px/1.65 Manrope, sans-serif; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #89b8ff; outline-offset: 3px; }
.skip { position: absolute; left: -999px; top: 0; padding: .7rem 1rem; background: var(--ink); color: white; z-index: 10; }.skip:focus { left: 1rem; top: 1rem; }
.site-header { min-height: 76px; max-width: 1180px; margin: auto; padding: 12px 24px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand img { display: block; max-width: 164px; max-height: 48px; object-fit: contain; }
nav { display: flex; align-items: center; gap: 1.25rem; font-size: .9rem; font-weight: 600; } nav > a:not(.button) { color: #344357; } nav > a:not(.button):hover, footer a:hover { color: var(--blue); }
.menu-button { display: none; border: 0; background: var(--pale); color: var(--ink); padding: .55rem .75rem; font: inherit; font-weight: 700; border-radius: 4px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; padding: .65rem 1.1rem; border: 1px solid var(--blue); border-radius: 5px; background: var(--blue); color: white; font-weight: 700; transition: transform .2s, background .2s; }.button:hover { background: #0d4fae; transform: translateY(-1px); }.button-small { min-height: 36px; padding: .35rem .75rem; font-size: .85rem; }.button-secondary { color: var(--ink); border-color: #b8c6d7; background: white; }.button-secondary:hover { background: var(--pale); color: var(--ink); }
main > section { max-width: 1180px; margin: 0 auto; padding: 76px 24px; }.hero { display: grid; min-height: 580px; align-items: center; grid-template-columns: 1.05fr .95fr; gap: 4rem; padding-top: 64px; }
.eyebrow { margin: 0 0 .75rem; color: var(--blue); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.hero h1, h1, h2 { font-family: 'Playfair Display', Georgia, serif; line-height: 1.12; letter-spacing: 0; }.hero h1 { max-width: 720px; margin: 0; font-size: clamp(2.55rem, 4vw, 4.45rem); }.lead { max-width: 660px; margin: 1.35rem 0 2rem; color: var(--muted); font-size: 1.12rem; }.actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero-typing { min-height: 1.7em; margin: 1.1rem 0 -.45rem; color: #385475; font-size: .97rem; font-weight: 700; }.hero-typing [data-typed-services] { color: var(--violet); }.typing-cursor { display: inline-block; width: 2px; height: 1.05em; margin-left: .18rem; vertical-align: -.16em; background: var(--blue); animation: blink .85s step-end infinite; }
.hero-art { position: relative; min-height: 365px; overflow: hidden; border-radius: var(--radius); background: linear-gradient(135deg, #e0efff, #ede7ff 65%, #d8f3ef); }.search-panel { position: absolute; inset: 74px 48px auto; z-index: 2; padding: 2rem; background: white; border: 1px solid #d9e3f1; border-radius: 7px; box-shadow: 0 22px 50px #273a6626; }.search-panel span { display: block; color: var(--muted); font-size: .8rem; }.search-panel strong { display: block; margin: .5rem 0 1.4rem; font-family: Fraunces, serif; font-size: 1.6rem; }.search-panel i { display: block; height: 9px; margin: 11px 0; border-radius: 9px; background: #dce5f4; }.search-panel i:nth-of-type(1) { width: 85%; background: var(--blue); }.search-panel i:nth-of-type(2) { width: 62%; background: var(--violet); }.search-panel i:nth-of-type(3) { width: 74%; background: #23a494; }.signal { position: absolute; border: 1px solid #2d7bea; border-radius: 50%; }.signal-one { width: 260px; height: 260px; right: -90px; bottom: -90px; }.signal-two { width: 180px; height: 180px; right: -50px; bottom: -50px; border-color: #7554d5; }.node { position: absolute; z-index: 3; width: 22px; height: 22px; background: var(--violet); border: 4px solid white; border-radius: 50%; box-shadow: 0 4px 12px #34377955; }.node-one { right: 87px; bottom: 100px; }.node-two { right: 206px; bottom: 51px; background: #1c9d8c; }
.band { max-width: none !important; background: var(--pale); text-align: center; }.band > * { max-width: 820px; margin-left: auto; margin-right: auto; }.band h2 { width: 100%; text-align: center; }.band h2, .section-heading h2, .resources-callout h2, .testimonial h2, .faq h2, .closing h2 { margin: 0; font-size: clamp(2rem, 3vw, 3rem); }.feature-grid, .service-grid, .resource-grid, .pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 2.25rem; }.feature-grid article { padding: 1.5rem; border-top: 3px solid var(--blue); background: white; text-align: left; }.feature-grid h3, .service-card h3 { margin: 0 0 .5rem; font-size: 1.05rem; }.feature-grid p, .service-card p { margin: 0; color: var(--muted); }.section-heading { max-width: 650px; }.service-card, .resource-card, .pricing-grid article { display: flex; min-height: 230px; flex-direction: column; padding: 1.55rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 7px 22px #1f37530b; }.service-card:hover, .resource-card:hover { border-color: #a9c6ec; box-shadow: 0 12px 28px #1f37531a; }.service-mark { width: 34px; height: 34px; display: grid; place-items: center; margin-bottom: 1.5rem; border-radius: 4px; background: #e1efff; color: var(--blue); font-weight: 700; }.text-link { margin-top: auto; color: var(--blue); font-weight: 700; }.process { max-width: none !important; background: #152945; color: white; }.process .section-heading { max-width: 1180px; margin: 0 auto; }.process .eyebrow { color: #91baff; }.process ol { max-width: 1180px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin: 2.5rem auto 0; padding: 0; list-style: none; }.process li { position: relative; padding-top: 3.2rem; }.process li::before { position: absolute; top: 0; content: counter(list-item, decimal-leading-zero); color: #a7caff; font-weight: 700; }.process strong, .process span { display: block; }.process span { margin-top: .3rem; color: #c3d0df; font-size: .91rem; }.resources-callout { display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-radius: var(--radius); background: linear-gradient(100deg, #e5f2ff, #ede9ff); }.resources-callout p:not(.eyebrow) { max-width: 700px; color: var(--muted); }.testimonial { text-align: center; border-top: 1px solid var(--line); }.testimonial p:not(.eyebrow) { max-width: 550px; margin: 1rem auto; color: var(--muted); }.faq { max-width: 800px !important; }.faq details { padding: 1rem 0; border-bottom: 1px solid var(--line); }.faq summary { cursor: pointer; font-weight: 700; }.faq details p { color: var(--muted); }.closing { max-width: none !important; display: flex; align-items: center; justify-content: center; gap: 2rem; background: var(--ink); color: white; text-align: center; }
.page-hero { max-width: 900px !important; padding-bottom: 36px !important; }.page-hero h1 { max-width: 820px; margin: .5rem 0 0; font-size: clamp(2.35rem, 4vw, 4.25rem); }.breadcrumbs { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 2rem; color: var(--muted); font-size: .85rem; }.breadcrumbs a { color: var(--blue); }.split { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }.split h2 { margin-top: 0; font-size: 2rem; }.split p, .split li { color: var(--muted); }.split ul, .pricing-grid ul { padding-left: 1.2rem; }
.contact-links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }.contact-links a { padding: .35rem .65rem; border: 1px solid var(--line); border-radius: 4px; background: var(--pale); color: var(--blue); font-size: .87rem; font-weight: 700; }.contact-links a:hover { border-color: var(--blue); background: #e2efff; }
.resource-heading { max-width: 1000px !important; }.resource-stats { display: flex; flex-wrap: wrap; gap: .75rem; }.resource-stats span { padding: .3rem .6rem; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); font-size: .83rem; }.resource-tools { max-width: none !important; padding-top: 28px !important; padding-bottom: 28px !important; background: var(--pale); }.resource-tools > * { max-width: 1132px; margin-left: auto; margin-right: auto; }.resource-tools label { display: block; margin-bottom: .45rem; font-weight: 700; }.resource-tools input { display: block; width: 100%; padding: .8rem 1rem; border: 1px solid #bdcad8; border-radius: 5px; background: white; font: inherit; }.filters { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }.filters a { padding: .32rem .65rem; border: 1px solid #cbd7e3; border-radius: 4px; background: white; color: #405069; font-size: .83rem; }.filters a.active, .filters a:hover { border-color: var(--blue); background: var(--blue); color: white; }.resource-grid { grid-template-columns: repeat(3, 1fr); }.resource-card { min-height: 260px; }.resource-card .eyebrow { margin-bottom: .3rem; font-size: .68rem; }.resource-card h3 { margin: 0; font-size: 1.2rem; }.domain { margin: .15rem 0 1rem !important; color: var(--violet) !important; font-size: .85rem; font-weight: 700; }.resource-card > p:not(.eyebrow):not(.domain) { margin: 0; color: var(--muted); font-size: .91rem; }.card-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1rem; font-size: .88rem; font-weight: 700; }.card-actions > a:first-child { color: var(--muted); }.result-count { color: var(--muted); }.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; margin-top: 2.5rem; }.pagination a, .pagination span { min-width: 35px; padding: .35rem .55rem; border: 1px solid var(--line); border-radius: 3px; text-align: center; }.pagination [aria-current] { border-color: var(--blue); background: var(--blue); color: white; }.pagination span:not([aria-current]) { color: #9ba5b0; }.search-empty { margin: 2rem 0; color: var(--muted); text-align: center; }
.pricing-grid article { min-height: 380px; }.pricing-grid .featured { border-color: var(--blue); box-shadow: 0 15px 32px #1657af1a; }.price { margin: .5rem 0; color: var(--blue); font: 700 1.8rem Fraunces, serif; }.pricing-grid p { color: var(--muted); }.pricing-grid .button { margin-top: auto; }.form-section { max-width: 800px !important; }.form-section form { padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--pale); }.form-section label { display: block; margin-bottom: 1rem; font-weight: 700; }.form-section input, .form-section select, .form-section textarea { width: 100%; margin-top: .35rem; padding: .7rem; border: 1px solid #bdcad8; border-radius: 4px; background: white; color: var(--ink); font: inherit; }.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.form-note { color: var(--muted); font-size: .85rem; }.legal { max-width: 800px !important; }.legal h1 { font-size: clamp(2.3rem, 4vw, 4rem); }.legal h2 { margin-top: 2rem; font-size: 1.5rem; }.legal p { color: var(--muted); }
footer { padding: 60px 24px 25px; background: #0c1d32; color: #cad5e1; } .footer-grid, .footer-bottom { max-width: 1132px; margin: auto; }.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; }.footer-logo { max-width: 160px; max-height: 46px; object-fit: contain; filter: brightness(0) invert(1); }.footer-grid p { max-width: 360px; }.footer-grid h2 { margin: 0 0 1rem; color: white; font-family: 'DM Sans', sans-serif; font-size: .85rem; }.footer-grid a { display: block; margin: .5rem 0; color: #cad5e1; font-size: .9rem; }.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #314258; color: #9cadbd; font-size: .82rem; }.footer-bottom a { color: #dce9f8; }
@media (max-width: 850px) { .menu-button { display: block; } .site-header { position: relative; } nav { display: none; position: absolute; top: 70px; right: 24px; left: 24px; z-index: 10; padding: 1rem; flex-direction: column; align-items: stretch; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 30px #1728431f; } nav.open { display: flex; } nav a { padding: .35rem; } nav .button { margin-top: .4rem; }.hero { grid-template-columns: 1fr; gap: 2.5rem; }.hero-art { min-height: 300px; }.feature-grid, .service-grid, .resource-grid { grid-template-columns: repeat(2, 1fr); }.process ol { grid-template-columns: 1fr; }.process li { padding: 0 0 0 3.5rem; min-height: 55px; }.process li::before { top: 0; left: 0; }.resources-callout, .closing { align-items: flex-start; flex-direction: column; }.split, .pricing-grid, .footer-grid { grid-template-columns: 1fr; gap: 2rem; } }
@media (max-width: 550px) { .site-header, main > section { padding-left: 18px; padding-right: 18px; }.hero { min-height: auto; padding-top: 42px; }.hero h1 { font-size: 2.45rem; }.hero-art { min-height: 245px; }.search-panel { inset: 42px 25px auto; padding: 1.3rem; }.feature-grid, .service-grid, .resource-grid, .two-column { grid-template-columns: 1fr; }.resource-card { min-height: 220px; }.resources-callout, .closing { padding-top: 48px !important; padding-bottom: 48px !important; }.footer-bottom { flex-direction: column; }.filters { max-height: 115px; overflow: auto; }.pagination a, .pagination span { min-width: 31px; padding: .25rem .4rem; } }
@keyframes rise-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes drift { 50% { transform: translateY(-8px); } }
@keyframes blink { 50% { opacity: 0; } }
.hero .eyebrow, .hero h1, .hero .hero-typing, .hero .lead, .hero .actions { opacity: 0; animation: rise-in .7s cubic-bezier(.2,.75,.3,1) forwards; }.hero h1 { animation-delay: .1s; }.hero .hero-typing { animation-delay: .18s; }.hero .lead { animation-delay: .26s; }.hero .actions { animation-delay: .34s; }.hero-art { animation: rise-in .8s .22s cubic-bezier(.2,.75,.3,1) both; }.hero-art .search-panel { animation: drift 5s ease-in-out .8s infinite; }.service-card { transition: border-color .2s, box-shadow .2s, transform .2s; }.service-card:hover { transform: translateY(-4px); }.band { position: relative; overflow: hidden; }.band::before { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0, transparent 68px, #1264d805 69px, #1264d805 70px); content: ''; pointer-events: none; }.home main > section:not(.hero) { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.75,.3,1); }.home main > section.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }