@font-face {
  font-family:Vazirmatn;
  src:url('/assets/vazirmatn.woff2') format('woff2');
  font-weight:100 900;
  font-display:swap;
}

:root {
  --bg:#0b171e;
  --surface:rgba(27,40,49,.78);
  --raised:rgba(255,255,255,.10);
  --text:#f5f7f9;
  --muted:#d5dfe3;
  --border:rgba(255,255,255,.18);
  --accent:#99f6e4;
  --accent-secondary:#cffafe;
  --accent-text:#102c2b;
  --accent-hover:#c0f3ea;
  --accent-border:#527c75;
  --button-bg:#edf5f1;
  --button-text:#142b2a;
  --button-hover:#fff;
  --step-color:#91aaa4;
  --glow:rgba(113,201,183,.08);
  --glow-strong:rgba(113,201,183,.15);
  --card-glow:rgba(153,246,228,.18);
  --card-core:rgba(207,250,254,.16);
  --card-edge:rgba(153,246,228,.85);
  --card-shadow:0 24px 55px -34px #000000d9,0 0 40px -30px rgba(153,246,228,.55);
  --ambient-cool:rgba(132,177,183,.17);
  --ambient-warm:rgba(176,151,110,.09);
  --header:rgba(15,27,35,.75);
  --shadow:0 25px 100px #0006;
  color-scheme:dark;
}

:root[data-theme=light] {
  --bg:#f5f7f4;
  --surface:#fff;
  --raised:#eaf0eb;
  --text:#1c302d;
  --muted:#52665f;
  --border:#d2dfd7;
  --accent:#1b7165;
  --accent-secondary:#285e65;
  --accent-text:#fff;
  --accent-hover:#145b51;
  --accent-border:#7fa99d;
  --button-bg:#185f55;
  --button-text:#fff;
  --button-hover:#104c44;
  --step-color:#5c7770;
  --glow:rgba(48,123,101,.06);
  --glow-strong:rgba(48,123,101,.1);
  --card-glow:rgba(27,113,101,.09);
  --card-core:rgba(27,113,101,.05);
  --card-edge:rgba(27,113,101,.5);
  --card-shadow:0 20px 45px -32px rgba(23,59,46,.5),0 0 36px -30px rgba(27,113,101,.35);
  --ambient-cool:rgba(127,169,159,.12);
  --ambient-warm:rgba(182,163,122,.1);
  --header:rgba(245,247,244,.94);
  --shadow:0 25px 80px #173b2e12;
  color-scheme:light;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Vazirmatn,Arial,sans-serif;
  font-size:16px;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}

