/* AWEB 1.6.1 Native Builder layout. No global element selectors. */
.aweb-native-page-shell{width:100%;overflow:hidden}
.aweb-native-page-shell .aweb-native-row{position:relative;width:100%}
.aweb-native-page-shell .aweb-native-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;width:100%}
.aweb-native-page-shell .aweb-native-column{grid-column:span var(--aweb-col-span,12);min-width:0}
.aweb-native-page-shell .aweb-native-module{min-width:0}
.aweb-native-page-shell .aweb-native-empty,
.aweb-native-page-shell .aweb-native-module-warning{margin:24px 0;padding:16px;border:1px solid #dcdcde;background:#fff}
@media(max-width:767px){
  .aweb-native-page-shell .aweb-native-column{grid-column:1/-1}
}


/* AWEB 1.6.6 row controls */
.aweb-native-page-shell .aweb-native-row{background:var(--aweb-row-bg,transparent);padding-top:var(--aweb-row-padding-top,0);padding-bottom:var(--aweb-row-padding-bottom,0)}
.aweb-native-page-shell .aweb-native-container-fluid{width:100%;max-width:none;margin:0 auto;padding-left:0;padding-right:0}
@media(min-width:768px){.aweb-native-page-shell .aweb-native-hide-desktop{display:none!important}}
@media(max-width:767px){
  .aweb-native-page-shell .aweb-native-hide-mobile{display:none!important}
  .aweb-native-page-shell .aweb-native-row{padding-top:var(--aweb-row-mobile-padding-top,var(--aweb-row-padding-top,0));padding-bottom:var(--aweb-row-mobile-padding-bottom,var(--aweb-row-padding-bottom,0))}
  .aweb-native-page-shell .aweb-native-mobile-reverse .aweb-native-grid{display:flex;flex-direction:column-reverse}
  .aweb-native-page-shell .aweb-native-mobile-reverse .aweb-native-column{width:100%}
}


/* AWEB 1.6.15 column controls */
.aweb-native-page-shell .aweb-native-column{background:var(--aweb-col-bg,transparent);padding-top:var(--aweb-col-padding-top,0);padding-right:var(--aweb-col-padding-right,0);padding-bottom:var(--aweb-col-padding-bottom,0);padding-left:var(--aweb-col-padding-left,0);box-sizing:border-box}
.aweb-native-page-shell .aweb-native-col-align-top{align-self:start}.aweb-native-page-shell .aweb-native-col-align-center{align-self:center}.aweb-native-page-shell .aweb-native-col-align-bottom{align-self:end}
@media(min-width:768px){.aweb-native-page-shell .aweb-native-col-hide-desktop{display:none!important}}
@media(max-width:767px){
 .aweb-native-page-shell .aweb-native-col-hide-mobile{display:none!important}
 .aweb-native-page-shell .aweb-native-column{padding-top:var(--aweb-col-mobile-padding-top,var(--aweb-col-padding-top,0));padding-right:var(--aweb-col-mobile-padding-right,var(--aweb-col-padding-right,0));padding-bottom:var(--aweb-col-mobile-padding-bottom,var(--aweb-col-padding-bottom,0));padding-left:var(--aweb-col-mobile-padding-left,var(--aweb-col-padding-left,0))}
}


/* AWEB 1.6.16 module advanced controls */
.aweb-native-page-shell .aweb-native-module{
 margin-top:var(--aweb-module-margin-top,0);margin-right:var(--aweb-module-margin-right,0);margin-bottom:var(--aweb-module-margin-bottom,0);margin-left:var(--aweb-module-margin-left,0);
 padding-top:var(--aweb-module-padding-top,0);padding-right:var(--aweb-module-padding-right,0);padding-bottom:var(--aweb-module-padding-bottom,0);padding-left:var(--aweb-module-padding-left,0);box-sizing:border-box
}
@media(min-width:768px){.aweb-native-page-shell .aweb-native-module-hide-desktop{display:none!important}}
@media(max-width:767px){
 .aweb-native-page-shell .aweb-native-module-hide-mobile{display:none!important}
 .aweb-native-page-shell .aweb-native-module{
  margin-top:var(--aweb-module-mobile-margin-top,var(--aweb-module-margin-top,0));margin-right:var(--aweb-module-mobile-margin-right,var(--aweb-module-margin-right,0));margin-bottom:var(--aweb-module-mobile-margin-bottom,var(--aweb-module-margin-bottom,0));margin-left:var(--aweb-module-mobile-margin-left,var(--aweb-module-margin-left,0));
  padding-top:var(--aweb-module-mobile-padding-top,var(--aweb-module-padding-top,0));padding-right:var(--aweb-module-mobile-padding-right,var(--aweb-module-padding-right,0));padding-bottom:var(--aweb-module-mobile-padding-bottom,var(--aweb-module-padding-bottom,0));padding-left:var(--aweb-module-mobile-padding-left,var(--aweb-module-padding-left,0))
 }
}

/* =========================================================
   AWEB 2.0.80 — True full-width Builder rows
   Row width controls the 12-column canvas itself. A Full row breaks out to
   the viewport once, then its Builder columns split that viewport normally:
   12/12 = 100%, 6/12 = 50%, 4/12 = 33.333%, 3/12 = 25%.
   Modules stay inside their assigned columns; their own container-responsive
   card grids decide how many cards fit inside that real column width.
   ========================================================= */
.aweb-native-page-shell .aweb-native-row-width-full{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  box-sizing:border-box;
}
.aweb-native-page-shell .aweb-native-row-width-full > .aweb-native-container-fluid{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}
.aweb-native-page-shell .aweb-native-row-width-full .aweb-native-grid{
  width:100%;
  max-width:none;
}
/* Full-row columns own their fraction of the viewport. Wide/Full modules in
   split columns therefore fill the column, never the viewport independently. */
.aweb-native-page-shell .aweb-native-row-width-full .aweb-native-column:not(.aweb-native-col-span-12) > .aweb-native-module.aweb-native-module-width-wide,
.aweb-native-page-shell .aweb-native-row-width-full .aweb-native-column:not(.aweb-native-col-span-12) > .aweb-native-module.aweb-native-module-width-full{
  position:relative;
  left:auto;
  width:100%;
  max-width:100%;
  transform:none;
}
@media(max-width:767px){
  .aweb-native-page-shell .aweb-native-row-width-full{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
  }
}

/* =========================================================
   AWEB 2.0.21 — Per-module width controls
   Boxed (default), Wide, Full Width + Contained/Full inner content.
   ========================================================= */
.aweb-native-page-shell .aweb-native-module-width-boxed{width:100%;max-width:100%}
.aweb-native-page-shell .aweb-native-module-width-wide,
.aweb-native-page-shell .aweb-native-module-width-full{
  position:relative;left:50%;max-width:none;box-sizing:border-box;
  transform:translateX(-50%);
}
.aweb-native-page-shell .aweb-native-module-width-wide{width:min(1600px,calc(100vw - 48px))}
.aweb-native-page-shell .aweb-native-module-width-full{width:100vw}
.aweb-native-page-shell .aweb-native-module-content-full .aweb-shell,
.aweb-native-page-shell .aweb-native-module-content-full .container{
  width:100%!important;max-width:none!important;
  padding-left:clamp(18px,3vw,56px)!important;padding-right:clamp(18px,3vw,56px)!important;
  box-sizing:border-box!important;
}
/* A full-width background with contained content intentionally keeps the
   module contract's own .aweb-shell max-width. This is the recommended mode. */
@media(max-width:767px){
 .aweb-native-page-shell .aweb-native-module-width-wide{width:calc(100vw - 24px)}
 .aweb-native-page-shell .aweb-native-module-width-full{width:100vw}
 .aweb-native-page-shell .aweb-native-module-content-full .aweb-shell,
 .aweb-native-page-shell .aweb-native-module-content-full .container{padding-left:16px!important;padding-right:16px!important}
}

/* =========================================================
   AWEB 2.0.79 — Full-width modules inside Builder columns
   A viewport breakout only makes sense from a 12/12 column.
   Inside multi-column rows, Wide/Full modules must fill their actual
   Builder column instead of expanding each module to the viewport.
   This prevents two 6/12 Full modules from overlapping each other.
   ========================================================= */
.aweb-native-page-shell .aweb-native-column:not(.aweb-native-col-span-12) > .aweb-native-module.aweb-native-module-width-wide,
.aweb-native-page-shell .aweb-native-column:not(.aweb-native-col-span-12) > .aweb-native-module.aweb-native-module-width-full{
  position:relative;
  left:auto;
  width:100%;
  max-width:100%;
  transform:none;
}

/* =========================================================
   AWEB 2.0.78 — Container-responsive Native modules
   Modules respond to their actual Builder column/module width instead of
   only the browser viewport. This keeps the same module reusable in 1, 2,
   3 or 4-column row layouts without per-page CSS hacks.
   ========================================================= */
.aweb-native-page-shell .aweb-native-module-contract{
  container-type:inline-size;
  container-name:aweb-module;
}

/* Large-but-not-full modules: use three cards where four would feel cramped. */
@container aweb-module (max-width:1099px){
  .aweb-feature-grid,
  .aweb-card-grid:not(.aweb-plan-grid-adaptive),
  .aweb-native-info-grid,
  .aweb-plan-grid,
  .aweb-service-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .aweb-native-info-cards.is-style-compact .aweb-native-info-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .aweb-native-trust-stats.is-style-stats .aweb-native-info-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .aweb-partners-grid{grid-template-columns:repeat(4,minmax(0,1fr))}

  .aweb-card-grid.aweb-plan-grid-adaptive>.aweb-plan-card{flex-basis:calc((100% - 40px)/3)!important}
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-1>.aweb-plan-card{flex-basis:min(100%,520px)!important}
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-2>.aweb-plan-card{flex-basis:calc((100% - 20px)/2)!important}
}

/* Typical 6/12 Builder column: 2 x 2 card layouts. */
@container aweb-module (max-width:849px){
  .aweb-feature-grid,
  .aweb-card-grid:not(.aweb-plan-grid-adaptive),
  .aweb-native-info-grid,
  .aweb-native-info-cards.is-style-compact .aweb-native-info-grid,
  .aweb-native-trust-stats.is-style-stats .aweb-native-info-grid,
  .aweb-plan-grid,
  .aweb-service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .aweb-partners-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

  .aweb-card-grid.aweb-plan-grid-adaptive>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-2>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-3>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-4>.aweb-plan-card{
    flex-basis:calc((100% - 20px)/2)!important;
  }
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-1>.aweb-plan-card{
    flex-basis:min(100%,520px)!important;
  }

  .aweb-hero-grid,
  .aweb-datacenter-grid,
  .aweb-infrastructure-layout,
  .aweb-domain-card{
    grid-template-columns:1fr;
  }
  .aweb-hero-grid{gap:30px}
  .aweb-datacenter-grid,.aweb-infrastructure-layout{gap:30px}
  .aweb-domain-card{gap:16px}
  .aweb-cta-card{display:block}
  .aweb-cta-card .aweb-actions{margin-top:22px}
  .aweb-section{padding-top:56px;padding-bottom:56px}
  .aweb-section-head{margin-bottom:26px}
  .aweb-section-head h1,.aweb-section-head h2,.aweb-section-head h3{font-size:32px!important}
}

/* Narrow module/column: one readable card per row. */
@container aweb-module (max-width:519px){
  .aweb-feature-grid,
  .aweb-card-grid:not(.aweb-plan-grid-adaptive),
  .aweb-native-info-grid,
  .aweb-native-info-cards.is-style-compact .aweb-native-info-grid,
  .aweb-native-trust-stats.is-style-stats .aweb-native-info-grid,
  .aweb-plan-grid,
  .aweb-service-grid,
  .aweb-infrastructure-points{
    grid-template-columns:1fr;
  }
  .aweb-partners-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aweb-stats{grid-template-columns:1fr}

  .aweb-card-grid.aweb-plan-grid-adaptive>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-1>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-2>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-3>.aweb-plan-card,
  .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-4>.aweb-plan-card{
    flex-basis:100%!important;
  }

  .aweb-domain-form{flex-direction:column}
  .aweb-tlds{max-width:100%;overflow:auto}
  .aweb-section{padding-top:44px;padding-bottom:44px}
  .aweb-section-head h1,.aweb-section-head h2,.aweb-section-head h3{font-size:28px!important}
  .aweb-plan-card,.aweb-feature-grid article,.aweb-native-info-card,.aweb-testimonial{padding:22px}
  .aweb-cta-card{padding:28px 22px}
}

/* Three datacenter stats remain aligned while there is enough real room. */
@container aweb-module (min-width:520px) and (max-width:849px){
  .aweb-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Infrastructure point cards need a little more width than generic cards. */
@container aweb-module (max-width:639px){
  .aweb-infrastructure-points{grid-template-columns:1fr}
}

/* Graceful fallback for older engines without container queries. */
@supports not (container-type:inline-size){
  .aweb-native-page-shell :is(.aweb-native-col-span-5,.aweb-native-col-span-6,.aweb-native-col-span-7) :is(.aweb-feature-grid,.aweb-native-info-grid,.aweb-card-grid:not(.aweb-plan-grid-adaptive),.aweb-plan-grid,.aweb-service-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
  .aweb-native-page-shell :is(.aweb-native-col-span-1,.aweb-native-col-span-2,.aweb-native-col-span-3,.aweb-native-col-span-4) :is(.aweb-feature-grid,.aweb-native-info-grid,.aweb-card-grid:not(.aweb-plan-grid-adaptive),.aweb-plan-grid,.aweb-service-grid){grid-template-columns:1fr}
  .aweb-native-page-shell :is(.aweb-native-col-span-1,.aweb-native-col-span-2,.aweb-native-col-span-3,.aweb-native-col-span-4,.aweb-native-col-span-5,.aweb-native-col-span-6,.aweb-native-col-span-7) :is(.aweb-hero-grid,.aweb-datacenter-grid,.aweb-infrastructure-layout,.aweb-domain-card){grid-template-columns:1fr}
  .aweb-native-page-shell :is(.aweb-native-col-span-1,.aweb-native-col-span-2,.aweb-native-col-span-3,.aweb-native-col-span-4,.aweb-native-col-span-5,.aweb-native-col-span-6,.aweb-native-col-span-7) .aweb-cta-card{display:block}
}


/* =========================================================
   AWEB 2.0.81 — Stable Builder-span card layouts
   Desktop card density is now determined primarily by the Builder column span,
   not by monitor resolution, browser zoom or container-query thresholds.
   This keeps a 6/12 module at 2 x 2 on 1080p, 1440p and 4K displays.
   Viewport/container rules remain the safety layer for tablet/mobile.
   ========================================================= */
@media (min-width:992px){
  /* Full and near-full Builder columns: standard four-card presentation. */
  .aweb-native-page-shell :is(.aweb-native-col-span-9,.aweb-native-col-span-10,.aweb-native-col-span-11,.aweb-native-col-span-12)
  :is(.aweb-feature-grid,.aweb-native-info-grid,.aweb-card-grid:not(.aweb-plan-grid-adaptive),.aweb-plan-grid,.aweb-service-grid){
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  /* Medium Builder columns, including the common 6/12 split: always 2 columns. */
  .aweb-native-page-shell :is(.aweb-native-col-span-4,.aweb-native-col-span-5,.aweb-native-col-span-6,.aweb-native-col-span-7,.aweb-native-col-span-8)
  :is(.aweb-feature-grid,.aweb-native-info-grid,.aweb-card-grid:not(.aweb-plan-grid-adaptive),.aweb-plan-grid,.aweb-service-grid){
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* Very narrow Builder columns: readable single-card stack. */
  .aweb-native-page-shell :is(.aweb-native-col-span-1,.aweb-native-col-span-2,.aweb-native-col-span-3)
  :is(.aweb-feature-grid,.aweb-native-info-grid,.aweb-card-grid:not(.aweb-plan-grid-adaptive),.aweb-plan-grid,.aweb-service-grid){
    grid-template-columns:1fr;
  }

  /* Adaptive pricing cards follow the same Builder-span contract. */
  .aweb-native-page-shell :is(.aweb-native-col-span-4,.aweb-native-col-span-5,.aweb-native-col-span-6,.aweb-native-col-span-7,.aweb-native-col-span-8)
  .aweb-card-grid.aweb-plan-grid-adaptive>.aweb-plan-card{
    flex-basis:calc((100% - 20px)/2)!important;
  }
  .aweb-native-page-shell :is(.aweb-native-col-span-1,.aweb-native-col-span-2,.aweb-native-col-span-3)
  .aweb-card-grid.aweb-plan-grid-adaptive>.aweb-plan-card{
    flex-basis:100%!important;
  }
  .aweb-native-page-shell :is(.aweb-native-col-span-9,.aweb-native-col-span-10,.aweb-native-col-span-11,.aweb-native-col-span-12)
  .aweb-card-grid.aweb-plan-grid-adaptive>.aweb-plan-card{
    flex-basis:calc((100% - 60px)/4)!important;
  }
  .aweb-native-page-shell .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-1>.aweb-plan-card{
    flex-basis:min(100%,520px)!important;
  }
  .aweb-native-page-shell .aweb-card-grid.aweb-plan-grid-adaptive.aweb-plan-count-2>.aweb-plan-card{
    flex-basis:calc((100% - 20px)/2)!important;
  }

  /* Single-module sibling columns stretch to the same row height while their
     content remains top-aligned. This gives split sections a clean common base. */
  .aweb-native-page-shell .aweb-native-grid>.aweb-native-column-single-module.aweb-native-col-align-top{
    align-self:stretch;
    display:flex;
    flex-direction:column;
  }
  .aweb-native-page-shell .aweb-native-grid>.aweb-native-column-single-module.aweb-native-col-align-top>.aweb-native-module{
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
  }
  .aweb-native-page-shell .aweb-native-grid>.aweb-native-column-single-module.aweb-native-col-align-top>.aweb-native-module>.aweb-section{
    flex:1 1 auto;
  }

  /* In common 6/12 feature pairs reserve a consistent heading band so a
     one-line title and a two-line title start their card grids at the same Y. */
  .aweb-native-page-shell .aweb-native-col-span-6 .aweb-native-features .aweb-section-head{
    min-height:126px;
    box-sizing:border-box;
  }

  /* Two rows inside a split feature module share height consistently. */
  .aweb-native-page-shell .aweb-native-col-span-6 .aweb-native-features .aweb-feature-grid{
    grid-auto-rows:1fr;
  }
}


/* =========================================================
   AWEB 2.0.196 — Optional cross-column card-row alignment
   Enabled per Builder Row. JavaScript measures only compatible card modules
   in sibling columns and writes min-heights to headings/cards. Below 768px
   columns stack normally and every managed min-height is removed.
   ========================================================= */
@media (max-width:767px){
  .aweb-native-page-shell .aweb-native-align-card-rows [data-aweb-row-align-managed]{
    min-height:0!important;
  }
}
