/* Generated from the Astro pages by scripts/build-wp-css.py. Each page's styles are scoped to .gs-<page>. */


/* ---- pages/index.astro ---- */
.gs-home .hero{
    position: relative;
    padding-block: clamp(48px, 7vw, 80px) clamp(56px, 8vw, 90px);
    overflow: hidden;
  }
.gs-home .hero::before{
    content: '';
    position: absolute;
    inset: 0;
    background: var(--glow);
    pointer-events: none;
  }
.gs-home .hero > .container{
    position: relative;
    z-index: 1;
  }
.gs-home .hero__top{
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 36px;
  }
.gs-home .hero__pills{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
.gs-home .hero__trial{
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-muted);
    font-weight: 600;
  }
.gs-home .dot{
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--cyan);
    box-shadow: 0 0 12px var(--cyan);
  }
.gs-home .hero__grid{
    display: grid;
    gap: 56px;
    align-items: center;
  }
@media (min-width: 1000px){.gs-home .hero__grid{
      grid-template-columns: 1.1fr 1fr;
    }}
.gs-home .hero__copy, .gs-home .hero__visual{
    min-width: 0;
  }
.gs-home .hero h1{
    font-size: var(--fs-hero);
    line-height: 1.05;
  }
.gs-home .kw{
    display: block;
    color: var(--cyan);
  }
.gs-home .hero .lead{
    margin: 28px 0 36px;
    max-width: 560px;
  }
.gs-home .hero__ctas{
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
  }
.gs-home .checks{
    list-style: none;
    padding: 0;
    margin: 34px 0 26px;
    display: grid;
    gap: 14px;
  }
.gs-home .checks li{
    display: flex;
    gap: 14px;
    align-items: center;
    color: #cfd5e2;
    font-size: 17px;
  }
.gs-home .check{
    flex: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--grad);
    display: grid;
    place-items: center;
  }
.gs-home .check svg{
    width: 12px;
    height: 12px;
  }