:root:not([data-theme=light]) body {
  background-image:linear-gradient(rgba(5,13,20,.42),rgba(5,13,20,.42)),url('/assets/portal-dark-background.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

:root:not([data-theme=light]) .hero {
  background:transparent;
}

:root:not([data-theme=light]) :is(.feature-card,.ai-preview,.price-card,.solution-card,.manifesto,.security-grid article,.contact-form-card,.addon-option) {
  --surface:rgba(3,7,18,.25);
  backdrop-filter:blur(20px);
}

:root:not([data-theme=light]) .quote-summary {
  backdrop-filter:blur(20px);
}

a {
  color:inherit;
  text-decoration:none;
}

button,input,textarea,select {
  font:inherit;
}

button,a {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

img {
  max-width:100%;
}

.container {
  width:min(1200px,calc(100% - 64px));
  margin-inline:auto;
}

.icon {
  width:22px;
  height:22px;
  flex:none;
  vertical-align:middle;
}

h1,h2,h3,h4,p {
  margin:0;
}

h1,h2,h3,h4 {
  line-height:1.45;
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px;
}

::selection {
  background:var(--accent);
  color:var(--accent-text);
}

[hidden] {
  display:none!important;
}

.skip-link {
  position:fixed;
  top:-80px;
  z-index:100;
  background:var(--accent);
  color:var(--accent-text);
  padding:12px;
}

.skip-link:focus {
  top:10px;
}

.site-header {
  height:90px;
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:40;
  background:var(--header);
  backdrop-filter:blur(22px);
  display:flex;
  align-items:center;
  transition:background .3s,border-color .3s;
}

.header-inner {
  position:relative;
  height:100%;
  display:flex;
  align-items:center;
  gap:40px;
  border:1px solid transparent;
  transition:width .3s,height .3s,padding .3s,border-radius .3s,background .3s,border-color .3s,box-shadow .3s;
}

.site-header.is-scrolled {
  background:transparent;
  border-color:transparent;
  backdrop-filter:none;
}

.site-header.is-scrolled .header-inner {
  width:min(1160px,calc(100% - 48px));
  height:66px;
  padding-inline:24px;
  gap:24px;
  border-color:var(--border);
  border-radius:20px;
  background:var(--header);
  backdrop-filter:blur(22px);
  box-shadow:0 8px 32px #0003;
}

.brand {
  display:flex;
  width:126px;
  flex:none;
}

.brand img {
  width:126px;
  height:50px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}

/* Align the logo with the visible center of Vazirmatn's Latin letters. */
[lang=en] .site-header .brand {
  transform:translateY(-2px);
}

@media(min-width:801px) {
  /* Center Latin link text against the wordmark's visual weight. */
  [lang=en] #navigation>a {
    transform:translateY(3px);
  }
}

[data-theme=light] .brand img {
  filter:brightness(.5);
}

nav {
  display:flex;
  gap:27px;
  align-items:center;
  flex:1;
}

nav a {
  font-size:14px;
  color:var(--muted);
  transition:color .2s;
}

nav a:hover,nav a[aria-current] {
  color:var(--text);
}

nav a[aria-current] {
  text-decoration:underline;
  text-decoration-color:var(--accent);
  text-underline-offset:10px;
}

.header-actions {
  display:flex;
  align-items:center;
  gap:17px;
}

.locale-toggle {
  display:flex;
  align-items:center;
  gap:5px;
  font-size:13px;
  cursor:pointer;
  list-style:none;
  padding:6px;
  border-radius:8px;
}

.language-label {
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.language-flag {
  display:inline-block;
  width:20px;
  height:15px;
  flex:0 0 20px;
  object-fit:cover;
  border-radius:2px;
}

.language-picker {
  position:relative;
}

.locale-toggle::-webkit-details-marker {
  display:none;
}

.locale-toggle:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:3px;
}

.language-options {
  position:absolute;
  top:calc(100% + 12px);
  inset-inline-end:0;
  min-width:150px;
  padding:6px;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:var(--shadow);
}

.language-options a {
  display:block;
  padding:8px 12px;
  border-radius:6px;
  text-align:start;
  font-size:14px;
}

.language-options a:hover,.language-options a[aria-current] {
  background:var(--raised);
  color:var(--accent);
}

.icon-button {
  border:0;
  background:transparent;
  color:var(--muted);
  padding:6px;
  display:flex;
}

.menu-toggle {
  display:none;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  border:1px solid transparent;
  border-radius:8px;
  padding:12px 27px;
  font-weight:650;
  font-size:15px;
  transition:background .2s,transform .2s;
}

.button:hover {
  transform:translateY(-2px);
}

.button:disabled,
.button:disabled:hover {
  opacity:.65;
  cursor:wait;
  transform:none;
}

.button.primary {
  background:var(--button-bg);
  color:var(--button-text);
}

.button.primary:hover {
  background:var(--button-hover);
}

.button.secondary {
  background:var(--surface);
  border-color:var(--border);
  color:var(--text);
}

.button.small {
  min-height:40px;
  padding:8px 20px;
  font-size:14px;
}

.button-row {
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}

.hero {
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:78px 0 52px;
  background:radial-gradient(ellipse 70% 110% at 85% 0%,var(--ambient-cool),transparent 75%),radial-gradient(ellipse 50% 95% at 15% 85%,var(--ambient-warm),transparent 75%);
}

.hero-grid {
  position:absolute;
  inset:0;
  opacity:.25;
  background-image:radial-gradient(var(--muted) .6px,transparent .6px);
  background-size:24px 24px;
  mask-image:linear-gradient(to bottom,transparent,#000 30%,transparent);
}

.hero-content {
  position:relative;
}

.hero h1 {
  font-size:clamp(40px,5.2vw,70px);
  font-weight:850;
  line-height:1.5;
  margin:0 0 14px;
  letter-spacing:-1.8px;
}

.hero h1 span {
  background:linear-gradient(110deg,var(--accent-secondary),var(--accent));
  background-clip:text;
  -webkit-background-clip:text;
  color:transparent;
}

.hero-description {
  max-width:630px;
  margin:auto;
  color:var(--muted);
  font-size:17px;
  line-height:2;
}

.hero .button-row {
  margin:25px 0 0;
}

.hero-chips {
  display:flex;
  justify-content:center;
  gap:26px;
  margin-top:28px;
  font-size:12px;
  color:var(--muted);
}

.hero-chips span {
  display:flex;
  gap:7px;
  align-items:center;
}

.hero-chips .icon {
  width:15px;
  color:var(--accent);
}

[data-theme=light] .hero-chips .icon {
  color:var(--accent);
}

.eyebrow {
  font-size:11px;
  letter-spacing:1.8px;
  color:var(--muted);
  font-family:Arial,sans-serif;
}

.ecosystem {
  text-align:center;
  padding:39px 0 52px;
  border-bottom:1px solid var(--border);
}

.ecosystem p {
  font-size:12px;
  color:var(--muted);
  margin-bottom:20px;
}

.ecosystem>div {
  display:flex;
  justify-content:center;
  gap:54px;
  flex-wrap:wrap;
}

.ecosystem>div span {
  font:600 20px Arial,sans-serif;
  color:var(--muted);
  letter-spacing:-.5px;
}

@media(min-width:1500px) {
  .hero {
    padding-top:90px;
  }
  .hero h1 {
    font-size:76px;
  }
}

@media(max-width:1050px) {
  .header-inner {
    gap:24px;
  }
  nav {
    gap:17px;
  }
  .header-actions {
    gap:10px;
  }
  .header-actions .button {
    padding:8px 12px;
  }
  .site-header.is-scrolled .header-inner {
    padding-inline:12px;
    gap:16px;
  }
  .site-header.is-scrolled nav {
    gap:14px;
  }
}

@media(max-width:800px) {
  .container {
    width:calc(100% - 36px);
  }
  .site-header {
    height:74px;
  }
  .header-inner {
    justify-content:space-between;
  }
  .site-header.is-scrolled .header-inner {
    width:calc(100% - 24px);
    height:58px;
    border-radius:16px;
  }
  .brand,.brand img {
    width:111px;
  }
  .header-actions {
    gap:12px;
  }
  nav {
    display:none;
    position:absolute;
    top:73px;
    inset-inline:0;
    padding:24px;
    background:var(--bg);
    border-bottom:1px solid var(--border);
    box-shadow:var(--shadow);
    max-height:calc(100dvh - 100px);
    overflow-y:auto;
    backdrop-filter:blur(22px);
  }
  .site-header.is-scrolled nav {
    top:calc(100% + 8px);
    border:1px solid var(--border);
    border-radius:16px;
    gap:0;
  }
  nav.open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  nav a {
    padding:10px;
    font-size:16px;
  }
  .menu-toggle {
    display:flex;
  }
  .hero {
    padding-top:46px;
  }
  .hero h1 {
    font-size:49px;
  }
  .hero-description {
    font-size:16px;
    max-width:570px;
  }
  .hero-chips {
    gap:14px;
    flex-wrap:wrap;
  }
  .ecosystem>div {
    gap:26px;
  }
  .ecosystem>div span {
    font-size:17px;
  }
}

@media(max-width:500px) {
  .header-actions .button {
    display:none;
  }
  .hero h1 {
    font-size:38px;
    letter-spacing:-1px;
  }
  .hero-description {
    font-size:15px;
  }
  .hero-chips {
    font-size:10px;
    gap:9px;
  }
  .hero .button {
    padding:11px 21px;
    font-size:14px;
  }
  .ecosystem {
    padding:30px 0;
  }
  .ecosystem>div {
    gap:21px;
  }
  .ecosystem>div span {
    font-size:15px;
  }
}

.section {
  padding-block:92px;
}

.section-heading {
  width:100%;
  max-width:none;
  margin-bottom:38px;
}

.section-heading h2 {
  font-size:clamp(27px,3.4vw,40px);
  letter-spacing:-.8px;
  margin:12px 0;
}

.section-heading p {
  font-size:16px;
  color:var(--muted);
  max-width:660px;
  line-height:2;
}

#capabilities>.section-heading p {
  width:100%;
  max-width:none;
}

.feature-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.feature-card {
  position:relative;
  border:1px solid var(--border);
  border-radius:12px;
  padding:30px;
  background:var(--surface);
  display:flex;
  flex-direction:column;
  transition:border-color .25s,transform .25s;
  overflow:hidden;
}

.feature-card:hover {
  border-color:var(--accent-border);
  transform:translateY(-3px);
}

.feature-card.wide {
  grid-column:span 2;
  background:radial-gradient(ellipse at 0 100%,var(--glow),transparent 80%),var(--surface);
}

.feature-icon {
  width:44px;
  height:44px;
  border:1px solid var(--border);
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--raised);
  color:var(--accent);
  margin-bottom:24px;
}

[data-theme=light] .feature-icon {
  color:var(--accent);
}

.feature-card .eyebrow {
  font-size:10px;
  margin-bottom:9px;
}

.feature-card h3 {
  font-size:22px;
  letter-spacing:-.3px;
  margin-bottom:12px;
}

.feature-card p {
  font-size:14px;
  color:var(--muted);
  line-height:2;
  max-width:610px;
}

.w-full {
  width:100%;
  max-width:none;
}

.feature-card p.w-full,
.feature-detail p.w-full {
  max-width:none;
}

.card-link {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  padding-top:25px;
  margin-top:auto;
  color:var(--muted);
}

.card-link>span {
  font:20px monospace;
}

.feature-card:hover .card-link {
  color:var(--text);
}

.asset-relations {
  display:flex;
  gap:10px;
  align-items:center;
  margin-top:22px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--bg);
}

