:root{
  --bg:#f3f5fb;
  --card:#ffffff;
  --ink:#0c172d;
  --muted:#54607a;
  --line:#d9dfed;
  --brand:#0ea5a4;
  --brand-strong:#0b7f7e;
  --accent:#2658e8;
  --accent-soft:#eef4ff;
  --warn:#f59e0b;
  --shadow:0 10px 24px rgba(16, 26, 56, .05);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body,
button,
input,
select,
textarea{
  font-family:"Segoe UI", "Helvetica Neue", Arial, sans-serif;
}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 15% -10%, #d7f5f4 0%, transparent 34%),
    radial-gradient(circle at 85% -15%, #dbe6ff 0%, transparent 36%),
    var(--bg);
}
a{ color:inherit; }
.shell{
  max-width:1140px;
  margin:0 auto;
  width:100%;
  padding:0 20px;
}
.page{
  padding:20px 0 56px;
}
.top{
  display:flex;
  align-items:center;
  gap:22px;
  margin:0 0 24px;
  padding:16px 18px;
  border-radius:24px;
  border:1px solid rgba(191,208,244,.92);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.96), transparent 30%),
    radial-gradient(circle at bottom right, rgba(210,232,255,.72), transparent 26%),
    linear-gradient(135deg, rgba(255,255,255,.96) 0%, rgba(244,249,255,.96) 45%, rgba(229,240,255,.95) 100%);
  box-shadow:0 20px 44px rgba(28,63,145,.14);
  position:relative;
  overflow:visible;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  position:relative;
  z-index:1;
  flex-shrink:0;
}
.mark{
  width:52px;
  height:52px;
  border-radius:10px;
  display:grid;
  place-items:center;
}
.mark img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.brandTitle{
  margin:0;
  font-size:28px;
  line-height:1;
  letter-spacing:-.03em;
  font-weight:800;
  color:#173267;
}
.brand small{
  display:block;
  color:#57729f;
  font-size:12px;
  font-weight:600;
  margin-top:4px;
}
.topActions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  flex:1;
  position:relative;
  z-index:1;
}
.siteHeaderDesktop{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1;
  min-width:0;
}
.siteHeaderActions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
}
.siteHeaderMobile{
  display:none;
}
.navPill{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 12px;
  border-radius:12px;
  border:1px solid transparent;
  background:transparent;
  color:#223b67;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
.navDirect{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 12px;
  border-radius:12px;
  color:#223b67;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}
.navPill:hover,
.navDirect:hover,
.navMenu summary:hover,
.btnGhost:hover{
  background:rgba(38,88,232,.08);
  color:var(--accent);
  border-color:rgba(38,88,232,.14);
}
.navMenu{
  position:relative;
}
.navMenu summary{
  list-style:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 12px;
  border-radius:12px;
  border:1px solid transparent;
  background:transparent;
  color:#223b67;
  font-size:16px;
  font-weight:700;
  line-height:1;
}
.navMenu summary::-webkit-details-marker{ display:none; }
.navCategory summary::after{
  content:"";
  width:7px;
  height:7px;
  margin-left:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  opacity:.8;
}
.navDropdown{
  position:absolute;
  right:0;
  top:calc(100% + 12px);
  min-width:220px;
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid rgba(185,197,227,.7);
  border-radius:18px;
  background:rgba(255,255,255,.98);
  box-shadow:0 20px 40px rgba(12,23,45,.18);
  z-index:30;
}
.siteMenu .navDropdown{
  min-width:320px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.navCategory .navDropdown{
  min-width:260px;
}
.navDropdown a{
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  font-weight:700;
  color:#23365a;
  white-space:nowrap;
}
.navDropdown a.isActive{
  background:var(--accent-soft);
  color:var(--accent);
}
.navDropdown a:hover{
  background:var(--accent-soft);
  color:var(--accent);
}
.navPill:focus-visible,
.navMenu summary:focus-visible,
.navDropdown a:focus-visible,
.btn:focus-visible,
.listCard:focus-visible,
.socialBtn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(38,88,232,.18);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  border-radius:999px;
  border:1px solid transparent;
  font-family:inherit;
  font-size:16px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  padding:0 20px;
  white-space:nowrap;
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.btnPrimary{
  background:linear-gradient(135deg, #2f66ff 0%, #2458e6 56%, #1f49c5 100%);
  border-color:rgba(24,66,176,.22);
  color:#fff;
  box-shadow:0 18px 34px rgba(38,88,232,.28);
}
.btnGhost{
  border-color:rgba(175,197,236,.94);
  background:rgba(255,255,255,.84);
  color:#223b67;
  box-shadow:0 10px 24px rgba(39,72,151,.08);
}
.btnPrimary:hover{
  background:linear-gradient(135deg, #255cf3 0%, #1f4fd5 100%);
  color:#fff;
  border-color:rgba(24,66,176,.28);
}
.btnGhost:hover{
  background:rgba(38,88,232,.08);
  color:var(--accent);
  border-color:rgba(38,88,232,.18);
}
.btn:active{ transform:translateY(1px); }
.hero{
  padding:8px 0 10px;
}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:24px;
}
.heroCard{
  padding:28px 28px 26px;
}
.kicker{
  display:inline-flex;
  border:1px solid #bee7e7;
  color:var(--brand-strong);
  background:#ecfbfb;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:5px 10px;
  margin-bottom:12px;
}
h1{
  margin:0 0 12px;
  font-size:52px;
  line-height:1.04;
  letter-spacing:-.02em;
}
h2{
  margin:0 0 10px;
  font-size:30px;
  letter-spacing:-.03em;
}
h3{
  margin:0 0 10px;
  font-size:24px;
  letter-spacing:-.02em;
}
p{
  color:var(--muted);
  line-height:1.65;
}
.lead{
  margin:0 0 14px;
  font-size:18px;
}
.heroActions,
.ctaActions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:18px;
}
.section{
  margin-top:22px;
}
.grid2,
.grid3,
.grid4{
  display:grid;
  gap:16px;
}
.grid2{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.grid3{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.grid4{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
.tile,
.miniCard{
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fbff;
  padding:18px;
}
.tile h3,
.miniCard h3{
  margin-bottom:8px;
}
.eyebrow{
  display:inline-block;
  margin-bottom:8px;
  color:var(--accent);
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.bullet{
  margin:0;
  padding-left:18px;
  color:#26395d;
  line-height:1.65;
}
.bullet li{ margin:8px 0; }
.workflow{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}
.step{
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fbff;
  padding:18px;
}
.stepNum{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#e8efff;
  color:var(--accent);
  font-weight:800;
  margin-bottom:10px;
}
.tagRow{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.tag{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#edf8f8;
  border:1px solid #cceeed;
  color:var(--brand-strong);
  font-size:13px;
  font-weight:700;
}
.ctaBand{
  border:1px solid #bbdcff;
  background:linear-gradient(145deg, #eef5ff, #f4faff);
  border-radius:20px;
  padding:24px;
}
.notice{
  border:1px solid #f4ddb1;
  background:#fff8ea;
  border-radius:16px;
  padding:16px 18px;
}
.notice p{ margin:0; color:#5e4b25; }
.small{
  font-size:14px;
}
.metaRow{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:8px 0 18px;
  color:#5b6d90;
  font-size:14px;
  font-weight:700;
}
.articleBody h2{
  margin-top:26px;
}
.articleBody h3{
  margin-top:20px;
}
.articleBody p,
.articleBody li{
  font-size:17px;
}
.articleBody ul{
  padding-left:20px;
  color:#2f4367;
  line-height:1.7;
}
.tableWrap{
  overflow:auto;
}
table{
  width:100%;
  border-collapse:collapse;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
th,
td{
  padding:12px 10px;
  border-bottom:1px solid var(--line);
  text-align:left;
  color:#2a3d63;
}
th{
  background:#f3f8ff;
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.formGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.field{
  display:grid;
  gap:6px;
}
.field label{
  font-size:14px;
  font-weight:700;
  color:#22375e;
}
.field input,
.field select,
.field textarea{
  width:100%;
  min-height:46px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  font:inherit;
  color:var(--ink);
}
.field textarea{
  min-height:90px;
  resize:vertical;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(38,88,232,.14);
  outline:none;
}
.field small{
  color:var(--muted);
  line-height:1.45;
}
.textLink{
  color:var(--accent);
  font-weight:700;
  text-decoration:none;
}
.textLink:hover{
  text-decoration:underline;
}
.contentIntro{
  display:grid;
  gap:10px;
  margin-bottom:18px;
}
.contentIntro p{
  margin:0;
}
.plans{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:16px;
}
.plan{
  position:relative;
  display:grid;
  gap:12px;
  align-content:start;
  border:1px solid var(--line);
  border-radius:20px;
  background:#f8fbff;
  padding:22px;
}
.plan.featured{
  background:linear-gradient(160deg, #eefbfa 0%, #f7fffe 100%);
  border-color:rgba(14,165,164,.32);
}
.plan.planLink{
  text-decoration:none;
  color:inherit;
}
.plan.planLink:hover{
  border-color:#9fbae8;
  box-shadow:0 14px 30px rgba(16,26,56,.08);
}
.plan h2{
  margin:0;
}
.plan ul{
  margin:0;
  padding-left:18px;
  color:#26395d;
  line-height:1.65;
}
.plan li + li{
  margin-top:8px;
}
.badge{
  position:absolute;
  top:16px;
  right:16px;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#dff8f0;
  color:#0f766e;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.price{
  font-size:38px;
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--ink);
}
.muted{
  color:var(--muted);
}
.orig{
  margin-top:-6px;
  color:var(--muted);
  font-size:14px;
}
.billingMeta,
.checkoutMsg{
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.checkoutMsg{
  min-height:22px;
  margin:8px 0 0;
}
.billingToggle{
  margin:10px 0 0;
  display:inline-flex;
  gap:8px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#f2f6ff;
}
.billingBtn{
  border:none;
  border-radius:999px;
  min-height:38px;
  padding:0 14px;
  cursor:pointer;
  background:transparent;
  color:var(--ink);
  font-size:13px;
  font-weight:700;
}
.billingBtn.active{
  background:var(--accent);
  color:#fff;
}
.planCta{
  width:100%;
}
.manual{
  color:#9b2c1d;
  font-weight:800;
}
.swift{
  color:#0f766e;
  font-weight:800;
}
.mergedSwift{
  text-align:center;
  vertical-align:middle;
  font-size:32px;
  line-height:1.12;
}
.mergedSwift small{
  display:block;
  margin-top:8px;
  color:#0f766e;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.totalRow td{
  background:#eef5ff;
}
.supportGrid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
}
.supportCard{
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fbff;
  padding:20px;
}
.supportCard h2{
  margin-bottom:8px;
  font-size:24px;
}
.supportCard p{
  margin:0;
}
.resultGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.resultCard{
  border:1px solid #cfe0ff;
  background:#f6f9ff;
  border-radius:18px;
  padding:18px;
}
.resultCard b{
  display:block;
  color:#425a84;
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.resultValue{
  margin-top:8px;
  font-size:34px;
  font-weight:800;
  letter-spacing:-.02em;
}
.previewBox{
  white-space:pre-wrap;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:18px;
  color:#213254;
  line-height:1.6;
  min-height:320px;
}
.listCard{
  display:block;
  text-decoration:none;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:18px;
  box-shadow:var(--shadow);
}
.listCard:hover{
  border-color:#bbd0ff;
  box-shadow:0 12px 28px rgba(16,26,56,.10);
}
.stackList{
  display:grid;
  gap:16px;
}
.photoFrame{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#e8edf8;
}
.photoFrame img{
  width:100%;
  height:100%;
  min-height:320px;
  object-fit:cover;
  display:block;
}
.inlineNote{
  margin-top:12px;
  color:#5b6d90;
  font-size:14px;
  line-height:1.6;
}
.footer{
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  color:#607091;
  font-size:13px;
}
.footer a{
  color:#607091;
  text-decoration:none;
}
.footerLinks{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.footerLinks span{ color:#9aa7be; }
@media (max-width: 980px){
  .grid4{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .grid3,
  .workflow,
  .supportGrid{ grid-template-columns:1fr; }
  .top{
    flex-wrap:wrap;
  }
  .brandTitle{
    font-size:24px;
  }
  .siteHeaderDesktop{
    display:none;
  }
  .siteHeaderMobile{
    display:block;
  }
  .topActions{
    justify-content:flex-end;
    width:100%;
  }
}
@media (max-width: 760px){
  h1{ font-size:34px; }
  h2{ font-size:26px; }
  .grid2,
  .grid4,
  .formGrid,
  .resultGrid{ grid-template-columns:1fr; }
  .plans{ grid-template-columns:1fr; }
  .heroCard{ padding:22px; }
  .top{ align-items:flex-start; }
  .topActions{
    flex:0 0 100%;
    width:100%;
    gap:12px;
    align-items:stretch;
    justify-content:space-between;
  }
  .siteHeaderMobile{
    order:1;
  }
  .siteHeaderActions{
    order:2;
    flex:0 0 100%;
    width:100%;
    margin-left:0;
    justify-content:space-between;
  }
  .siteHeaderActions .btn{
    flex:1 1 0;
    min-width:0;
    padding:0 14px;
  }
  .navDropdown{ left:0; right:auto; }
  .siteMenu .navDropdown{
    min-width:min(100%, 280px);
    grid-template-columns:1fr;
  }
}