.gs-home .tags{
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
.gs-home a.tag{
    text-decoration: none;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
  }
.gs-home a.tag:hover{
    color: var(--text);
    border-color: rgba(103, 232, 249, 0.4);
  }
@media (max-width: 520px){.gs-home .hero__ctas{
      display: grid;
    }}
.gs-home .facts{
    padding-block: 60px;
    border-top: 1px solid var(--border);
  }
.gs-home .facts__label{
    text-align: center;
    color: var(--dim);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 24px;
  }
.gs-home .facts__grid{
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  }
.gs-home .fcard{
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 26px;
    text-align: left;
    transition:
      border-color 0.2s,
      transform 0.2s;
  }
.gs-home .fcard:hover{
    border-color: rgba(103, 232, 249, 0.3);
    transform: translateY(-2px);
  }
.gs-home .fcard h3{
    font-size: 19px;
    margin-bottom: 8px;
  }
.gs-home .fcard p{
    color: var(--text-muted);
    font-size: 15px;
  }
.gs-home .split-sec{
    padding-block: var(--section-y);
    border-top: 1px solid var(--border);
  }
.gs-home .split{
    display: grid;
    gap: 56px;
    align-items: center;
  }
@media (min-width: 1000px){.gs-home .split{
      grid-template-columns: 1fr 1.15fr;
    }}
.gs-home .split__copy{
    display: grid;
    justify-items: start;
    gap: 18px;
    min-width: 0;
  }
.gs-home .split__copy h2{
    font-size: var(--fs-2xl);
  }
.gs-home .split__copy .checks{
    margin: 6px 0;
  }
.gs-home .split__copy .checks li{
    font-size: 16px;
  }
.gs-home .split__visual{
    margin: 0;
    min-width: 0;
    display: grid;
    gap: 12px;
  }
.gs-home .split__visual figcaption{
    font-size: 14px;
  }
.gs-home .row-btns{
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 10px;
  }
.gs-home .row-btns--center{
    justify-content: center;
  }
.gs-home .steps{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  }
.gs-home .step__num{
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    border: 1px solid rgba(103, 232, 249, 0.35);
    background: rgba(103, 232, 249, 0.08);
    color: var(--cyan);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 22px;
    box-shadow: 0 0 24px -6px rgba(103, 232, 249, 0.5);
  }
.gs-home .devices{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  }
.gs-home .device{
    display: block;
    height: 100%;
    color: var(--text);
    text-decoration: none;
  }
.gs-home .device:hover{
    color: var(--text);
  }
.gs-home .device::before{
    content: '';
    display: block;
    width: 34px;
    height: 3px;
    border-radius: 3px;
    background: var(--grad);
    margin-bottom: 20px;
  }
.gs-home .center-actions{
    text-align: center;
    margin-top: 36px;
  }
.gs-home .reco-sec{
    padding-block: var(--section-y);
    border-top: 1px solid var(--border);
  }
.gs-home .reco{
    display: grid;
    gap: 40px;
    align-items: center;
    padding: clamp(28px, 5vw, 56px);
    border-radius: 28px;
    border: 1px solid rgba(103, 232, 249, 0.25);
    background:
      radial-gradient(500px 300px at 85% 80%, rgba(167, 139, 250, 0.18), transparent 60%),
      linear-gradient(135deg, #121a26, #0c0f18);
    box-shadow: 0 30px 100px -40px rgba(103, 232, 249, 0.35);
  }
@media (min-width: 900px){.gs-home .reco{
      grid-template-columns: 1.5fr 1fr;
    }}
.gs-home .reco__copy{
    display: grid;
    gap: 18px;
    justify-items: start;
  }
.gs-home .reco h2{
    font-size: clamp(28px, 3.4vw, 42px);
  }
.gs-home .reco__box{
    display: grid;
    gap: 8px;
    justify-items: start;
    background: #080b12;
    border: 1px solid var(--border-strong);
    border-radius: 22px;
    padding: 28px;
  }
.gs-home .reco__price{
    font-family: var(--font-display);
    font-size: 56px;
    font-weight: 700;
    line-height: 1.1;
    margin-top: 8px;
  }
.gs-home .reco__box .btn{
    margin-top: 14px;
  }
.gs-home .small{
    font-size: var(--fs-sm);
  }
.gs-home .plans{
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
    text-align: left;
  }
.gs-home .more{
    margin-top: 32px;
    text-align: center;
    font-weight: 600;
  }
.gs-home .compare{
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--card);
    text-align: left;
  }
.gs-home .compare table{
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
  }
.gs-home .compare th, .gs-home .compare td{
    text-align: left;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
  }
.gs-home .compare tr:last-child > *{
    border-bottom: 0;
  }
.gs-home .compare thead th{
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
  }
.gs-home .compare thead th:last-child{
    color: var(--cyan);
  }
.gs-home .compare td:nth-child(2){
    color: var(--text-muted);
  }
.gs-home .compare td:last-child{
    background: rgba(103, 232, 249, 0.05);
  }
@media (max-width: 640px){.gs-home .compare thead{
      display: none;
    }
.gs-home .compare tr{
      display: grid;
      grid-template-columns: 1fr 1fr;
      border-bottom: 1px solid var(--border);
    }
.gs-home .compare tbody th{
      grid-column: 1 / -1;
      padding-bottom: 4px;
      border: 0;
    }
.gs-home .compare td{
      border: 0;
      padding-top: 8px;
    }
.gs-home .compare td::before{
      display: block;
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted);
      margin-bottom: 4px;
      font-weight: 600;
    }
.gs-home .compare td:nth-child(2)::before{
      content: 'Cable';
    }
.gs-home .compare td:nth-child(3)::before{
      content: 'Swoop TV';
      color: var(--cyan);
    }}