.asset-relations>span {
  display:flex;
  gap:8px;
  align-items:center;
  font-size:11px;
  white-space:nowrap;
}

.asset-relations>i {
  height:1px;
  min-width:14px;
  flex:1;
  background:var(--border);
}

.asset-relations .icon {
  width:17px;
  color:var(--muted);
}

.feature-card:last-child {
  background:var(--raised);
}

.feature-grid .feature-card:last-child {
  grid-column:span 3;
}

.feature-grid .feature-card:last-child p {
  max-width:600px;
}

.ai-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
  padding-top:15px;
}

.ai-section h2 {
  font-size:32px;
  margin:14px 0 22px;
}

.accent-text {
  color:var(--accent);
}

[data-theme=light] .accent-text {
  color:var(--accent);
}

.ai-section>div>p {
  color:var(--muted);
  line-height:2;
}

.ai-section .button {
  margin-top:25px;
}

.ai-preview {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:25px;
  box-shadow:0 0 90px var(--glow);
}

.ai-heading {
  display:flex;
  gap:9px;
  align-items:center;
  margin-bottom:28px;
}

.ai-heading>.icon {
  color:var(--accent);
}

.ai-heading>b {
  font-family:Arial,sans-serif;
}

.ai-prompts {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.ai-prompts button {
  font-size:12px;
  text-align:start;
  border:1px solid var(--border);
  border-radius:6px;
  padding:8px 12px;
  color:var(--muted);
  background:var(--bg);
}

.ai-prompts button[aria-pressed=true] {
  border-color:var(--accent-border);
  color:var(--text);
  background:var(--glow);
}

.ai-answer {
  margin-top:22px;
  padding:23px 20px;
  background:var(--raised);
  border-radius:8px;
  border-inline-start:2px solid var(--accent);
  font-size:14px;
  line-height:2;
  min-height:132px;
}

.flow-section {
  border-block:1px solid var(--border);
  background:var(--surface);
}

.steps-grid,.values-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:54px;
}

.step-index {
  display:block;
  font:400 35px monospace;
  color:var(--step-color);
  letter-spacing:-3px;
  margin-bottom:22px;
}

.steps-grid h3,.values-grid h3 {
  font-size:21px;
  margin-bottom:12px;
}

.steps-grid p,.values-grid p {
  font-size:15px;
  color:var(--muted);
  line-height:2;
}

.steps-grid article {
  border-inline-start:1px solid var(--border);
  padding-inline-start:25px;
}

.faq-section {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:65px;
}

.faq-section .section-heading h2 {
  font-size:34px;
}

.faq-list details {
  border-bottom:1px solid var(--border);
}

.faq-list summary {
  display:flex;
  list-style:none;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:22px 0;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
}

.faq-list summary::-webkit-details-marker {
  display:none;
}

.faq-list summary .icon {
  width:18px;
  color:var(--muted);
  transition:transform .2s;
}

.faq-list details[open] summary .icon {
  transform:rotate(45deg);
}

.faq-list details p {
  padding-bottom:24px;
  color:var(--muted);
  font-size:14px;
  line-height:2;
}

.cta {
  border:1px solid var(--accent-border);
  border-radius:16px;
  background:radial-gradient(ellipse at 50% 120%,var(--glow-strong),transparent 80%),var(--surface);
  padding:60px 30px 35px;
  text-align:center;
  position:relative;
  overflow:hidden;
  margin-bottom:90px;
}

.cta .eyebrow {
  font-size:10px;
}

.cta h2 {
  font-size:clamp(28px,3.5vw,42px);
  margin:13px 0;
}

.cta p {
  color:var(--muted);
  max-width:570px;
  margin:0 auto 26px;
  font-size:15px;
  line-height:2;
}

.cta-code {
  font:10px monospace;
  color:var(--muted);
  letter-spacing:2px;
  direction:ltr;
  margin-top:36px;
}

