/* =========================================================
AERIA MASTER UI SYSTEM v4.3 RHYTHM CONTROL
Single source of truth for AERIA custom blocks
HEAD only
Scoped to .aeria-wrap
Master CSS owns typography, shell, and rhythm variables
Block CSS owns local geometry
========================================================= */

.aeria-wrap{
  --a-fg:#0b0f14;
  --a-text:rgba(11,15,20,.78);
  --a-muted:rgba(11,15,20,.56);

  --a-border:rgba(11,15,20,.12);
  --a-border-strong:rgba(11,15,20,.18);
  --a-soft:rgba(11,15,20,.05);

  --a-shadow:0 8px 24px rgba(11,15,20,.04);

  --a-r:18px;

  --a-shell:1200px;
  --a-pad:clamp(20px,3vw,40px);

  --a-section-y:42px;
  --a-section-y-tight:28px;
  --a-section-y-loose:54px;

  --a-gap-after-card:64px;

  --a-money-section-top:34px;
  --a-money-section-bottom:30px;

  --a-kicker-size:12px;
  --a-kicker-lh:1.2;
  --a-kicker-track:.16em;

  --a-h1-size:clamp(38px,4.8vw,60px);
  --a-h1-lh:.98;
  --a-h1-track:-.042em;

  --a-h2-size:clamp(30px,3.2vw,40px);
  --a-h2-lh:1.01;
  --a-h2-track:-.036em;

  --a-h3-size:clamp(18px,1.45vw,23px);
  --a-h3-lh:1.14;
  --a-h3-track:-.018em;

  --a-body-size:16px;
  --a-body-lh:1.58;

  --a-mini-size:15px;
  --a-mini-lh:1.56;

  --a-note-size:14px;
  --a-note-lh:1.5;

  --a-meta-size:12px;
  --a-meta-lh:1.42;

  --a-card-title-size:17px;
  --a-card-title-lh:1.16;
  --a-card-title-track:-.018em;

  color:var(--a-fg);
  background:#fff;
}

.aeria-wrap,
.aeria-wrap *,
.aeria-wrap *::before,
.aeria-wrap *::after{
  box-sizing:border-box;
  font-family:"Satoshi",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif !important;
}

.aeria-wrap a{
  color:inherit;
}

.aeria-wrap img{
  display:block;
  max-width:100%;
  height:auto;
}

/* ---------------------------------------------------------
Container
--------------------------------------------------------- */

.aeria-wrap .aeria-shell{
  width:100%;
  max-width:var(--a-shell);
  margin:0 auto;
  padding-left:var(--a-pad);
  padding-right:var(--a-pad);
}

/* ---------------------------------------------------------
Section rhythm
Supports section.aeria-wrap.aeria-section
and nested .aeria-section inside .aeria-wrap
--------------------------------------------------------- */

.aeria-wrap.aeria-section,
.aeria-wrap .aeria-section{
  padding-top:var(--a-section-y);
  padding-bottom:var(--a-section-y);
}

.aeria-wrap.aeria-section-tight,
.aeria-wrap .aeria-section-tight{
  padding-top:var(--a-section-y-tight);
  padding-bottom:var(--a-section-y-tight);
}

.aeria-wrap.aeria-section-loose,
.aeria-wrap .aeria-section-loose{
  padding-top:var(--a-section-y-loose);
  padding-bottom:var(--a-section-y-loose);
}

/* ---------------------------------------------------------
Typography
--------------------------------------------------------- */

.aeria-wrap .aeria-kicker{
  margin:0;
  font-size:var(--a-kicker-size);
  line-height:var(--a-kicker-lh);
  letter-spacing:var(--a-kicker-track);
  text-transform:uppercase;
  font-weight:600;
  color:var(--a-muted);
}

.aeria-wrap .aeria-h1{
  margin:0;
  font-size:var(--a-h1-size);
  line-height:var(--a-h1-lh);
  letter-spacing:var(--a-h1-track);
  font-weight:700;
  text-wrap:balance;
}