.gs-home .chat{
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 40;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--grad);
    display: grid;
    place-items: center;
    box-shadow: 0 14px 40px -8px rgba(103, 232, 249, 0.6);
  }
@media (max-width: 600px){.gs-home .chat{
      width: 52px;
      height: 52px;
      right: 14px;
      bottom: 14px;
    }}

/* ---- pages/pricing.astro ---- */
.gs-pricing .plans-wrap{
    padding-bottom: var(--section-y);
  }
.gs-pricing .plans{
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  }
.gs-pricing .note{
    text-align: center;
    margin-top: 24px;
    font-size: var(--fs-sm);
  }
.gs-pricing .incl{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 14px 32px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    margin-bottom: 48px;
  }
.gs-pricing .incl li{
    display: flex;
    gap: 12px;
    align-items: flex-start;
  }
.gs-pricing .incl svg{
    flex: none;
    color: var(--live);
    margin-top: 3px;
  }
.gs-pricing .compare-wrap{
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
  }
.gs-pricing .table{
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
    min-width: 480px;
  }
.gs-pricing .table caption{
    text-align: left;
    padding: 16px 20px 0;
    font-weight: 600;
  }
.gs-pricing .table th, .gs-pricing .table td{
    text-align: left;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
  }
.gs-pricing .table thead th{
    color: var(--text-muted);
    font-weight: 600;
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
.gs-pricing .table tbody tr:last-child > *{
    border-bottom: 0;
  }
.gs-pricing .table td{
    font-variant-numeric: tabular-nums;
  }
.gs-pricing .permo{
    display: block;
    font-size: var(--fs-xs);
    color: var(--text-muted);
  }
.gs-pricing .table{
    min-width: 640px;
  }
.gs-pricing .after{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    margin-bottom: 28px;
  }
.gs-pricing .after li{
    display: grid;
    gap: 8px;
    padding: 26px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
  }
.gs-pricing .after__icon{
    color: var(--brand);
  }
.gs-pricing .small{
    font-size: var(--fs-sm);
  }
.gs-pricing .faq-more{
    margin-top: 24px;
  }

/* ---- pages/features.astro ---- */
.gs-features .row{
    display: grid;
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
  }
@media (min-width: 960px){.gs-features .row{
      grid-template-columns: 1fr 1.1fr;
    }
.gs-features .row--flip .row__visual{
      order: -1;
    }}
.gs-features .row__visual{
    min-width: 0;
  }
.gs-features .tipline{
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: var(--text-muted);
  }
.gs-features .tipline svg{
    flex: none;
    color: var(--brand);
    margin-top: 3px;
  }

/* ---- pages/free-trial.astro ---- */
.gs-trial .trial-hero{
    position: relative;
    padding-block: clamp(32px, 5vw, 64px) var(--section-y);
  }
.gs-trial .trial-hero::before{
    content: '';
    position: absolute;
    inset: 0;
    background: var(--glow);
    pointer-events: none;
  }
.gs-trial .trial-hero__grid{
    position: relative;
    display: grid;
    gap: 48px;
    align-items: center;
  }
@media (min-width: 960px){.gs-trial .trial-hero__grid{
      grid-template-columns: 1.2fr 1fr;
    }}
.gs-trial .trial-hero__copy{
    display: grid;
    gap: 20px;
    justify-items: start;
  }
.gs-trial .trial-hero h1{
    font-size: var(--fs-3xl);
    font-weight: 700;
  }
.gs-trial .ctas{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }
.gs-trial .trial-steps{
    list-style: none;
    padding: 28px;
    display: grid;
    gap: 22px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-strong);
    background: var(--surface);
  }
.gs-trial .trial-steps li{
    display: flex;
    gap: 16px;
  }
.gs-trial .trial-steps strong{
    display: block;
    margin-bottom: 2px;
  }
.gs-trial .trial-steps .muted{
    font-size: var(--fs-sm);
  }