.site-footer {
  border-top:1px solid var(--border);
  padding-top:55px;
}

.footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.3fr;
  gap:40px;
  padding-bottom:48px;
}

.footer-brand p {
  max-width:245px;
  font-size:14px;
  color:var(--muted);
  margin:13px 0 20px;
}

.footer-brand .eyebrow {
  font-size:10px;
}

.footer-grid h3 {
  font-size:14px;
  margin-bottom:20px;
  font-weight:600;
}

.footer-grid>div:not(:first-child) a {
  display:block;
  font-size:13px;
  color:var(--muted);
  margin:11px 0;
}

.footer-grid a:hover {
  color:var(--text);
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:25px;
  border-top:1px solid var(--border);
  padding:23px 0;
  font-size:11px;
  color:var(--muted);
}

.footer-bottom a {
  text-decoration:underline;
  text-underline-offset:3px;
}

.footer-bottom a:hover {
  color:var(--accent);
}

.footer-bottom>span:last-child {
  font-size:10px;
  font-family:monospace;
  letter-spacing:1px;
}

.page-hero {
  padding:75px 0 56px;
  text-align:center;
}

.page-hero h1 {
  font-size:clamp(34px,4.5vw,56px);
  font-weight:800;
  margin:17px auto 21px;
  letter-spacing:-1px;
  line-height:1.55;
}

.page-hero h1>span,.contact-intro h1>span {
  color:var(--accent);
}

[data-theme=light] .page-hero h1>span,[data-theme=light] .contact-intro h1>span {
  color:var(--accent);
}

.page-hero>p {
  max-width:700px;
  color:var(--muted);
  margin:auto;
  font-size:17px;
  line-height:2;
}

.page-hero .button-row {
  margin-top:30px;
}

.feature-jump {
  position:static;
  display:flex;
  justify-content:center;
  gap:13px;
  flex-wrap:wrap;
  padding-bottom:35px;
  border-bottom:1px solid var(--border);
  background:transparent;
  box-shadow:none;
}

.feature-jump a {
  display:flex;
  gap:8px;
  align-items:center;
  border:1px solid var(--border);
  padding:8px 16px;
  border-radius:6px;
  font:11px Arial,sans-serif;
  color:var(--muted);
}

.feature-jump .icon {
  width:16px;
}

.feature-details {
  padding-bottom:75px;
}

.feature-detail {
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:100px;
  padding:65px 0;
  border-bottom:1px solid var(--border);
}

.detail-marker {
  display:flex;
  gap:25px;
  align-items:center;
  flex-wrap:wrap;
  align-content:flex-start;
}

.detail-marker>span:first-child {
  font:65px monospace;
  color:var(--border);
}

.detail-marker>.icon {
  width:54px;
  height:54px;
  color:var(--accent);
}

[data-theme=light] .detail-marker>.icon {
  color:var(--accent);
}

.detail-marker .eyebrow {
  width:100%;
  font-size:12px;
}

.feature-detail h2 {
  font-size:30px;
  margin-bottom:15px;
}

.feature-detail p {
  font-size:16px;
  color:var(--muted);
  line-height:2;
}

.check-list {
  list-style:none;
  margin:22px 0 0;
  padding:0;
  display:grid;
  gap:13px;
}

.check-list li {
  display:flex;
  gap:10px;
  font-size:14px;
  align-items:flex-start;
}

.check-list .icon {
  width:16px;
  height:20px;
  margin-top:2px;
  color:var(--accent);
}

[data-theme=light] .check-list .icon {
  color:var(--accent);
}

.outcome {
  border-inline-start:2px solid var(--accent);
  padding-inline-start:18px;
  margin-top:27px;
  color:var(--muted);
  font-size:14px;
}

.info-note {
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:var(--raised);
  padding:23px;
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--muted);
  font-size:14px;
  line-height:2;
  margin-top:35px;
}

.info-note .icon {
  margin-top:3px;
}

.solutions-list {
  display:grid;
  gap:22px;
  padding-bottom:85px;
}

.solution-card {
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:var(--surface);
}

.solution-title,.solution-outcome {
  padding:42px;
}

.solution-title h2 {
  font-size:29px;
  margin:15px 0;
}

.solution-title p {
  font-size:16px;
  line-height:2;
  color:var(--muted);
  max-width:480px;
}

.solution-outcome {
  background:var(--raised);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.solution-outcome .step-index {
  margin-bottom:10px;
}

.solution-outcome>p {
  font-size:13px;
  color:var(--muted);
  margin:25px 0;
}

.solution-outcome .button {
  margin-top:auto;
}

.pricing-section {
  padding-bottom:20px;
}

.plan-picker {
  border:0;
  padding:0;
  margin:0 0 12px;
  text-align:center;
}

.plan-picker legend {
  font-size:13px;
  color:var(--muted);
  margin:0 auto 12px;
}

.plan-picker>div {
  display:inline-flex;
  padding:5px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  gap:5px;
}

.plan-picker label {
  cursor:pointer;
  position:relative;
}

.plan-picker input {
  position:absolute;
  opacity:0;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer;
}

.plan-picker label>span {
  display:block;
  padding:9px 21px;
  font-size:13px;
  border-radius:6px;
}

.plan-picker input:checked+span {
  background:var(--accent);
  color:var(--accent-text);
}

.plan-picker input:focus-visible+span {
  outline:3px solid var(--text);
  outline-offset:2px;
}

.plan-picker .plan-badge {
  display:inline-block;
  margin-inline-start:7px;
  padding:0 8px;
  border-radius:999px;
  background:var(--accent);
  color:var(--accent-text);
  font-size:10px;
  font-weight:600;
  line-height:1.8;
  vertical-align:1px;
}

.plan-picker input:checked+span .plan-badge {
  background:var(--accent-text);
  color:var(--accent);
}

.pricing-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:stretch;
}

.price-card {
  position:relative;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:32px 28px;
  transition:border-color .2s;
}