.aeria-wrap .aeria-h2{
  margin:0;
  font-size:var(--a-h2-size);
  line-height:var(--a-h2-lh);
  letter-spacing:var(--a-h2-track);
  font-weight:700;
  text-wrap:balance;
}

.aeria-wrap .aeria-h3{
  margin:0;
  font-size:var(--a-h3-size);
  line-height:var(--a-h3-lh);
  letter-spacing:var(--a-h3-track);
  font-weight:700;
  text-wrap:balance;
}

.aeria-wrap .aeria-sub,
.aeria-wrap .aeria-p{
  margin:0;
  font-size:var(--a-body-size);
  line-height:var(--a-body-lh);
  font-weight:400;
  color:var(--a-text);
}

.aeria-wrap .aeria-mini{
  margin:0;
  font-size:var(--a-mini-size);
  line-height:var(--a-mini-lh);
  font-weight:400;
  color:var(--a-text);
}

.aeria-wrap .aeria-note,
.aeria-wrap .aeria-trust,
.aeria-wrap .aeria-trustline{
  margin:0;
  font-size:var(--a-note-size);
  line-height:var(--a-note-lh);
  color:var(--a-muted);
}

.aeria-wrap .aeria-steptitle{
  margin:0;
  font-size:var(--a-card-title-size);
  line-height:var(--a-card-title-lh);
  letter-spacing:var(--a-card-title-track);
  font-weight:700;
  text-wrap:balance;
}

/* ---------------------------------------------------------
Card typography safety
--------------------------------------------------------- */

.aeria-wrap .aeria-card .aeria-h3,
.aeria-wrap .aeria-card .aeria-steptitle{
  max-width:18ch;
}

.aeria-wrap .aeria-grid-2x2 .aeria-card .aeria-h3,
.aeria-wrap .aeria-grid-2x3 .aeria-card .aeria-h3,
.aeria-wrap .aeria-grid-3 .aeria-card .aeria-h3,
.aeria-wrap .aeria-cards3 .aeria-card .aeria-h3{
  max-width:16ch;
}

.aeria-wrap .aeria-grid-2x2 .aeria-card .aeria-p,
.aeria-wrap .aeria-grid-2x2 .aeria-card .aeria-mini,
.aeria-wrap .aeria-grid-2x3 .aeria-card .aeria-p,
.aeria-wrap .aeria-grid-2x3 .aeria-card .aeria-mini,
.aeria-wrap .aeria-grid-3 .aeria-card .aeria-p,
.aeria-wrap .aeria-grid-3 .aeria-card .aeria-mini,
.aeria-wrap .aeria-cards3 .aeria-card .aeria-p,
.aeria-wrap .aeria-cards3 .aeria-card .aeria-mini{
  max-width:34ch;
}

/* ---------------------------------------------------------
Utility stacks
--------------------------------------------------------- */

.aeria-wrap .aeria-stack-xs{display:grid;gap:8px;}
.aeria-wrap .aeria-stack-sm{display:grid;gap:10px;}
.aeria-wrap .aeria-stack-md{display:grid;gap:14px;}
.aeria-wrap .aeria-stack-lg{display:grid;gap:22px;}
.aeria-wrap .aeria-stack-xl{display:grid;gap:28px;}

/* ---------------------------------------------------------
Cards
--------------------------------------------------------- */

.aeria-wrap .aeria-card{
  background:#fff;
  border:1px solid var(--a-border);
  border-radius:var(--a-r);
  padding:22px;
  box-shadow:none;
}

.aeria-wrap .aeria-divider{
  border:0;
  height:1px;
  background:rgba(11,15,20,.10);
  margin:0;
}

/* ---------------------------------------------------------
Grids
--------------------------------------------------------- */

.aeria-wrap .aeria-grid-2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}

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

.aeria-wrap .aeria-grid-2x2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}

.aeria-wrap .aeria-grid-2x3{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}

