/* An offer at a glance, with the purchased projects immediately below. */
.lib-banner-track.is-dragging{scroll-snap-type:none!important;cursor:grabbing;user-select:none;scroll-behavior:auto!important}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner{
 --banner-ink:#061d33;--banner-lime:#d7ff54;
 isolation:isolate;position:relative;overflow:hidden;margin:16px 0 20px;border:1px solid #197a86;border-radius:16px;
 color:#fff;background:radial-gradient(ellipse at 12% 40%,#187779 0,transparent 41%),linear-gradient(110deg,#062b41 0%,#092c44 56%,#0b2338 100%);
 box-shadow:0 9px 22px #062d4522;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner::before{
 content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:linear-gradient(118deg,transparent 72%,#36c2b80c 72%,#36c2b80c 82%,transparent 82%);
 border-top:3px solid #bdf352;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-track{
 display:grid;grid-auto-flow:column;grid-auto-columns:100%;grid-template-rows:auto;align-items:stretch;min-width:0;
 overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;
 touch-action:pan-x pan-y;border-radius:inherit;-webkit-overflow-scrolling:touch;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-track::-webkit-scrollbar{display:none;width:0;height:0}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner [data-banner-panel]{
 position:relative;display:grid;align-items:center;align-content:center;gap:20px;box-sizing:border-box;min-height:174px;min-width:0;
 padding:12px 24px 32px;grid-template-columns:126px minmax(0,1fr);
 background:none;flex-wrap:initial;scroll-snap-align:start;scroll-snap-stop:always;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-offer{cursor:pointer}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-offer:focus-visible{outline:3px solid #d7ff54;outline-offset:-5px}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art{
 position:relative;z-index:1;width:126px;height:126px;align-self:center;pointer-events:none;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art::before{
 content:'';position:absolute;inset:10px -8px -5px;border-radius:50%;background:#24ddd130;filter:blur(18px);
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art img{
 position:absolute;display:block;width:90px;height:177px;max-width:none;object-fit:contain;bottom:-25px;left:16px;
 transform:rotate(-8deg);filter:drop-shadow(9px 9px 7px #0007);
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-copy{min-width:0;flex:initial}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-kicker{
 margin:0 0 5px;color:#bfff7d;font:800 13px/1.2 'Segoe UI',Arial,sans-serif;letter-spacing:.07em;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-title{
 margin:0;color:#fff;font:900 clamp(25px,2.35vw,33px)/1.04 'Segoe UI',Arial,sans-serif;
 letter-spacing:-.035em;text-wrap:balance;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-title strong{color:var(--banner-lime);font-weight:900}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-text{
 margin:8px 0 0;color:#e1f0fa;font:500 16px/1.35 'Segoe UI',Arial,sans-serif;overflow-wrap:normal;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-inclusions{
 display:flex;flex-wrap:wrap;gap:5px 15px;margin-top:9px;color:#c9f7ea;font:650 14px/1.25 'Segoe UI',Arial,sans-serif;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-inclusions span::before{content:'✓';color:var(--banner-lime);font-weight:900;margin-right:5px}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal{
 min-width:0;display:grid;justify-items:center;align-content:center;gap:0;border-left:1px solid #78c0cb40;padding-left:22px;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-price-caption{
 margin:0 0 1px;color:#d1e6f2;font:650 14px/1.25 'Segoe UI',Arial,sans-serif;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-price{
 margin:0 0 9px;color:#fff;font:900 40px/1 'Segoe UI',Arial,sans-serif;letter-spacing:-.05em;white-space:nowrap;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-action{
 min-width:0;min-height:48px;max-width:100%;width:100%;display:inline-flex;justify-content:center;align-items:center;
 margin:0;padding:11px 14px;border:1px solid #e1ff82;border-bottom:3px solid #8ebc21;border-radius:9px;
 background:linear-gradient(180deg,#e4ff81,#c6f238);color:#102a16!important;
 box-shadow:0 3px 12px #caff481a;font:900 16px/1.2 'Segoe UI',Arial,sans-serif;
 text-align:center;white-space:normal;text-decoration:none;cursor:pointer;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-action:hover{background:#e3ff89;filter:none;box-shadow:0 4px 17px #caff4838}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-action:active{border-bottom-width:1px;transform:translateY(1px)}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner :is(button,a):focus-visible{outline:3px solid #fff;outline-offset:3px}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-pagination{
 position:absolute;z-index:3;left:50%;bottom:1px;display:flex;align-items:center;justify-content:center;gap:2px;
 height:28px;transform:translateX(-50%);padding:0 5px;border-radius:20px;background:#061d3333;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-page{
 display:grid;place-items:center;width:44px;height:28px;min-height:28px;min-width:44px;margin:0;padding:0;
 border:0;border-radius:14px;background:none;color:inherit;box-shadow:none;cursor:pointer;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-page span{
 display:block;width:18px;height:4px;border-radius:6px;background:#d8eef780;transition:width .18s ease,background-color .18s ease;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-page[aria-current='true'] span{width:32px;background:var(--banner-lime);box-shadow:0 0 9px #d7ff5430}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-page:hover span{background:#f2ffca}

/* A readable contact card, with the address as text rather than a CTA box. */
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support{
 grid-template-columns:76px minmax(0,1fr);gap:24px;
 background:radial-gradient(ellipse at 0 10%,#1e8a8173,transparent 58%),linear-gradient(115deg,#093e4c,#092c42 75%);
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support::before{
 content:'';position:absolute;right:-48px;top:-130px;width:370px;height:370px;border:1px solid #a8ffde20;
 border-radius:50%;box-shadow:0 0 0 42px #a8ffde06,0 0 0 84px #a8ffde04;pointer-events:none;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-copy{position:relative;z-index:1}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-title strong{color:#a8ffde}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-support-message{
 margin:9px 0 2px;color:#e1f4f4;font:500 16px/1.4 'Segoe UI',Arial,sans-serif;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-icon{
 position:relative;z-index:1;display:grid;place-items:center;flex:initial;width:76px;height:76px;border-radius:22px;border:1px solid #90e8d173;
 color:#c7ffeb;background:linear-gradient(145deg,#62dac72b,#d5fff509);box-shadow:0 10px 27px #031c3433,inset 0 1px #bafff520;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-icon svg{display:block;width:42px;height:42px}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-email{
 position:relative;z-index:1;display:inline-block;max-width:100%;color:#baffdf;font:800 21px/1.4 'Segoe UI',Arial,sans-serif;
 text-decoration:underline;text-decoration-color:#8de9c98c;text-decoration-thickness:1px;text-underline-offset:5px;white-space:nowrap;
}
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner.lib-banner-complete .lib-banner-deal{border-left:0;padding-left:0}

@media(max-width:1050px) and (min-width:731px){
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner [data-banner-panel]{grid-template-columns:96px minmax(0,1fr);gap:17px;padding-left:18px;padding-right:18px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art{width:96px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art img{left:3px;width:85px;height:167px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-title{font-size:27px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-inclusions{display:none}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal{padding-left:16px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-price{font-size:37px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-action{font-size:15px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support{grid-template-columns:70px minmax(0,1fr)}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-icon{width:70px;height:70px}
}
@media(max-width:730px){
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner{margin:12px 0 16px;border-radius:12px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner [data-banner-panel]{
  grid-template-columns:minmax(0,1fr) 78px;grid-template-rows:auto;gap:10px 10px;min-height:184px;
  padding:14px 14px 30px;align-content:center;align-items:center;
 }
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-copy{grid-column:1;grid-row:1;flex-basis:auto;align-self:center}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-kicker{display:none}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-title{font-size:25px;line-height:1.04;letter-spacing:-.035em;text-wrap:initial}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-text{font-size:16px;line-height:1.3;margin-top:7px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-inclusions{display:none}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art{grid-column:2;grid-row:1;justify-self:end;width:78px;height:130px;align-self:center}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art img{left:0;bottom:-7px;width:80px;height:157px;transform:rotate(7deg)}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal{
  grid-column:1/-1;grid-row:2;grid-template-columns:134px minmax(0,1fr);grid-template-rows:auto auto;
  justify-items:start;align-items:center;column-gap:11px;padding:0;border:0;
 }
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-price-caption{grid-column:1;grid-row:1;font-size:14px;line-height:1.15;margin:0 0 3px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-price{grid-column:1;grid-row:2;font-size:32px;margin:0;letter-spacing:-.055em}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal .lib-banner-action{
  grid-column:2;grid-row:1/span 2;min-height:52px;padding:8px 10px;font-size:16px;line-height:1.18;align-self:stretch;
 }
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support{grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto auto;gap:5px 13px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-icon{grid-column:1;grid-row:1;display:grid;width:50px;height:54px;border-radius:15px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-icon svg{width:30px;height:30px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-copy{display:contents}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-title{grid-column:2;grid-row:1;font-size:25px;line-height:1.12;margin:0;text-wrap:initial}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-support-message{grid-column:1/-1;grid-row:2;font-size:16px;line-height:1.4;margin:8px 0 0}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-email{grid-column:1/-1;grid-row:3;justify-self:start;font-size:20px;line-height:1.4}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner.lib-banner-complete .lib-banner-deal{grid-template-columns:1fr}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner.lib-banner-complete .lib-banner-deal .lib-banner-action{grid-column:1;grid-row:1;min-height:48px}
}
@media(max-width:370px){
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner [data-banner-panel]{grid-template-columns:minmax(0,1fr) 66px;gap:9px;min-height:198px;padding-left:12px;padding-right:12px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-title{font-size:22px;line-height:1.06}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art{width:66px;height:108px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-art img{width:68px;height:134px;bottom:0}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal{grid-template-columns:121px minmax(0,1fr);column-gap:9px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-price{font-size:30px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal .lib-banner-action{font-size:16px;padding-left:7px;padding-right:7px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal .lib-banner-action>span{display:none}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support{grid-template-columns:46px minmax(0,1fr);column-gap:11px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-icon{width:44px;height:48px;border-radius:13px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-title{font-size:24px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-email{font-size:18px}
}
@media(max-width:340px){
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner [data-banner-panel]{min-height:208px}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-support .lib-banner-email{font-size:17px}
}
/* Price is part of the offer headline; its mobile CTA needs no price column. */
:is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner:not(.lib-banner-complete) .lib-banner-offer .lib-banner-title strong{white-space:nowrap}
@media(max-width:730px){
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal.lib-banner-deal-compact{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;column-gap:0}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-deal.lib-banner-deal-compact .lib-banner-action{grid-column:1;grid-row:1;min-height:48px;align-self:center}
}
@media(prefers-reduced-motion:reduce){
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner *{transition:none!important}
 :is(.project-library,.lib-app) .lib-top-banner.lib-sales-banner .lib-banner-track{scroll-behavior:auto!important}
}