.price-card.recommended {
  border-color:var(--accent);
  background:linear-gradient(var(--glow),transparent),var(--surface);
}

.recommended-label {
  position:absolute;
  top:0;
  inset-inline:22px auto;
  background:var(--accent);
  color:var(--accent-text);
  padding:3px 13px;
  font-size:10px;
  border-radius:0 0 5px 5px;
  display:none;
}

.recommended .recommended-label {
  display:block;
}

.price-card>.eyebrow {
  font-family:inherit;
  letter-spacing:0;
  font-size:12px;
  display:block;
  margin:8px 0;
}

.price-card h2 {
  font-family:Arial,sans-serif;
  text-align:start;
  font-size:31px;
  letter-spacing:-1px;
}

.price-card .plan-description {
  font-size:14px;
  line-height:2;
  color:var(--muted);
  margin:16px 0 22px;
}

.price {
  padding-bottom:25px;
}

.price strong {
  display:block;
  font-size:27px;
}

.price>span {
  font-size:11px;
  color:var(--muted);
}

.price-card>.button {
  display:flex;
  width:100%;
  margin-bottom:0;
}

.plan-limits {
  border-top:1px solid var(--border);
  margin:0 0 24px;
}

.plan-limits>div {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid var(--border);
}

.plan-limits dt {
  font-size:13px;
  color:var(--muted);
}

.plan-limits dd {
  margin:0;
  font-size:22px;
  font-weight:700;
}

.pricing-note {
  max-width:820px;
  margin:27px auto 0;
  text-align:center;
  color:var(--muted);
  font-size:13px;
  line-height:2;
}

.manifesto {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  background:var(--surface);
}

.manifesto>div {
  padding:50px;
}

.manifesto .manifesto-type {
  background:var(--accent);
  color:var(--accent-text);
  direction:ltr;
  font-family:Arial,sans-serif;
  min-height:390px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.manifesto-type>span {
  font:12px monospace;
  letter-spacing:3px;
  margin-bottom:20px;
}

.manifesto-type strong {
  font-size:clamp(50px,6vw,85px);
  font-weight:850;
  line-height:.95;
  letter-spacing:-6px;
}

.manifesto-type strong>span {
  opacity:.3;
}

.manifesto-type>div {
  font:10px monospace;
  letter-spacing:3px;
  margin-top:35px;
}

.manifesto h2 {
  font-size:29px;
  margin:16px 0;
}

.manifesto p {
  font-size:16px;
  line-height:2.2;
  color:var(--muted);
}

.values-grid article {
  border-top:1px solid var(--border);
  padding-top:30px;
}

.about-statement {
  font-size:28px;
  max-width:800px;
  text-align:center;
  margin-bottom:80px;
  line-height:1.8;
  font-weight:600;
}

.security-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.security-grid article {
  padding:36px;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:12px;
}

.security-grid h2 {
  font-size:24px;
  margin-bottom:17px;
}

.security-grid p {
  font-size:16px;
  color:var(--muted);
  line-height:2;
}

.security-grid+.container {
  margin-bottom:80px;
}

.contact-layout {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:80px;
  padding-top:80px;
  padding-bottom:20px;
  align-items:start;
}

.contact-intro h1 {
  font-size:clamp(30px,3.5vw,44px);
  line-height:1.65;
  margin:20px 0;
  letter-spacing:-1px;
}

.contact-intro>p {
  font-size:16px;
  color:var(--muted);
  line-height:2;
}

.contact-expect {
  border-top:1px solid var(--border);
  padding-top:30px;
  margin-top:35px;
}

.contact-expect h2 {
  font-size:18px;
}

.contact-expect ol {
  list-style:none;
  counter-reset:steps;
  padding:0;
  display:grid;
  gap:18px;
  font-size:14px;
  color:var(--muted);
  margin-top:26px;
}

.contact-expect li {
  display:flex;
  gap:13px;
  align-items:center;
  counter-increment:steps;
}

.contact-expect li:before {
  content:counter(steps,decimal-leading-zero);
  font:12px monospace;
  color:var(--accent);
  border:1px solid var(--border);
  border-radius:50%;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  flex:none;
}

[data-theme=light] .contact-expect li:before {
  color:var(--accent);
}

.contact-direct {
  display:flex;
  gap:16px;
  padding:20px 0;
  border-top:1px solid var(--border);
  font-size:12px;
  color:var(--muted);
}

.contact-direct b {
  display:block;
  color:var(--text);
  font-size:15px;
  font-weight:500;
}

.contact-form-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:32px;
}

.contact-form-card h2 {
  font-size:22px;
  margin-bottom:25px;
}

.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px;
}

.form-field {
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}

.form-field.full {
  grid-column:1/-1;
}

.form-field label {
  font-size:13px;
  color:var(--muted);
}

.form-field input,.form-field select,.form-field textarea,#request-text {
  background:var(--bg);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:6px;
  padding:10px 12px;
  width:100%;
  min-height:45px;
  font-size:14px;
}

.form-field select {
  max-width:100%;
}

.form-field textarea {
  resize:vertical;
  min-height:125px;
}

.form-field textarea::placeholder {
  color:var(--muted);
  font-size:12px;
}

.form-field input[aria-invalid=true],.form-field select[aria-invalid=true] {
  border-color:#e59683;
}

.field-error,.form-error {
  color:#eda897;
  font-size:12px;
}

[data-theme=light] .field-error,[data-theme=light] .form-error {
  color:#a12814;
}

.field-error:empty {
  display:none;
}

.form-error {
  margin-top:10px;
}

.contact-form-card form>.button {
  width:100%;
  margin-top:20px;
}

.result-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.result-actions>.button {
  padding:10px 15px;
  font-size:13px;
}

.text-button {
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:13px;
  padding:10px;
}

.text-button:hover {
  color:var(--text);
}

#request-result>p {
  color:var(--muted);
  font-size:14px;
  line-height:2;
  margin-bottom:20px;
}

#request-text {
  resize:vertical;
  margin-bottom:17px;
  font-size:13px;
  line-height:1.9;
}