.gs-trial .n{
    flex: none;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--brand);
    color: var(--brand-ink);
    font-weight: 700;
  }
.gs-trial .split{
    display: grid;
    gap: 32px;
  }
@media (min-width: 900px){.gs-trial .split{
      grid-template-columns: 1.5fr 1fr;
      align-items: start;
    }}
.gs-trial .check{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 16px;
  }
.gs-trial .check li{
    display: flex;
    gap: 12px;
  }
.gs-trial .check svg{
    flex: none;
    color: var(--live);
    margin-top: 3px;
  }
.gs-trial .callout h3{
    margin-bottom: 8px;
  }
.gs-trial .dev{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
    margin-bottom: 20px;
  }
.gs-trial .dev a{
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 60px;
    padding: 14px 18px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    font-weight: 600;
  }
.gs-trial .dev a:hover{
    border-color: var(--brand);
    color: var(--text);
  }
.gs-trial .dev svg{
    color: var(--brand);
  }
.gs-trial .small{
    font-size: var(--fs-sm);
  }
.gs-trial .end{
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 14px;
    padding-block: var(--section-y);
  }

/* ---- pages/contact.astro ---- */
.gs-contact .contact{
    display: grid;
    gap: 32px;
    padding-bottom: var(--section-y);
  }
@media (min-width: 1000px){.gs-contact .contact{
      grid-template-columns: 1.4fr 1fr;
      align-items: start;
    }}
.gs-contact .card-form{
    padding: clamp(22px, 4vw, 36px);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: var(--surface);
  }
.gs-contact .card-form h2, .gs-contact .info h2{
    font-size: var(--fs-xl);
  }
.gs-contact .two{
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  }
.gs-contact .small{
    font-size: var(--fs-sm);
  }
.gs-contact .info{
    display: grid;
    gap: 16px;
  }
.gs-contact .info__box{
    padding: 24px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
    display: grid;
    gap: 12px;
  }
.gs-contact .info__box h2{
    font-size: var(--fs-lg);
  }
.gs-contact .info ul{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 16px;
  }
.gs-contact .info li{
    display: flex;
    gap: 12px;
  }
.gs-contact .info li svg{
    flex: none;
    color: var(--brand);
  }
.gs-contact .info li strong{
    display: block;
  }
.gs-contact .info li a{
    word-break: break-all;
  }

/* ---- pages/faq.astro ---- */
.gs-faq .faq-page{
    display: grid;
    gap: 40px;
    padding-bottom: var(--section-y);
  }
@media (min-width: 1000px){.gs-faq .faq-page{
      grid-template-columns: 240px minmax(0, 1fr);
      align-items: start;
    }
.gs-faq .toc{
      position: sticky;
      top: 96px;
    }}