.aeria-wrap .aeria-grid-4x2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 24px;
  align-items:stretch;
}

/* ---------------------------------------------------------
Split / hero / CTA helpers
--------------------------------------------------------- */

.aeria-wrap .aeria-hero{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);
  gap:28px;
  align-items:start;
}

.aeria-wrap .aeria-ctas,
.aeria-wrap .aeria-bottomcta{
  display:flex;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:12px;
  width:100%;
  max-width:720px;
}

.aeria-wrap .aeria-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:14px 18px;
  border-radius:16px;
  font-size:16px;
  line-height:1.1;
  font-weight:700;
  letter-spacing:-.01em;
  text-decoration:none !important;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color:rgba(0,0,0,0);
  white-space:nowrap;
  min-width:0;
  transition:transform .06s ease,opacity .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;
}

.aeria-wrap .aeria-btn:active{
  transform:translateY(1px);
}

.aeria-wrap .aeria-btn:focus{
  outline:none;
}

.aeria-wrap .aeria-btn:focus-visible{
  box-shadow:0 0 0 3px rgba(11,15,20,.16);
}

.aeria-wrap .aeria-btn-primary{
  flex:1 1 360px;
  background:var(--a-fg);
  color:#fff !important;
  border:1px solid var(--a-fg);
}

.aeria-wrap .aeria-btn-outline{
  flex:0 0 220px;
  width:220px;
  min-width:220px;
  background:transparent;
  color:var(--a-fg) !important;
  border:1px solid var(--a-border-strong);
}

/* ---------------------------------------------------------
FAQ helpers
--------------------------------------------------------- */

.aeria-wrap .aeria-faq{
  display:grid;
  gap:12px;
}

.aeria-wrap .aeria-faq details{
  background:#fff;
  border:1px solid var(--a-border);
  border-radius:18px;
  padding:14px 16px;
}

.aeria-wrap .aeria-faq summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-size:var(--a-card-title-size);
  line-height:1.16;
  font-weight:700;
  letter-spacing:var(--a-card-title-track);
}

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

.aeria-wrap .aeria-faqbody{
  margin-top:12px;
}

.aeria-wrap .aeria-faqbody .aeria-p{
  margin:0;
  font-size:15px;
  line-height:1.56;
}

/* ---------------------------------------------------------
Install hero family
Approved separate family
Keep separate from generic section scale
--------------------------------------------------------- */

#aeria-install-hero{
  padding-top:18px;
  padding-bottom:24px;
}

#aeria-install-hero .aeria-hero-entry{
  padding:0 !important;
  overflow:hidden !important;
  border-radius:28px !important;
}

#aeria-install-hero .aeria-hero-stage{
  position:relative !important;
  min-height:500px !important;
  background:#d9d9d9 !important;
}

#aeria-install-hero .aeria-hero-image{
  display:block !important;
  width:100% !important;
  height:500px !important;
  min-height:500px !important;
  object-fit:cover !important;
  object-position:center center !important;
}

#aeria-install-hero .aeria-hero-overlay{
  position:absolute !important;
  inset:0 !important;
  background:
    linear-gradient(
      90deg,
      rgba(11,15,20,.54) 0%,
      rgba(11,15,20,.34) 22%,
      rgba(11,15,20,.10) 46%,
      rgba(11,15,20,.02) 70%,
      rgba(11,15,20,0) 100%
    ) !important;
  pointer-events:none !important;
}

#aeria-install-hero .aeria-hero-headline{
  position:absolute !important;
  left:30px !important;
  bottom:26px !important;
  width:500px !important;
  max-width:500px !important;
  z-index:2 !important;
}

#aeria-install-hero .aeria-h1{
  margin:0 !important;
  color:#fff !important;
  font-size:58px !important;
  line-height:.94 !important;
  letter-spacing:-.045em !important;
  font-weight:700 !important;
  max-width:8.5ch !important;
  text-wrap:balance !important;
}