#copy-status {
  margin:14px 0 0!important;
  font-size:12px!important;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

html[dir=rtl] .eyebrow {
  font-family:inherit;
  font-size:12px;
  font-weight:500;
  letter-spacing:0;
  line-height:1.9;
}

html[dir=rtl] .feature-jump a {
  font-family:inherit;
  font-size:13px;
  font-weight:500;
  letter-spacing:0;
  line-height:1.8;
}

[lang=en] .hero h1 {
  font-family:Vazirmatn,Arial,sans-serif;
  line-height:1.18;
  letter-spacing:-3px;
  font-size:clamp(46px,6vw,78px);
}

[lang=en] .hero-description {
  line-height:1.8;
}

[lang=en] .hero {
  padding-top:76px;
}

[lang=en] .page-hero h1 {
  line-height:1.2;
  letter-spacing:-2px;
}

[lang=en] .page-hero>p {
  line-height:1.8;
}

[lang=en] .feature-card h3 {
  line-height:1.35;
}

[lang=en] .header-inner {
  gap:27px;
}

[lang=en] nav {
  gap:22px;
}

[lang=en] .header-actions {
  gap:11px;
}

[lang=en] .hero-chips {
  font-size:12px;
}

[lang=en] .contact-intro h1 {
  line-height:1.35;
  letter-spacing:-1.8px;
}

@media(max-width:1050px) {
  .section {
    padding-block:70px;
  }
  .feature-card {
    padding:25px;
  }
  .feature-card h3 {
    font-size:20px;
  }
  .ai-section {
    gap:40px;
  }
  .ai-section h2 {
    font-size:28px;
  }
  .asset-relations {
    padding:12px;
    gap:6px;
  }
  .asset-relations>span {
    font-size:10px;
  }
  .asset-relations>i {
    min-width:5px;
  }
  .contact-layout {
    gap:40px;
  }
  .contact-form-card {
    padding:25px;
  }
  .price-card {
    padding:30px 22px;
  }
  .price strong {
    font-size:21px;
  }
  .feature-detail {
    gap:55px;
  }
  .solution-title,.solution-outcome {
    padding:32px;
  }
  .manifesto>div {
    padding:35px;
  }
  [lang=en] .header-inner {
    gap:20px;
  }
  [lang=en] nav {
    gap:16px;
  }
  [lang=en] .header-actions {
    gap:9px;
  }
  .feature-grid .feature-card:last-child {
    grid-column:span 3;
  }
}

@media(max-width:800px) {
  .section {
    padding-block:55px;
  }
  .section-heading {
    margin-bottom:26px;
  }
  .section-heading h2 {
    font-size:31px;
  }
  .feature-grid {
    grid-template-columns:1fr 1fr;
  }
  .feature-card.wide {
    grid-column:span 2;
  }
  .feature-grid .feature-card:last-child {
    grid-column:span 2;
  }
  .ai-section {
    grid-template-columns:1fr;
    gap:30px;
  }
  .ai-section h2 {
    font-size:30px;
  }
  .ai-section>div>p {
    max-width:600px;
  }
  .steps-grid,.values-grid {
    gap:25px;
  }
  .steps-grid h3,.values-grid h3 {
    font-size:18px;
  }
  .steps-grid p,.values-grid p {
    font-size:14px;
  }
  .faq-section {
    grid-template-columns:1fr;
    gap:0;
  }
  .faq-section .section-heading {
    margin-bottom:15px;
  }
  .cta {
    margin-bottom:60px;
  }
  .footer-grid {
    grid-template-columns:1.5fr 1fr 1fr;
    gap:27px;
  }
  .footer-grid>div:last-child {
    grid-column:2/-1;
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:10px;
  }
  .page-hero {
    padding-top:55px;
  }
  .page-hero>p {
    font-size:16px;
  }
  .feature-jump {
    position:static;
    inset:auto;
    display:flex;
    padding:0 0 25px;
    border:0;
    border-bottom:1px solid var(--border);
  }
  .feature-jump a {
    font-size:10px;
    padding:8px 11px;
  }
  .feature-detail {
    grid-template-columns:.5fr 1.5fr;
    gap:35px;
    padding:45px 0;
  }
  .detail-marker {
    gap:15px;
  }
  .detail-marker>span:first-child {
    font-size:50px;
  }
  .detail-marker>.icon {
    width:35px;
    height:35px;
  }
  .detail-marker .eyebrow {
    font-size:10px;
    letter-spacing:1px;
  }
  .feature-detail h2 {
    font-size:25px;
  }
  .pricing-grid {
    gap:13px;
  }
  .price-card {
    padding:30px 17px;
  }
  .price-card h2 {
    font-size:26px;
  }
  .price-card .plan-description {
    font-size:12px;
  }
  .price strong {
    font-size:18px;
  }
  .price>span {
    font-size:10px;
  }
  .price-card>.button {
    font-size:13px;
    padding:11px;
  }
  .solution-card {
    grid-template-columns:1fr 1fr;
  }
  .solution-title,.solution-outcome {
    padding:25px;
  }
  .solution-title h2 {
    font-size:25px;
  }
  .solution-title p {
    font-size:14px;
  }
  .solution-outcome .check-list li {
    font-size:13px;
  }
  .manifesto {
    grid-template-columns:1fr 1fr;
  }
  .manifesto>div {
    padding:25px;
  }
  .manifesto h2 {
    font-size:25px;
  }
  .manifesto p {
    font-size:14px;
  }
  .manifesto-type strong {
    font-size:56px;
    letter-spacing:-4px;
  }
  .about-statement {
    font-size:23px;
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:35px;
    padding-top:45px;
  }
  .contact-intro h1 {
    font-size:38px;
  }
  .contact-expect {
    margin-top:22px;
    padding-top:22px;
  }
  .contact-expect ol {
    gap:10px;
  }
  .contact-form-card {
    padding:30px;
  }
  .security-grid h2 {
    font-size:22px;
  }
  .security-grid article {
    padding:27px;
  }
  .security-grid p {
    font-size:14px;
  }
  [lang=en] .hero {
    padding-top:55px;
  }
  [lang=en] .header-actions {
    gap:12px;
  }
}