.gs-faq .toc__title{
    font-family: var(--font-body);
    font-size: var(--fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 10px;
  }
.gs-faq .toc ul{
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
@media (min-width: 1000px){.gs-faq .toc ul{
      display: grid;
      gap: 2px;
    }}
.gs-faq .toc a{
    display: inline-block;
    padding: 8px 12px;
    border-radius: 10px;
    color: var(--text);
    text-decoration: none;
    background: var(--surface);
    border: 1px solid var(--border);
    font-size: var(--fs-sm);
  }
@media (min-width: 1000px){.gs-faq .toc a{
      background: none;
      border: 0;
      padding: 8px 0;
    }}
.gs-faq .toc a:hover{
    color: var(--brand);
  }
.gs-faq .groups{
    display: grid;
    gap: 56px;
  }
.gs-faq .groups h2{
    font-size: var(--fs-xl);
    margin-bottom: 18px;
  }

/* ---- pages/about.astro ---- */
.gs-about .tablewrap{
    overflow-x: auto;
  }
.gs-about .tablewrap th{
    width: 34%;
  }

/* ---- pages/reseller.astro ---- */
.gs-reseller .mini{
    margin-top: 6px;
    padding-left: 1.1em;
    color: var(--text-muted);
    font-size: var(--fs-sm);
    display: grid;
    gap: 4px;
  }
.gs-reseller .note{
    margin-top: 24px;
    font-size: var(--fs-sm);
  }
.gs-reseller .card-form{
    padding: clamp(22px, 4vw, 36px);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: var(--surface);
  }
.gs-reseller .two{
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  }
.gs-reseller .small{
    font-size: var(--fs-sm);
  }

/* ---- pages/setup/[slug].astro ---- */
.gs-setup .guide{
    padding-block: clamp(24px, 4vw, 48px) var(--section-y);
  }
.gs-setup .guide__head{
    display: grid;
    gap: 18px;
    max-width: 820px;
    margin-bottom: clamp(32px, 5vw, 56px);
  }
.gs-setup .guide__head h1{
    font-size: var(--fs-3xl);
    font-weight: 700;
  }
.gs-setup .eyebrow svg{
    display: inline;
  }
.gs-setup .meta{
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
.gs-setup .meta li{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--border);
    background: var(--surface);
    font-size: var(--fs-sm);
    color: var(--text-muted);
  }
.gs-setup .meta svg{
    color: var(--brand);
  }
.gs-setup .guide__body{
    display: grid;
    gap: 48px;
  }
@media (min-width: 1000px){.gs-setup .guide__body{
      grid-template-columns: minmax(0, 1fr) 300px;
      align-items: start;
    }
.gs-setup .side{
      position: sticky;
      top: 96px;
    }}
.gs-setup .guide__body .prose > h2:first-child{
    margin-top: 0;
  }
.gs-setup .steps{
    list-style: none;
    padding: 0 !important;
    counter-reset: s;
    display: grid;
    gap: 16px;
  }
.gs-setup .steps li{
    counter-increment: s;
    position: relative;
    padding: 22px 22px 22px 72px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
  }
.gs-setup .steps li::before{
    content: counter(s);
    position: absolute;
    left: 22px;
    top: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--brand);
    color: var(--brand-ink);
    font-weight: 700;
  }
.gs-setup .steps h3{
    margin: 0 0 6px !important;
    font-size: var(--fs-base);
  }
.gs-setup .steps p{
    color: var(--text-muted);
  }
.gs-setup .small{
    font-size: var(--fs-sm);
  }
.gs-setup .side{
    display: grid;
    gap: 16px;
  }
.gs-setup .side__box{
    padding: 22px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
    display: grid;
    gap: 10px;
  }
.gs-setup .side__title{
    font-family: var(--font-body);
    font-size: var(--fs-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
.gs-setup .side ul{
    list-style: none;
    padding: 0;
  }
.gs-setup .side ul a{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 0;
    color: var(--text);
    text-decoration: none;
  }
.gs-setup .side ul a:hover{
    color: var(--brand);
  }
.gs-setup .side ul svg{
    color: var(--brand);
  }
.gs-setup .side__box--cta{
    background: var(--glow), var(--surface);
  }

/* ---- pages/blog/[slug].astro ---- */
.gs-post .article{
    padding-block: clamp(24px, 4vw, 48px) var(--section-y);
  }
.gs-post .article__head{
    max-width: 820px;
    display: grid;
    gap: 16px;
    margin-bottom: 40px;
  }
.gs-post .article__head h1{
    font-size: var(--fs-3xl);
    font-weight: 700;
  }
.gs-post .byline{
    font-size: var(--fs-sm);
  }
.gs-post .quick{
    margin-top: 8px;
    padding: 20px 22px;
    border-radius: var(--radius);
    border: 1px solid var(--border-strong);
    background: var(--glow), var(--surface);
  }
.gs-post .quick__label{
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--brand);
    margin-bottom: 6px;
  }
.gs-post .article__grid{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }
.gs-post .article__grid > *{
    min-width: 0;
  }
@media (min-width: 1100px){.gs-post .article__grid{
      grid-template-columns: 240px minmax(0, 1fr);
      align-items: start;
    }
.gs-post .toc{
      position: sticky;
      top: 96px;
    }}
.gs-post .toc{
    padding: 18px 20px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
    font-size: var(--fs-sm);
  }
.gs-post .toc__title{
    font-weight: 700;
    margin-bottom: 8px;
  }
.gs-post .toc ol{
    padding-left: 1.2em;
    display: grid;
    gap: 6px;
  }
.gs-post .toc a{
    color: var(--text-muted);
    text-decoration: none;
  }
.gs-post .toc a:hover{
    color: var(--brand);
  }
.gs-post .article__body h2{
    scroll-margin-top: 96px;
  }
.gs-post .article-cta{
    margin-top: 48px !important;
    padding: 26px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-strong);
    background: var(--glow), var(--surface);
    display: grid;
    gap: 10px;
    justify-items: start;
  }
.gs-post .article-cta__title{
    font-family: var(--font-display);
    font-size: var(--fs-xl);
    font-weight: 650;
  }
.gs-post .related{
    margin-top: var(--section-y);
  }
.gs-post .article-faq__item h3{
    font-size: var(--fs-base);
    margin-top: 1.4em;
  }
.gs-post .article-faq__item p{
    color: var(--text-muted);
    margin-top: 0.4em;
  }
.gs-post .sources ul{
    font-size: var(--fs-sm);
  }
.gs-post .small{
    font-size: var(--fs-sm);
  }
.gs-post .related h2{
    margin-bottom: 24px;
  }
.gs-post .related__h a{
    color: var(--text);
    text-decoration: none;
  }
.gs-post .related p{
    margin-top: 8px;
    font-size: var(--fs-sm);
  }

/* ---- pages/blog/index.astro ---- */
.gs-blog .posts{
    display: grid;
    gap: 64px;
    padding-bottom: var(--section-y);
  }
.gs-blog .cluster__head{
    display: grid;
    gap: 8px;
    margin-bottom: 22px;
    max-width: 760px;
  }
.gs-blog .cluster__head h2{
    font-size: var(--fs-xl);
  }
.gs-blog .posts ul{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
  }
.gs-blog .posts .post{
    display: grid;
    gap: 12px;
    height: 100%;
    align-content: start;
  }
.gs-blog .post__meta{
    display: flex;
    gap: 12px;
    align-items: center;
    font-size: var(--fs-xs);
  }
.gs-blog .tag{
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    background: var(--brand-soft);
    color: var(--brand);
    font-weight: 600;
  }
.gs-blog h3 a{
    color: var(--text);
    text-decoration: none;
  }
.gs-blog .posts p{
    font-size: var(--fs-sm);
  }

/* ---- pages/404.astro ---- */
.gs-nf .nf{
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 18px;
    padding-block: clamp(48px, 10vw, 120px);
  }
.gs-nf .code{
    font-family: var(--font-display);
    font-size: clamp(5rem, 18vw, 10rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.05em;
    color: var(--brand);
  }
.gs-nf .lead{
    margin-inline: auto;
  }
.gs-nf .actions{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
  }
.gs-nf .links{
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    justify-content: center;
    margin-top: 12px;
  }
.gs-nf .links a{
    display: inline-block;
    padding: 8px 0;
  }

/* ---- pages/login.astro ---- */
.gs-login .row{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 8px 16px;
    font-size: var(--fs-sm);
  }
.gs-login .forgot{
    padding: 8px 0;
  }

/* ---- pages/signup.astro ---- */
.gs-signup .plan-note{
    padding: 10px 14px;
    border-radius: 12px;
    background: var(--brand-soft);
    font-size: var(--fs-sm);
    font-weight: 600;
  }

/* ---- pages/dashboard.astro ---- */
.gs-dashboard .dash{
    padding-block: 32px var(--section-y);
    display: grid;
    gap: 28px;
  }
.gs-dashboard .dash__head{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
  }
.gs-dashboard .dash__head h1{
    font-size: var(--fs-2xl);
  }
.gs-dashboard .dash__head-actions{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
  }
.gs-dashboard .dash__grid{
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  }
.gs-dashboard .panel{
    padding: clamp(20px, 3vw, 28px);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background: var(--surface);
    display: grid;
    gap: 14px;
    align-content: start;
    min-width: 0;
  }
.gs-dashboard .panel--wide{
    grid-column: 1 / -1;
  }
.gs-dashboard .panel h2{
    font-size: var(--fs-lg);
    display: flex;
    align-items: center;
    gap: 10px;
  }
.gs-dashboard .panel h2 svg{
    color: var(--brand);
  }
.gs-dashboard .creds{
    display: grid;
    gap: 10px;
    margin-top: 12px;
  }
.gs-dashboard .creds > div{
    display: grid;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--bg);
    border: 1px solid var(--border);
  }
@media (min-width: 720px){.gs-dashboard .creds > div{
      grid-template-columns: 180px 1fr;
      align-items: center;
    }}
.gs-dashboard .creds dt{
    font-size: var(--fs-sm);
    color: var(--text-muted);
  }
.gs-dashboard .creds dd{
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    min-width: 0;
  }
.gs-dashboard .creds code{
    flex: 1;
    min-width: 0;
    font-size: var(--fs-sm);
    overflow-wrap: anywhere;
  }
.gs-dashboard .copy{
    flex: none;
    min-height: 36px;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid var(--border-strong);
    background: var(--surface-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    cursor: pointer;
  }
.gs-dashboard .copy:hover{
    border-color: var(--brand);
  }
.gs-dashboard .badge{
    justify-self: start;
    display: inline-block;
    padding: 4px 12px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: 0.04em;
  }
.gs-dashboard .badge--ok{
    background: color-mix(in srgb, var(--live) 15%, transparent);
    color: var(--live);
  }
.gs-dashboard .badge--wait{
    background: var(--brand-soft);
    color: var(--brand);
  }
.gs-dashboard .badge--off{
    background: var(--surface-2);
    color: var(--text-muted);
  }
.gs-dashboard [data-trial-state], .gs-dashboard [data-plan-state]{
    display: grid;
    gap: 8px;
  }
.gs-dashboard [data-trial-state]:empty, .gs-dashboard [data-plan-state]:empty{
    display: none;
  }
.gs-dashboard .field-inline{
    display: grid;
    gap: 6px;
  }
.gs-dashboard .field-inline label{
    font-weight: 600;
    font-size: var(--fs-sm);
  }
.gs-dashboard .field-inline select{
    min-height: 48px;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid var(--border-strong);
    background: var(--bg);
    color: var(--text);
    font-size: 1rem;
  }
.gs-dashboard .planpick{
    display: grid;
    gap: 14px;
  }
.gs-dashboard fieldset{
    border: 0;
    padding: 0;
    display: grid;
    gap: 8px;
  }
.gs-dashboard legend{
    margin-bottom: 8px;
    font-size: var(--fs-sm);
  }
.gs-dashboard .planpick__opt{
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: 'r n p' 'r m p';
    column-gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid var(--border-strong);
    cursor: pointer;
  }
.gs-dashboard .planpick__opt:has(input:checked){
    border-color: var(--brand);
    background: var(--brand-soft);
  }
.gs-dashboard .planpick__opt input{
    grid-area: r;
    width: 20px;
    height: 20px;
    accent-color: var(--brand);
  }
.gs-dashboard .planpick__name{
    grid-area: n;
    font-weight: 600;
  }
.gs-dashboard .planpick__per{
    grid-area: m;
    font-size: var(--fs-xs);
  }
.gs-dashboard .planpick__price{
    grid-area: p;
    font-family: var(--font-display);
    font-weight: 700;
  }
.gs-dashboard .small{
    font-size: var(--fs-sm);
  }
.gs-dashboard .help{
    padding: 22px;
    border-radius: var(--radius);
    border: 1px dashed var(--border-strong);
  }
.gs-dashboard .help h2{
    font-size: var(--fs-lg);
    margin-bottom: 6px;
  }

/* ---- components/sections/CountryPage.astro ---- */
.gs-country .ctas{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
  }
.gs-country .split{
    display: grid;
    gap: 32px;
  }
@media (min-width: 900px){.gs-country .split{
      grid-template-columns: 1.3fr 1fr;
      align-items: start;
    }}
.gs-country .mini{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 10px;
  }
.gs-country .mini li{
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 16px;
    align-items: center;
    padding: 16px 20px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    background: var(--surface);
    font-variant-numeric: tabular-nums;
  }
.gs-country .mini li.on{
    border-color: var(--brand);
  }
.gs-country .mini strong{
    font-family: var(--font-display);
  }
.gs-country .sib{
    margin-top: 24px;
  }

/* ---- pages/cookie-policy.astro ---- */
.gs-cookie .linklike{
    background: none;
    border: 0;
    padding: 8px 0;
    color: var(--brand);
    text-decoration: underline;
    cursor: pointer;
    font-weight: 600;
  }
.gs-cookie .tablewrap{
    overflow-x: auto;
  }

/* ---- pages/editorial-policy.astro ---- */
.gs-editorial .policy{
    padding-bottom: var(--section-y);
  }
.gs-editorial .policy h2:first-child{
    margin-top: 0;
  }

/* ---- pages/authors/swoop-tv-team.astro ---- */
.gs-author .team{
    display: grid;
    gap: 56px;
    padding-bottom: var(--section-y);
  }
.gs-author .team .prose h2:first-child{
    margin-top: 0;
  }
.gs-author .list-title{
    font-size: var(--fs-xl);
    margin-bottom: 20px;
  }
.gs-author .list{
    list-style: none;
    padding: 0;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
  }
.gs-author .list h3 a{
    color: var(--text);
    text-decoration: none;
  }
.gs-author .list p{
    margin-top: 8px;
    font-size: var(--fs-sm);
  }

/* ---- layouts/AuthLayout.astro ---- */
.gs-auth .auth{
    position: relative;
    min-height: calc(100dvh - 72px);
    display: grid;
    place-items: center;
    align-content: center;
    gap: 24px;
    padding: 32px var(--gutter) 64px;
  }
.gs-auth .auth::before{
    content: '';
    position: absolute;
    inset: 0;
    background: var(--glow);
    pointer-events: none;
  }
.gs-auth .auth__card{
    position: relative;
    width: min(100%, 460px);
    padding: clamp(24px, 5vw, 40px);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-strong);
    background: var(--surface);
    box-shadow: var(--shadow);
    display: grid;
    gap: 14px;
  }
.gs-auth .auth__card h1{
    font-size: var(--fs-2xl);
  }
.gs-auth .auth .alt{
    text-align: center;
    font-size: var(--fs-sm);
    color: var(--text-muted);
  }

/* ---- layouts/LegalLayout.astro ---- */
.gs-legal .legal{
    padding-block: clamp(24px, 4vw, 48px) var(--section-y);
  }
.gs-legal .legal > header{
    display: grid;
    gap: 12px;
    max-width: 72ch;
    margin-bottom: 32px;
  }
.gs-legal .draft{
    font-size: var(--fs-sm);
  }
.gs-legal .others{
    font-size: var(--fs-sm);
  }

/* ---- layouts/BaseLayout.astro ---- */
.gs-layout .crumbs-wrap{
    padding-top: 20px;
  }
.gs-layout main:focus{
    outline: none;
  }