#aeria-install-hero .aeria-hero-body{
  padding:30px 30px 30px !important;
  background:#fff !important;
}

#aeria-install-hero .aeria-hero-copy{
  max-width:900px !important;
  display:grid !important;
  gap:16px !important;
}

#aeria-install-hero .aeria-sub{
  margin:0 !important;
  font-size:18px !important;
  line-height:1.52 !important;
  max-width:40ch !important;
}

#aeria-install-hero .aeria-hero-servicearea{
  margin:0 !important;
  color:rgba(11,15,20,.66) !important;
  max-width:64ch !important;
}

#aeria-install-hero .aeria-hero-ctas{
  max-width:700px !important;
  margin-top:2px !important;
}

#aeria-install-hero .aeria-trustline{
  margin-top:0 !important;
  font-size:13px !important;
  line-height:1.55 !important;
}

/* ---------------------------------------------------------
Responsive
--------------------------------------------------------- */

@media (min-width:1200px){
  .aeria-wrap .aeria-shell{
    padding-left:40px;
    padding-right:40px;
  }
}

@media (min-width:1025px) and (max-width:1199px){
  .aeria-wrap .aeria-shell{
    padding-left:24px;
    padding-right:24px;
  }
}

@media (min-width:1025px) and (max-width:1366px){
  .aeria-wrap{
    --a-h2-size:36px;
    --a-h2-lh:1.02;
    --a-h2-track:-.034em;

    --a-h3-size:20px;
    --a-h3-lh:1.15;
    --a-h3-track:-.018em;

    --a-body-size:16px;
    --a-body-lh:1.56;

    --a-mini-size:15px;
    --a-mini-lh:1.54;

    --a-card-title-size:17px;
    --a-card-title-lh:1.16;

    --a-note-size:14px;
    --a-note-lh:1.46;

    --a-meta-size:12px;
    --a-meta-lh:1.4;
  }
}

@media (min-width:641px) and (max-width:1024px){
  .aeria-wrap{
    --a-pad:20px;

    --a-gap-after-card:54px;

    --a-h2-size:34px;
    --a-h2-lh:1.03;
    --a-h2-track:-.032em;

    --a-h3-size:18px;
    --a-h3-lh:1.16;
    --a-h3-track:-.016em;

    --a-body-size:16px;
    --a-body-lh:1.56;

    --a-mini-size:15px;
    --a-mini-lh:1.54;

    --a-card-title-size:16px;
    --a-card-title-lh:1.16;

    --a-note-size:14px;
    --a-note-lh:1.46;

    --a-meta-size:12px;
    --a-meta-lh:1.4;
  }

  .aeria-wrap .aeria-hero{
    grid-template-columns:1fr;
    gap:18px;
  }

  .aeria-wrap .aeria-grid-2,
  .aeria-wrap .aeria-grid-3,
  .aeria-wrap .aeria-cards3,
  .aeria-wrap .aeria-grid-2x2,
  .aeria-wrap .aeria-grid-2x3{
    grid-template-columns:1fr;
    gap:14px;
  }

  .aeria-wrap .aeria-grid-4x2{
    grid-template-columns:1fr;
    gap:10px;
  }

  #aeria-install-hero{
    padding-top:16px !important;
    padding-bottom:20px !important;
    margin-top:0 !important;
  }

  #aeria-install-hero .aeria-hero-entry{
    border-radius:24px !important;
  }

  #aeria-install-hero .aeria-hero-stage{
    min-height:390px !important;
  }

  #aeria-install-hero .aeria-hero-image{
    height:390px !important;
    min-height:390px !important;
  }

  #aeria-install-hero .aeria-h1{
    font-size:46px !important;
    max-width:8.3ch !important;
  }

  #aeria-install-hero .aeria-hero-headline{
    width:400px !important;
    max-width:400px !important;
    left:24px !important;
    bottom:22px !important;
  }

  #aeria-install-hero .aeria-hero-body{
    padding:22px 24px 24px !important;
  }

  #aeria-install-hero .aeria-sub{
    max-width:none !important;
    font-size:18px !important;
    line-height:1.5 !important;
  }
}