@media(max-width:580px) {
  .section-heading h2 {
    font-size:27px;
  }
  .section-heading p {
    font-size:15px;
  }
  .feature-grid {
    grid-template-columns:1fr;
  }
  .feature-card.wide,.feature-grid .feature-card:last-child {
    grid-column:span 1;
  }
  .feature-card {
    padding:25px;
  }
  .feature-card h3 {
    font-size:22px;
  }
  .asset-relations {
    flex-wrap:wrap;
    row-gap:12px;
  }
  .asset-relations>span {
    font-size:10px;
  }
  .asset-relations .icon {
    width:14px;
  }
  .steps-grid,.values-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  .steps-grid article {
    padding-inline-start:20px;
  }
  .step-index {
    font-size:29px;
    margin-bottom:12px;
  }
  .steps-grid h3,.values-grid h3 {
    font-size:21px;
  }
  .steps-grid p,.values-grid p {
    font-size:15px;
  }
  .ai-preview {
    padding:19px;
  }
  .ai-heading>b {
    font-size:15px;
  }
  .ai-prompts button {
    font-size:11px;
  }
  .ai-answer {
    font-size:13px;
    min-height:140px;
    padding:17px;
  }
  .ai-section h2 {
    font-size:clamp(20px,6vw,28px);
  }
  .faq-section .section-heading h2 {
    font-size:29px;
  }
  .faq-list summary {
    font-size:14px;
    gap:15px;
  }
  .faq-list details p {
    font-size:13px;
  }
  .cta {
    padding:40px 23px 25px;
    border-radius:12px;
  }
  .cta h2 {
    font-size:28px;
  }
  .cta p {
    font-size:14px;
  }
  .cta .button {
    font-size:13px;
    padding:12px 15px;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:35px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-grid>div:last-child {
    grid-column:auto;
  }
  .footer-brand p {
    max-width:none;
  }
  .footer-bottom {
    font-size:10px;
  }
  .page-hero {
    padding:45px 0 37px;
  }
  .page-hero .eyebrow {
    font-size:10px;
  }
  .page-hero h1 {
    font-size:34px;
  }
  .page-hero>p {
    font-size:15px;
  }
  .feature-jump {
    gap:7px;
  }
  .feature-jump a {
    font-size:9px;
    gap:5px;
    padding:8px;
  }
  .feature-jump .icon {
    width:13px;
  }
  .feature-detail {
    grid-template-columns:1fr;
    gap:20px;
    padding:35px 0;
  }
  .detail-marker {
    align-items:center;
  }
  .detail-marker>span:first-child {
    font-size:38px;
  }
  .detail-marker .eyebrow {
    width:auto;
    flex:1;
    text-align:end;
  }
  .feature-detail h2 {
    font-size:26px;
  }
  .feature-detail p {
    font-size:15px;
  }
  .info-note {
    padding:19px;
    font-size:13px;
  }
  .pricing-grid {
    grid-template-columns:1fr;
    gap:25px;
  }
  .price-card {
    padding:34px 28px;
  }
  .price-card h2 {
    font-size:32px;
  }
  .price-card .plan-description {
    font-size:15px;
  }
  .price strong {
    font-size:26px;
  }
  .price>span {
    font-size:12px;
  }
  .plan-picker label>span {
    font-size:11px;
    padding:9px 11px;
  }
  .plan-picker>div {
    gap:3px;
  }
  .pricing-note {
    font-size:12px;
  }
  .solution-card {
    grid-template-columns:1fr;
  }
  .solution-title,.solution-outcome {
    padding:29px;
  }
  .solution-title h2 {
    font-size:27px;
  }
  .solution-outcome .step-index {
    display:none;
  }
  .solution-outcome .check-list {
    margin-top:0;
  }
  .solution-outcome .check-list li {
    font-size:14px;
  }
  .solution-outcome>p {
    font-size:14px;
  }
  .solutions-list {
    padding-bottom:50px;
  }
  .manifesto {
    grid-template-columns:1fr;
  }
  .manifesto .manifesto-type {
    min-height:290px;
    padding:32px;
  }
  .manifesto-type strong {
    font-size:69px;
    letter-spacing:-4px;
  }
  .manifesto>div {
    padding:30px;
  }
  .manifesto p {
    font-size:15px;
  }
  .values-grid {
    padding-top:40px;
  }
  .about-statement {
    font-size:22px;
    margin-bottom:55px;
  }
  .security-grid {
    grid-template-columns:1fr;
  }
  .security-grid h2 {
    font-size:23px;
  }
  .security-grid p {
    font-size:15px;
  }
  .contact-form-card {
    padding:24px;
  }
  .contact-intro h1 {
    font-size:33px;
  }
  .contact-form-card h2 {
    font-size:20px;
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:15px;
  }
  .contact-layout {
    gap:25px;
  }
  .contact-intro .eyebrow {
    font-size:10px;
  }
  .form-field label {
    font-size:14px;
  }
  .form-field input,.form-field select,.form-field textarea {
    font-size:16px;
  }
  [lang=en] .hero h1 {
    font-size:48px;
    letter-spacing:-2px;
  }
  [lang=en] .hero-chips {
    font-size:10px;
  }
  [lang=en] .page-hero h1 {
    font-size:37px;
  }
  [lang=en] .contact-intro h1 {
    font-size:36px;
  }
}

@keyframes enter {
  from {
    transform:translateY(6px);
  }
  to {
    transform:translateY(0);
  }
}

.hero-content,.page-hero,.contact-intro {
  animation:enter .6s ease both;
}

@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}

