/* DNS service page: shared site palette, type and controls. */
.hero { padding: 148px 0 72px; }
.hero-shell { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 64px; }
.hero h1 { font-size: clamp(2.5rem,4vw,3.7rem); line-height: 1.2; color: var(--secondary); letter-spacing: -.035em; margin: 16px 0 22px; max-width: 650px; }
.hero p,.dns-section p { color: var(--text-light); font-size: 1rem; line-height: 1.85; }
.hero-actions { margin-top: 30px; flex-wrap: wrap; }
.dns-preview { background: white; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 20px 60px -30px #0284c74d; padding: 28px; min-width: 0; }
.preview-head { display: flex; justify-content: space-between; gap: 12px; color: var(--text-light); font-size: .8rem; }
.preview-head>span:first-child { font-weight: 700; color: var(--secondary); letter-spacing: .08em; }
.dns-network { position: relative; height: 170px; display: grid; place-items: center; margin: 18px 0 20px; background: radial-gradient(ellipse at 50% 48%, rgba(186,230,253,.62) 0, rgba(224,242,254,.52) 28%, #f8fafc 62%, white 82%); }
.dns-network svg { position: absolute; width: 100%; height: 100%; overflow: visible; }
.dns-map-bg { fill: rgba(248,251,255,.74); stroke: #dbeafe; stroke-width: 1; }
.dns-world-map path { fill: url(#dnsMapDots); stroke: #60a5fa; stroke-width: .8; stroke-opacity: .18; }
.dns-map-routes path { fill: none; stroke: #38bdf8; stroke-width: 1; stroke-opacity: .62; stroke-linecap: round; }
.dns-map-routes .route-orbit { stroke: #7dd3fc; stroke-opacity: .5; stroke-dasharray: 4 6; }
.dns-map-nodes circle { fill: #38bdf8; stroke: white; stroke-width: 1.6; }
.dns-map-flow circle { fill: white; filter: drop-shadow(0 0 3px #06b6d4); }
.dns-hub-glow { fill: #38bdf8; opacity: .18; filter: url(#dnsHubGlow); }
.dns-hub-ring { fill: #dff5ff; stroke: #7dd3fc; stroke-width: 1; }
.dns-hub { fill: #2563eb; stroke: white; stroke-width: 1.5; }
.zone { font-family: 'JetBrains Mono',monospace; font-size: .9rem; color: var(--secondary); padding: 13px 16px; margin-top: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-alt); overflow-wrap: anywhere; }
.zone::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--primary); margin-right: 12px; vertical-align: middle; }
.zone.nested { margin-left: 20px; }.zone.deep { margin-left: 40px; }
.preview-bottom { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.preview-bottom span { background: var(--primary-light); color: var(--primary-dark); border-radius: 6px; padding: 4px 10px; font-size: .76rem; font-weight: 600; }
.dns-preview p { margin-top: 14px; font-size: .82rem; }
.dns-section { padding: 76px 0; scroll-margin-top: 100px; }
.dns-section h2 { font-size: clamp(1.7rem,2.8vw,2.3rem); line-height: 1.35; letter-spacing: -.025em; color: var(--secondary); margin-bottom: 18px; }
.dns-alt { background: var(--bg-alt); border-top: 1px solid #e2e8f080; border-bottom: 1px solid #e2e8f080; }
#dns-features { padding-top: 28px; }
#dns-features h2 { text-align: center; }
.dns-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin-top: 32px; }
.dns-card { padding: 26px 24px; border-radius: var(--radius); border: 1px solid var(--border); background: white; }
.dns-card i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--primary-light); color: var(--primary-dark); font-size: 1.2rem; margin-bottom: 22px; }
.dns-card h3,.route-group h3,.dns-steps h3 { color: var(--secondary); font-size: 1.1rem; line-height: 1.45; margin-bottom: 12px; }
.dns-card p,.dns-steps p { font-size: .92rem; line-height: 1.8; }
.dns-routes>.container>h2,.dns-routes>.container>p { text-align: center; }
.dns-routes>.container>p { max-width: 680px; margin: 0 auto; }
.default-route { width: fit-content; display: flex; align-items: center; gap: 16px; margin: 24px auto 30px; background: white; border: 1px solid var(--border); border-radius: 100px; padding: 8px 18px; font-size: .85rem; }
.default-route code { color: var(--primary-dark); }
.route-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 20px; align-items: stretch; }
.route-group { background: white; border: 1px solid var(--border); border-radius: 16px; padding: 24px; }
.route-group h3 { border-bottom: 1px solid var(--border); padding-bottom: 18px; margin-bottom: 20px; }
.route-group ul { list-style: none; display: flex; gap: 9px; flex-wrap: wrap; align-content: flex-start; }
.route-group li { display: inline-flex; gap: 9px; align-items: center; background: var(--bg-alt); border: 1px solid var(--border); border-radius: 7px; padding: 7px 10px; font-size: .83rem; }
.route-group code { font-size: .72rem; color: #94a3b8; }
.dns-routes>.container>.route-note { margin-top: 20px; font-size: .8rem; color: var(--text-light); }
.dns-comparison { background: linear-gradient(180deg,#f8fbff 0%,#fff 100%); border-top: 1px solid #e2e8f080; border-bottom: 1px solid #e2e8f080; }
.comparison-heading { max-width: 760px; margin: 0 auto 34px; text-align: center; }
.comparison-heading .section-kicker { display: inline-block; margin-bottom: 8px; color: var(--primary-dark); font-size: .76rem; font-weight: 800; letter-spacing: .08em; }
.comparison-heading h2 { margin-bottom: 12px; }
.comparison-heading p { margin: 0; }
.comparison-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 16px; background: white; box-shadow: var(--shadow-card); }
.dns-comparison-table { width: 100%; min-width: 850px; border-collapse: separate; border-spacing: 0; text-align: left; }
.dns-comparison-table th,.dns-comparison-table td { padding: 20px 22px; border-bottom: 1px solid var(--border); vertical-align: top; line-height: 1.7; }
.dns-comparison-table thead th { background: #f8fafc; color: var(--text-light); font-size: .83rem; font-weight: 700; }
.dns-comparison-table thead th:first-child { width: 18%; }
.dns-comparison-table thead th.is-dnshe { background: #eff8ff; color: var(--primary-dark); }
.dns-comparison-table tbody th { width: 18%; color: var(--secondary); font-size: .92rem; font-weight: 800; }
.dns-comparison-table tbody td { color: var(--text-light); font-size: .9rem; }
.dns-comparison-table tbody td.is-dnshe { background: #f8fcff; color: var(--secondary); font-weight: 600; }
.dns-comparison-table tbody tr:last-child th,.dns-comparison-table tbody tr:last-child td { border-bottom: 0; }
.provider-name { display: block; color: var(--secondary); font-size: 1rem; font-weight: 800; }
.dns-comparison-table thead .is-dnshe .provider-name { color: var(--primary-dark); }
.comparison-note { margin: 16px 0 0; color: var(--text-light); font-size: .78rem !important; line-height: 1.7 !important; }
.comparison-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 24px; padding: 24px 28px; border: 1px solid #bae6fd; border-radius: 16px; background: linear-gradient(110deg,#eff8ff 0%,#fff 78%); box-shadow: var(--shadow-card); }
.comparison-cta h3 { margin: 0 0 6px; color: var(--secondary); font-size: 1.12rem; }
.comparison-cta p { margin: 0; color: var(--text-light); font-size: .9rem; line-height: 1.7; }
.comparison-cta .btn { flex: 0 0 auto; white-space: nowrap; }
.domain-section { display: grid; grid-template-columns: 1.15fr 1fr; gap: 76px; align-items: center; }
.domain-section p+p { margin-top: 20px; font-size: .85rem; padding-left: 16px; border-left: 2px solid #bae6fd; }
.domain-examples { position: relative; padding: 20px; background: var(--bg-alt); border-radius: 20px; }
.domain-examples>div { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 22px; border: 1px solid var(--border); border-radius: 12px; background: white; }
.domain-examples>div+div { margin-top: 12px; }
.domain-examples>div:nth-child(2) { margin-left: 18px; }.domain-examples>div:nth-child(3) { margin-left: 36px; }
.domain-examples code { color: var(--secondary); font: 500 1rem 'JetBrains Mono',monospace; overflow-wrap: anywhere; }
.domain-examples span { color: var(--primary-dark); font-size: .8rem; }
.dns-onboarding h2 { text-align: center; }
.dns-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; margin-top: 36px; }
.dns-steps article { position: relative; text-align: center; padding: 0 20px; }
.step-number { display: grid; place-items: center; width: 48px; height: 48px; background: white; border: 1px solid #bae6fd; color: var(--primary-dark); border-radius: 50%; font: 600 1rem 'JetBrains Mono',monospace; margin: 0 auto 20px; }
.dns-steps article:not(:last-child)::after { content: ''; position: absolute; top: 24px; left: calc(50% + 38px); width: calc(100% - 36px); border-top: 1px dashed #cbd5e1; }
.dns-cta { padding: 76px 0; text-align: center; }
.dns-cta>.container { padding: 48px 24px; border: 1px solid #bae6fd; border-radius: var(--radius-lg); background: #f0f9ff; }
.dns-cta p { margin: 0 auto 24px; max-width: 650px; }
a:focus-visible,button:focus-visible { outline: 3px solid var(--primary); outline-offset: 5px; }
@media(max-width:1200px) { .nav-menu{display:none}.mobile-menu-btn{display:block}.hero-shell{gap:36px}.dns-cards{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:980px) { .hero-shell{grid-template-columns:1fr 1fr}.hero h1{font-size:2.6rem}.route-grid{grid-template-columns:1fr}.route-group{padding:22px}.domain-section{gap:32px}.dns-steps{gap:20px}.dns-steps article{padding:0} }
@media(max-width:700px) { .hero{padding:110px 0 44px}.hero-shell,.domain-section{grid-template-columns:1fr}.hero h1{font-size:2.3rem}.hero-actions .btn{flex:1;text-align:center}.dns-preview{max-width:520px;width:100%;margin:auto}.dns-network{height:140px}.dns-section{padding:48px 0}.dns-cards{grid-template-columns:1fr}.dns-card{padding:24px}.dns-steps{grid-template-columns:1fr;gap:30px}.dns-steps article:not(:last-child)::after{display:none}.dns-cta{padding:40px 24px}.dns-cta>.container{padding:32px 20px}.domain-examples{padding:16px}.domain-examples>div{padding:16px}.domain-examples>div:nth-child(3){margin-left:24px} }
@media(max-width:700px) {
  .comparison-table-wrap { overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .dns-comparison-table { display: block; min-width: 0; }
  .dns-comparison-table thead { display: none; }
  .dns-comparison-table tbody { display: grid; gap: 12px; }
  .dns-comparison-table tbody tr { display: block; overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px -20px #0f172a66; }
  .dns-comparison-table tbody th { display: block; width: auto; padding: 13px 16px; border-bottom: 1px solid var(--border); background: #f8fafc; font-size: .9rem; }
  .dns-comparison-table tbody td { display: grid; grid-template-columns: 86px minmax(0,1fr); gap: 12px; align-items: start; padding: 13px 16px; border-bottom: 1px solid #e8eef5; font-size: .84rem; }
  .dns-comparison-table tbody td::before { content: attr(data-provider); color: var(--text-light); font-size: .76rem; font-weight: 800; line-height: 1.7; }
  .dns-comparison-table tbody td.is-dnshe { background: #f8fcff; }
  .dns-comparison-table tbody td.is-dnshe::before { color: var(--primary-dark); }
  .dns-comparison-table tbody td:last-child { border-bottom: 0; }
  .comparison-cta { align-items: stretch; flex-direction: column; gap: 16px; padding: 20px; }
  .comparison-cta .btn { width: 100%; text-align: center; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.dns-map-flow animateMotion{display:none} }