@media (max-width:640px){
  .aeria-wrap{
    --a-r:20px;
    --a-pad:18px;

    --a-section-y:38px;
    --a-section-y-tight:26px;
    --a-section-y-loose:46px;

    --a-gap-after-card:52px;

    --a-money-section-top:38px;
    --a-money-section-bottom:34px;

    --a-h1-size:clamp(34px,10.2vw,50px);
    --a-h1-lh:.95;
    --a-h1-track:-.048em;

    --a-h2-size:clamp(26px,7.2vw,32px);
    --a-h2-lh:1.03;
    --a-h2-track:-.032em;

    --a-h3-size:clamp(17px,4.8vw,19px);
    --a-h3-lh:1.16;
    --a-h3-track:-.014em;

    --a-body-size:15px;
    --a-body-lh:1.56;

    --a-mini-size:15px;
    --a-mini-lh:1.54;

    --a-card-title-size:16px;
    --a-card-title-lh:1.16;

    --a-note-size:13px;
    --a-note-lh:1.46;

    --a-meta-size:12px;
    --a-meta-lh:1.4;
  }

  .aeria-wrap .aeria-card{
    padding:20px 18px;
  }

  .aeria-wrap .aeria-ctas,
  .aeria-wrap .aeria-bottomcta{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    max-width:none;
  }

  .aeria-wrap .aeria-btn,
  .aeria-wrap .aeria-btn-primary,
  .aeria-wrap .aeria-btn-outline{
    width:100%;
    min-width:0;
    white-space:normal;
    text-align:center;
  }

  .aeria-wrap .aeria-btn-outline{
    flex:auto;
  }

  .aeria-wrap .aeria-faq details{
    border-radius:20px;
    padding:16px 18px;
  }

  .aeria-wrap .aeria-faq summary{
    font-size:16px;
    line-height:1.16;
  }

  #aeria-install-hero{
    margin-top:-6px !important;
  }

  #aeria-install-hero .aeria-hero-entry{
    border-radius:22px !important;
  }

  #aeria-install-hero .aeria-hero-stage{
    min-height:320px !important;
  }

  #aeria-install-hero .aeria-hero-image{
    height:320px !important;
    min-height:320px !important;
    object-position:center center !important;
  }

  #aeria-install-hero .aeria-hero-overlay{
    background:
      linear-gradient(
        180deg,
        rgba(11,15,20,.08) 0%,
        rgba(11,15,20,.14) 28%,
        rgba(11,15,20,.26) 58%,
        rgba(11,15,20,.44) 100%
      ) !important;
  }

  #aeria-install-hero .aeria-hero-headline{
    left:18px !important;
    right:18px !important;
    width:auto !important;
    max-width:none !important;
    bottom:18px !important;
  }

  #aeria-install-hero .aeria-h1{
    font-size:clamp(34px,10.2vw,50px) !important;
    line-height:.95 !important;
    letter-spacing:-.048em !important;
    max-width:8.2ch !important;
  }

  #aeria-install-hero .aeria-hero-body{
    padding:20px 18px 22px !important;
  }

  #aeria-install-hero .aeria-hero-copy{
    gap:14px !important;
  }

  #aeria-install-hero .aeria-sub{
    font-size:clamp(17px,5.1vw,21px) !important;
    line-height:1.48 !important;
  }

  #aeria-install-hero .aeria-hero-servicearea{
    font-size:15px !important;
    line-height:1.58 !important;
  }

  #aeria-install-hero .aeria-hero-ctas{
    margin-top:4px !important;
  }
}

@media (max-width:380px){
  .aeria-wrap{
    --a-pad:14px;
  }

  #aeria-install-hero .aeria-h1{
    font-size:clamp(32px,10vw,44px) !important;
    max-width:8.4ch !important;
  }
}