/* Pricing controls share the existing native radio/select patterns. */
.pricing-controls {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:24px 40px;
}
.deployment-hint,.pricing-range {
  text-align:center;
  color:var(--muted);
  font-size:13px;
}
.pricing-range {
  margin:12px 0 30px;
  transition:color .25s;
}
.pricing-range.is-offer {
  color:var(--accent);
}
.pricing-range.is-updated {
  animation:price-pop .5s ease;
}
.price-card {
  display:flex;
  flex-direction:column;
}
[data-price-value] {
  display:inline-block;
  transition:color .25s;
}
[data-price-value].is-updated {
  color:var(--accent);
  animation:price-pop .5s ease;
}
[data-price-period].is-updated {
  display:inline-block;
  animation:price-pop .5s ease;
}
@keyframes price-pop {
  from {
    opacity:.25;
    transform:translateY(4px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
.price-card>.button {
  margin-top:auto;
}
.price-currency {
  font-size:14px;
  font-weight:500;
}
.price-saving {
  font-size:12px;
  color:var(--accent);
  margin:12px 0 0;
}
.plan-features {
  margin:0 0 25px;
  padding:0;
}
.plan-features>div {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  padding:9px 0;
  font-size:13px;
}
.plan-features dd { margin:0; }
.plan-features .included dd { color:var(--accent);font-weight:600; }
.plan-features .excluded { color:var(--muted); }
.plan-features .support-row {
  display:block;
  border-top:1px solid var(--border);
  margin-top:12px;
  padding-top:14px;
  min-height:100px;
}
.support-row dt { color:var(--muted);margin-bottom:5px; }
.installment-summary {
  border:1px solid var(--border);
  background:var(--raised);
  border-radius:8px;
  padding:15px;
  margin-bottom:24px;
  font-size:12px;
}
.installment-summary h3 { font-size:14px;margin:0 0 12px; }
.installment-summary p { margin:8px 0 0; }
.installment-summary strong { display:block; }
.addons-section { padding:65px 0 25px; }
.addons-picker,.contact-addons { border:0;padding:0;margin:0 0 25px;min-width:0; }
.addon-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px; }
.addon-option {
  display:flex;
  gap:12px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:20px;
  background:var(--surface);
  cursor:pointer;
  align-items:flex-start;
}
.addon-option:has(input:checked) { border-color:var(--accent); }
.addon-option input { margin-top:7px;accent-color:var(--accent);flex-shrink:0; }
.addon-option input:focus-visible { outline:2px solid var(--accent);outline-offset:4px; }
.addon-option strong { display:block;font-size:14px; }
.addon-option span>span { display:block;font-size:12px;color:var(--muted);margin-top:5px; }
.purchase-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.purchase-fields,.quote-summary { grid-column:1/-1;min-width:0; }
.contact-addons { grid-column:1/-1; }
.contact-addons legend { font-size:14px;margin-bottom:12px; }
.contact-addons .addon-grid { grid-template-columns:1fr; }
.contact-addons .addon-option { padding:12px; }
.quote-summary { padding:18px;background:var(--raised);border:1px solid var(--border);border-radius:8px; }
.quote-summary p { margin:8px 0;font-size:14px; }
.quote-summary small { color:var(--muted); }
@media(max-width:600px) {
  .pricing-controls { flex-direction:column;gap:18px; }
  .pricing-controls .plan-picker label>span { font-size:12px;padding:10px; }
  .pricing-controls .plan-picker .plan-badge { font-size:9px;padding:0 6px; }
  .addon-grid,.purchase-fields { grid-template-columns:1fr; }
  .plan-features .support-row { min-height:0; }
}

/* Pricing cards share their content rows so nothing needs a fake min-height. */
@media(min-width:581px) {
  .pricing-grid {
    grid-template-rows:repeat(8,auto);
    row-gap:0;
  }
  .price-card {
    display:grid;
    grid-template-rows:subgrid;
    grid-row:span 8;
  }
  .price-card>.eyebrow { grid-row:1; }
  .price-card>h2 { grid-row:2; }
  .price-card>.plan-description { grid-row:3;align-self:start; }
  .price-card>.price { grid-row:4; }
  .price-card>.plan-limits { grid-row:5; }
  .price-card>.plan-features { grid-row:6; }
  .price-card>.installment-summary { grid-row:7; }
  .price-card>.button { grid-row:8;margin-top:0; }
}

/* Card hover: a soft spotlight and a light that travels along the edge. */
.feature-card,.solution-card,.price-card {
  position:relative;
  --glow-x:50%;
  --glow-y:50%;
  transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}

.feature-card::after,.solution-card::after,.price-card::after {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(130px circle at var(--glow-x) var(--glow-y),var(--card-core),transparent 70%),
    radial-gradient(240px circle at var(--glow-x) var(--glow-y),var(--card-glow),transparent 70%);
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
  z-index:0;
}

.feature-card>*,.solution-card>*,.price-card>*:not(.recommended-label) {
  position:relative;
  z-index:1;
}

.feature-card::before,.solution-card::before,.price-card::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:radial-gradient(180px circle at var(--glow-x) var(--glow-y),var(--card-edge),transparent 65%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
  z-index:2;
}

@media (hover:hover) and (pointer:fine) {
  :is(.feature-card,.solution-card,.price-card):hover::after,
  :is(.feature-card,.solution-card,.price-card):focus-within::after {
    opacity:1;
  }
  :is(.feature-card,.solution-card,.price-card):hover::before,
  :is(.feature-card,.solution-card,.price-card):focus-within::before {
    opacity:1;
  }
  :is(.feature-card,.price-card):hover,
  :is(.feature-card,.price-card):focus-within {
    border-color:var(--accent-border);
    transform:translateY(-4px);
    box-shadow:var(--card-shadow);
  }
  .solution-card:hover {
    border-color:var(--accent-border);
    transform:translateY(-2px);
    box-shadow:var(--card-shadow);
  }
  :is(.feature-card,.solution-card):hover .feature-icon {
    transform:translateY(-2px) scale(1.04);
    border-color:var(--accent-border);
  }
  .feature-card:hover .card-link>span {
    transform:translateY(-1px) scale(1.2);
    color:var(--accent);
  }
}

.feature-icon {
  transition:transform .3s ease,border-color .3s ease,background .3s ease,color .3s ease;
}

.card-link>span {
  display:inline-block;
  transition:transform .3s ease,color .3s ease;
}
