/* Page-wide layout and illustration refinements */
:root { --zt-section-space: clamp(64px, 6.4vw, 92px); }
main > section:not(.hero) { margin-block: 0; padding-block: var(--zt-section-space); }
.hero {
  min-height: calc(100svh - 120px);
  padding-top: clamp(50px, 6vh, 76px);
  padding-bottom: clamp(44px, 5vh, 68px);
}
.hero-bottom { display: none !important; }

/* Keep the connection menu calm: a clear copy column and a contained visual. */
.connection-paths { padding-inline: max(5vw, calc((100vw - 1240px)/2)); }
.connection-heading { align-items: end; margin-bottom: 34px; }
.connection-heading h2 { font-size: clamp(40px, 4vw, 54px); }
.connection-heading > p { max-width: 330px; }
.connection-grid { gap: 20px; }
.connection-card, .connection-card:last-child {
  min-height: 304px;
  padding: 24px 25px 22px;
  border-radius: 25px;
  box-shadow: 0 14px 34px rgba(17,69,118,.07);
}
.connection-card-copy { position: relative; z-index: 2; width: 62%; max-width: 62%; padding-top: 36px; }
.connection-card-copy strong { font-size: clamp(19px, 1.55vw, 22px); }
.connection-card-copy small { max-width: 100%; font-size: 14px; }
.connection-card-link { position: relative; z-index: 2; margin-top: 18px; }
.connection-art { top: 83px; right: 14px; width: 38%; height: 126px; opacity: .94; }
.connection-art-wifi::before, .connection-art-network::before { inset: 4px; }
.connection-art-wifi i { left: 9%; bottom: 6px; width: 82%; height: 82%; }
.connection-art-wifi i:nth-child(2) { left: 23%; width: 57%; height: 57%; }
.connection-art-wifi i:nth-child(3) { left: 37%; width: 32%; height: 32%; }
.connection-art-wifi b { left: 50%; bottom: 7px; transform: translateX(-50%); }
.connection-art-mobile > i { inset-inline: 29%; }
.connection-art-mobile .mini-phone { transform: rotate(6deg); }
.connection-art-mobile .mobile-network-tag { top: 4px; right: 0; padding: 5px 8px; font-size: 8px; }
.connection-art-network i { width: 10px; height: 10px; }
.connection-art-network .network-hub { width: 32px; height: 32px; }

/* Give service cards distinct, protected copy and illustration zones. */
.services, .plans, .coverage, .contact { padding-top: var(--zt-section-space); padding-bottom: var(--zt-section-space); }
.section-heading { align-items: end; margin-bottom: 36px; }
.section-heading h2, .coverage h2, .client-copy h2 { font-weight: 800; }
.service-grid { gap: 20px; }
.service-card { min-height: 372px; padding: 25px; border-radius: 28px; }
.service-card > div:not(.service-top) { max-width: 56%; }
.service-card h3 { max-width: 100%; font-size: clamp(22px, 1.8vw, 28px); }
.service-card p { max-width: 100%; font-size: 14px; }
.service-card .service-link { max-width: 60%; }
.service-card .service-image { right: 5px; bottom: 62px; width: 42%; height: 164px; }
.service-card-mobile > div:not(.service-top) { max-width: 54%; }
.service-card-mobile .iphone-mockup { right: 12px; }
.service-card-dark .service-image { right: 6px; width: 43%; }

/* Product cards use three confident columns on desktop. */
.product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.product-card { min-height: 385px; padding: 25px 24px 22px; border-radius: 25px; }
.product-card h3 { font-size: 22px; font-weight: 800; }
.product-icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 19px; box-shadow: 0 9px 19px color-mix(in srgb,var(--plan-accent),transparent 80%); }
.product-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.product-price-panel { min-height: 102px; display: flex; flex-direction: column; justify-content: center; }
.product-price strong { font-weight: 800; letter-spacing: -.045em; }
.product-features { font-size: 13px; line-height: 1.5; }
.product-add { font-weight: 800; }
.plans-note { grid-template-columns: 190px 32px minmax(0,1fr); max-width: 1168px; min-height: 156px; margin: 22px auto 30px; padding: 17px 22px; border-radius: 22px; }
.plans-note-art { width: 190px; }
.plans-note p { font-size: 14px; line-height: 1.65; }
.plans-note .note-icon { width: 30px; height: 30px; font-size: 15px; }

/* Coverage map: larger labels, breathing room, restrained technical detail. */
.coverage { column-gap: clamp(38px, 6vw, 88px); row-gap: 34px; }
.coverage-map { min-height: 394px; padding: 20px 22px; border-radius: 28px; }
.coverage-network { min-height: 300px; }
.map-topline span, .map-topline b, .map-name, .map-region, .map-legend { font-size: 11px; }
.coverage-list { gap: 15px 20px; padding-top: 25px; }
.coverage-list > span { font-size: 11px; }
.coverage-list > p { font-size: 14px; }
.coverage-footprint { grid-template-columns: minmax(0,1.8fr) minmax(190px,.65fr); gap: 24px; margin-top: 8px; padding: 16px; border-radius: 24px; }
.coverage-map-ui { min-height: 220px; border-radius: 18px; }
.coverage-map-grid { opacity: .2; background-size: 32px 32px; }
.coverage-map-route { top: 55%; left: 12%; width: 76%; height: 3px; }
.coverage-map-route i { width: 13px; height: 13px; top: -5px; }
.coverage-tower-ui { top: 19%; height: 49px; }
.coverage-region { font-size: 10px; }
.coverage-place { display: none; }
.coverage-status { top: 13px; right: 13px; font-size: 9px; }
.coverage-footprint figcaption { font-size: 15px; }

/* Interactive customer illustrations */
.client-banner { margin-top: 0; padding: clamp(28px,4vw,52px); gap: clamp(18px,2.4vw,34px); }
.client-copy { padding-left: 0; }
.client-copy h2 { font-size: clamp(38px,4vw,54px); }
.client-copy p { max-width: 34ch; font-size: 15px; }
.client-portal-visual { display: grid; height: 270px; place-items: center; padding: 18px; transform: none; }
.client-scene-view { position: absolute; inset: 0; display: none; place-items: center; padding: 16px 14px 34px; }
.client-scene-view.is-active { display: grid; animation: client-illustration-in .45s cubic-bezier(.2,.8,.2,1) both; }
.client-illustration { display: block; width: min(100%, 390px); height: 100%; overflow: visible; font-family: Manrope, ui-sans-serif, system-ui, sans-serif; filter: drop-shadow(0 15px 18px rgba(17,69,118,.12)); }
.client-scene-caption { position: absolute; right: 12px; bottom: 10px; left: 12px; color: #637d94; font-size: 11px; font-weight: 700; text-align: center; }
.client-portal-visual:hover { transform: translateY(-3px); }
.client-links { align-self: center; border: 0; }
.client-links [role="tab"] { display: flex; width: 100%; min-height: 70px; align-items: center; gap: 14px; padding: 11px 14px; border: 0; border-bottom: 1px solid #d3e7d0; border-radius: 15px; color: inherit; background: transparent; cursor: pointer; text-align: left; transition: background .25s ease, transform .25s ease, box-shadow .25s ease; }
.client-links [role="tab"] > span { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 12px; color: var(--zt-blue); background: #e8f5fc; font-size: 12px; font-weight: 800; }
.client-links [role="tab"] > div { display: grid; gap: 2px; }
.client-links [role="tab"] strong { font-size: 15px; }
.client-links [role="tab"] small { color: var(--zt-muted); font-size: 12px; }
.client-links [role="tab"] > i { margin-left: auto; color: var(--zt-blue); font-style: normal; }
.client-links [role="tab"].active, .client-links [role="tab"]:hover { background: #fff; box-shadow: 0 8px 20px rgba(17,69,118,.07); transform: translateX(3px); }
.client-links [role="tab"].active > span { color: #fff; background: var(--zt-green); }
.client-links [role="tab"]:focus-visible { outline: 3px solid rgba(0,124,192,.3); outline-offset: 2px; }
.client-portal-cta { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; margin: 15px 0 0 14px; padding: 0 17px; border-radius: 999px; color: #fff; background: var(--zt-blue); font-size: 13px; font-weight: 800; }
.client-portal-cta:hover { background: var(--zt-green); }

/* WhatsApp: use the same recognizable handset-in-bubble mark everywhere. */
.whatsapp-link .whatsapp-mark, .social-links a[href*="wa.me"] { display: grid; place-items: center; }
.whatsapp-mark svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.floating-whatsapp svg { width: 27px; height: 27px; stroke-width: 2; }
.social-links a[href*="wa.me"] svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

@keyframes client-illustration-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 1050px) {
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .coverage-footprint { grid-template-columns: minmax(0,1.5fr) minmax(160px,.7fr); }
  .client-banner { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .client-copy { grid-column: 1; }
  .client-portal-visual { grid-column: 2; grid-row: 1 / span 2; }
  .client-links { grid-column: 1; grid-row: 2; }
}
@media (max-width: 720px) {
  :root { --zt-section-space: 56px; }
  .hero { min-height: calc(100svh - 100px); padding: 42px 20px 46px; }
  .connection-paths { padding: var(--zt-section-space) 20px; }
  .connection-heading { margin-bottom: 24px; }
  .connection-heading > p { font-size: 14px; }
  .connection-card, .connection-card:last-child { min-height: 252px; }
  .connection-card-copy { width: 62%; max-width: 62%; padding-top: 28px; }
  .connection-art { top: 76px; right: 12px; width: 35%; height: 112px; }
  .services, .plans, .coverage, .contact { padding-block: var(--zt-section-space); }
  .section-heading { margin-bottom: 26px; }
  .service-card { min-height: 310px; padding: 21px; }
  .service-card .service-image { right: 6px; bottom: 50px; width: 40%; height: 138px; }
  .service-card > div:not(.service-top), .service-card-mobile > div:not(.service-top) { max-width: 58%; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
  .product-card { min-height: 360px; padding: 19px 16px 16px; }
  .product-card h3 { font-size: 18px; }
  .product-price strong { font-size: clamp(22px,5vw,29px); }
  .product-features { font-size: 12px; }
  .plans-note { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .plans-note-art { width: 100%; height: 118px; }
  .coverage-map { min-height: 320px; padding: 15px 12px; }
  .coverage-network { min-height: 240px; }
  .coverage-footprint { grid-template-columns: 1fr; gap: 10px; padding: 12px; }
  .coverage-map-ui { min-height: 190px; }
  .client-banner { grid-template-columns: 1fr; padding: 25px 20px; }
  .client-copy, .client-portal-visual, .client-links { grid-column: 1; }
  .client-copy { grid-row: auto; }
  .client-portal-visual { grid-row: auto; height: 240px; }
  .client-links { grid-row: auto; }
  .client-portal-cta { margin-left: 8px; }
}
@media (max-width: 520px) {
  .connection-card-copy { width: 64%; max-width: 64%; }
  .connection-art { width: 32%; right: 8px; }
  .service-card .service-image { width: 37%; right: 2px; }
  .product-grid { grid-template-columns: 1fr; }
  .product-card { min-height: 340px; }
}

/* Rebuild the three destination cards on a strict copy / artwork grid. */
.connection-card, .connection-card:last-child {
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(118px,.92fr);
  grid-template-rows: auto minmax(145px,1fr) auto;
  align-items: center;
  column-gap: 12px;
  min-height: 316px;
}
.connection-card-top { grid-column: 1 / -1; grid-row: 1; width: 100%; }
.connection-card .connection-icon {
  width: 60px;
  height: 60px;
  border: 1px solid color-mix(in srgb,var(--path-accent),transparent 84%);
  border-radius: 20px;
  box-shadow: 0 8px 20px color-mix(in srgb,var(--path-accent),transparent 91%);
}
.connection-card .connection-icon svg { width: 31px; height: 31px; stroke-width: 1.9; }
.connection-card:hover .connection-icon { transform: translateY(-2px) scale(1.04); }
.connection-card-copy {
  grid-column: 1;
  grid-row: 2;
  align-self: center;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 12px 0 0;
}
.connection-card-copy strong { max-width: 18ch; font-size: clamp(19px,1.6vw,22px); }
.connection-card-copy small { max-width: 29ch; font-size: 14px; }
.connection-card-link { grid-column: 1; grid-row: 3; align-self: end; margin: 0; padding-top: 13px; }
.connection-art {
  position: relative;
  inset: auto;
  z-index: 1;
  grid-column: 2;
  grid-row: 2;
  justify-self: center;
  align-self: center;
  width: 100%;
  max-width: 156px;
  height: 142px;
  overflow: visible;
  opacity: 1;
}

/* A contained home modem with clear, softly pulsing Wi-Fi waves. */
.connection-art-wifi { display: grid; place-items: center; }
.connection-art-wifi::before { inset: 12px; border-radius: 50%; background: #e8f5fc; box-shadow: inset 0 0 0 1px rgba(0,124,192,.08),0 10px 24px rgba(0,124,192,.08); }
.connection-art-wifi i {
  top: 8px;
  left: 50%;
  bottom: auto;
  width: 92px;
  height: 84px;
  border: 1.5px solid rgba(0,124,192,.36);
  border-bottom-color: transparent;
  border-radius: 50%;
  transform: translateX(-50%);
  animation: home-wifi-wave 2.8s ease-in-out infinite;
}
.connection-art-wifi i:nth-child(2) { top: 21px; left: 50%; width: 68px; height: 62px; border-color: rgba(0,124,192,.52); border-bottom-color: transparent; animation-delay: .22s; }
.connection-art-wifi i:nth-child(3) { top: 34px; left: 50%; width: 44px; height: 40px; border-color: #007cc0; border-bottom-color: transparent; animation-delay: .44s; }
.connection-art-wifi b { left: 50%; bottom: 9px; width: 96px; height: 48px; padding-left: 12px; transform: translateX(-50%); animation: home-modem-float 4s ease-in-out infinite; }
.connection-card-blue:hover .connection-art-wifi b { animation-duration: 1.5s; }

/* Keep the mobile handset, signal rings and badge inside their own column. */
.connection-art-mobile { display: grid; place-items: center; }
.connection-art-mobile::before { width: 116px; height: 116px; background: #eff8ed; box-shadow: 0 0 0 8px rgba(56,178,74,.045); }
.connection-art-mobile > i { inset: 12px 31px; border-color: rgba(56,178,74,.28); }
.connection-art-mobile .mini-phone { transform: rotate(5deg); }
.connection-art-mobile .mobile-network-tag { top: 8px; right: 4px; max-width: calc(100% - 8px); padding: 5px 7px; font-size: 7px; }

/* A centered region node with a tidy local network around it. */
.connection-art-network { display: grid; place-items: center; background-size: 12px 12px; }
.connection-art-network::before { inset: 8px; border-radius: 50%; background: rgba(232,245,252,.86); }
.connection-art-network b { inset: 21px 19px 20px; border-width: 1.5px; }
.connection-art-network i { width: 11px; height: 11px; }
.connection-art-network .network-hub { top: 50%; left: 50%; transform: translate(-50%,-50%); }
.connection-art-network small { display: none; }

@keyframes home-wifi-wave { 0%,100% { opacity: .62; scale: .96; } 50% { opacity: 1; scale: 1.025; } }
@keyframes home-modem-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -4px; } }

@media (max-width: 720px) {
  .connection-card, .connection-card:last-child {
    grid-template-columns: minmax(0,1fr) minmax(112px,.8fr);
    grid-template-rows: auto minmax(132px,1fr) auto;
    min-height: 276px;
    column-gap: 8px;
  }
  .connection-card-copy { width: 100%; max-width: none; padding-top: 8px; }
  .connection-card-copy strong { font-size: 19px; }
  .connection-card-copy small { max-width: 26ch; font-size: 13px; }
  .connection-art { width: 100%; height: 132px; }
}
@media (max-width: 520px) {
  .connection-card, .connection-card:last-child { grid-template-columns: minmax(0,1fr) minmax(96px,.7fr); min-height: 254px; padding: 19px; column-gap: 7px; }
  .connection-card .connection-icon { width: 54px; height: 54px; border-radius: 18px; }
  .connection-card .connection-icon svg { width: 28px; height: 28px; }
  .connection-card-copy strong { font-size: 18px; }
  .connection-card-copy small { font-size: 12px; }
  .connection-art { height: 116px; }
  .connection-art-wifi b { width: 82px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .connection-card, .connection-art *, .service-card, .product-card, .client-scene-view, .client-links [role="tab"], .coverage-map-route { animation: none !important; transition: none !important; }
}

/* Plans: each package carries both ZONTEC brand colors without color blending. */
.product-card--tone-blue { --package-primary: #007cc0; --package-primary-soft: #eaf5fb; --package-contrast: #38b24a; --package-contrast-soft: #eff8ed; --plan-accent: #007cc0; --plan-ink: #114576; --plan-soft: #eaf5fb; }
.product-card--tone-green { --package-primary: #38b24a; --package-primary-soft: #eff8ed; --package-contrast: #007cc0; --package-contrast-soft: #eaf5fb; --plan-accent: #38b24a; --plan-ink: #277d35; --plan-soft: #eff8ed; }
.product-card.product-card--tone-blue, .product-card.product-card--tone-green {
  border-color: color-mix(in srgb,var(--package-primary),white 78%);
  background: linear-gradient(155deg,#fff 42%,var(--package-primary-soft));
}
.product-card.product-card--tone-blue::before, .product-card.product-card--tone-green::before { background: var(--package-contrast); }
.product-card.product-card--tone-blue.featured, .product-card.product-card--tone-green.featured { border-color: var(--package-primary); background: var(--package-primary-soft); }
.product-card.product-card--tone-blue .product-icon, .product-card.product-card--tone-green .product-icon {
  width: 56px; height: 56px; flex: 0 0 56px; margin: 0; border-radius: 18px;
  color: #fff; background: var(--package-primary); box-shadow: 0 9px 18px color-mix(in srgb,var(--package-primary),transparent 78%);
}
.product-card .product-icon svg { width: 27px; height: 27px; stroke-width: 1.9; }
.product-heading { display: flex; min-width: 0; align-items: center; gap: 15px; margin: 8px 64px 16px 0; }
.product-heading-copy { display: grid; min-width: 0; gap: 2px; }
.product-heading-copy .product-type { color: var(--package-primary); font-size: 9px; line-height: 1.3; letter-spacing: .11em; }
.product-heading-copy h3 { overflow-wrap: anywhere; margin: 3px 0 0; font-size: 21px; line-height: 1.15; font-weight: 800; }
.product-heading-copy .product-sub { min-height: 0; color: #647d91; font-size: 12px; line-height: 1.4; }
.product-card .product-badge { z-index: 2; top: 17px; right: 17px; padding: 7px 10px; border-radius: 11px; color: #fff; background: var(--package-contrast); font-size: 10px; }
.product-card .product-price-panel { border: 1px solid color-mix(in srgb,var(--package-contrast),white 78%); background: var(--package-contrast-soft); }
.product-card .price-caption { color: var(--package-contrast); }
.product-card .product-price strong { color: var(--zt-ink); }
.product-card .product-features li::before { color: var(--package-contrast); }
.product-card .product-add {
  display: inline-flex; width: fit-content !important; min-width: 188px; max-width: 100%; min-height: 48px;
  align-items: center; justify-content: space-between; gap: 15px; align-self: flex-start;
  margin-top: auto; padding: 0 17px; border: 0; border-radius: 15px;
  color: #fff; background: var(--package-primary); font-size: 13px; font-weight: 800;
  box-shadow: 0 7px 15px color-mix(in srgb,var(--package-primary),transparent 84%);
}
.product-card .product-add span { color: #fff; }
.product-card .product-add:hover { background: var(--package-contrast); }

/* Coverage: keep the service map still and remove the redundant state diagram. */
.coverage-map { background: #0d2743; }
.coverage-network .network-route { stroke: #52b7df; stroke-width: 2.4; stroke-dasharray: none !important; opacity: .78; animation: none !important; }
.coverage-network .network-route.route-secondary { stroke: #53bd69; stroke-width: 2; opacity: .7; }
.coverage-network .node-halo { animation: none !important; }
.coverage-network .node-dot { stroke: #0d2743; stroke-width: 2; }
.coverage-network .node-dot.node-hub { fill: #38b24a; }
.coverage-list { grid-template-columns: 116px minmax(0,1fr); gap: 14px 20px; }
.coverage-list > span { display: flex; align-items: center; gap: 9px; }
.coverage-list > span::before { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--zt-green); content: ""; }

/* Client area: copy and options share the left column, illustration gets room. */
.client-banner {
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: clamp(28px,4vw,54px);
  row-gap: 18px;
  padding: clamp(30px,4vw,48px);
}
.client-copy { grid-column: 1; grid-row: 1; }
.client-copy h2 { max-width: 12ch; }
.client-copy p { max-width: 38ch; }
.client-links { display: flex; grid-column: 1; grid-row: 2; width: 100%; flex-direction: column; align-items: stretch; gap: 6px; padding-left: 0; }
.client-links [role="tab"] { min-height: 66px; flex: 0 0 auto; }
.client-portal-visual { grid-column: 2; grid-row: 1 / span 2; width: 100%; height: 340px; min-width: 0; }
.client-scene-view { padding: 16px 18px 38px; }
.client-illustration { width: min(100%,460px); }
.client-scene-caption { bottom: 12px; font-size: 12px; }
.client-links > a.client-portal-cta {
  display: inline-flex !important; width: fit-content !important; min-width: 0; max-width: 100%; min-height: 46px;
  flex: 0 0 auto; align-self: flex-start; align-items: center; justify-content: center; gap: 12px;
  margin: 10px 0 0; padding: 0 19px; border: 0; border-radius: 15px;
  color: #fff; background: var(--zt-blue); font-size: 13px; line-height: 1.2; white-space: nowrap;
}
.client-links > a.client-portal-cta:hover { padding-inline: 19px; background: var(--zt-green); transform: translateY(-2px); }
@media (max-width: 720px) {
  .product-card .product-add { min-width: 176px; }
  .coverage-list { grid-template-columns: 1fr; gap: 5px; }
  .coverage-list > p { padding: 0 0 12px 16px; }
  .client-banner { grid-template-columns: minmax(0,1fr); grid-template-rows: auto; row-gap: 19px; }
  .client-copy, .client-portal-visual, .client-links { grid-column: 1; grid-row: auto; }
  .client-portal-visual { height: 260px; }
  .client-links > a.client-portal-cta { align-self: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .coverage-network .network-route, .coverage-network .node-halo { animation: none !important; }
}

/* Account modal: give the form enough room so it fits without a visible inner scrollbar. */
.modal-wrap#accountModal { padding: 12px; }
.modal-wrap#accountModal .account-modal {
  width: min(540px, calc(100vw - 24px));
  max-width: none;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  padding: 24px 38px 18px;
  overflow-y: auto;
  scrollbar-width: none;
}
.modal-wrap#accountModal .account-modal::-webkit-scrollbar { display: none; }
.account-modal .modal-logo { width: 58px; height: 54px; margin: 0 auto 10px; }
.account-modal .modal-intro { max-width: 410px; margin: 0 auto 12px; font-size: 13px; line-height: 1.5; }
.account-modal .account-connect-art { min-height: 76px; margin: 9px 0 12px; }
.account-modal .auth-tabs { margin-bottom: 12px; }
.account-modal .form-stack { gap: 9px; }
.account-modal .form-stack input:not([type="checkbox"]) { height: 42px; }
.account-modal .form-stack .full-button { min-height: 50px; margin-top: 2px; }
.account-modal .demo-note { margin-top: 11px; padding-top: 9px; }
@media (max-width: 480px) {
  .modal-wrap#accountModal { padding: 10px; }
  .modal-wrap#accountModal .account-modal { width: calc(100vw - 20px); max-height: calc(100vh - 20px); max-height: calc(100dvh - 20px); padding: 22px 20px 16px; }
}

/* Admin sign-in: use the full-color brand mark and a light, green-led surface. */
.admin-login-brand { min-height: 82px; background: #fff; border-bottom: 2px solid #38b24a; }
.admin-login-brand:after { display: none; }
.admin-login-brand img { width: 150px; }
.admin-login-brand > span { color: #174576; }
.admin-login-brand > span b { color: #38b24a; }
.admin-modal .modal-close { border-color: #dce9df; background: #f1f8f0; color: #174576; }
.admin-modal .modal-close:hover { background: #e5f4e3; }
.admin-modal-header { background: #f0f8ef; color: #12314f; }
.admin-modal-header .eyebrow { color: #278d3e; }
.admin-modal-header h2 { color: #12314f; }
.admin-modal-header p { color: #60798d; }
.admin-modal #adminForm > label:not(.remember-option) input:focus { border-color: #38b24a; box-shadow: 0 0 0 4px #38b24a20; }
.admin-modal .button-primary { background: #38b24a; box-shadow: 0 10px 22px #38b24a2b; }
.admin-modal .button-primary:hover { background: #2c9b3d; }

/* Customer account: turn the signed-in state into a compact, usable profile. */
.modal-wrap#accountModal .account-modal.is-profile {
  width: min(820px, calc(100vw - 32px));
  max-height: min(820px, calc(100dvh - 32px));
  padding: 36px clamp(24px, 5vw, 52px) 24px;
  text-align: left;
  border-radius: 26px;
  border-top: 4px solid #35b34a;
}
.account-modal.is-profile > .modal-logo,
.account-modal.is-profile > .eyebrow,
.account-modal.is-profile > #accountIntro,
.account-modal.is-profile > .account-connect-art,
.account-modal.is-profile > .auth-tabs { display: none !important; }
.account-modal.is-profile > #accountForm[hidden] { display: none !important; }
.account-modal.is-profile > .modal-close { top: 18px; right: 18px; }
.account-modal.is-profile > #accountTitle {
  margin: 0 48px 22px 0;
  color: #12314f;
  font-size: clamp(25px, 3vw, 32px);
  line-height: 1.15;
  letter-spacing: -.045em;
}
.account-modal.is-profile > .account-orders {
  display: grid;
  gap: 18px;
  margin: 0;
  padding: 0;
  border: 0;
}
.account-profile-card {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 20px;
  border: 1px solid #d8ebd7;
  border-radius: 19px;
  background: linear-gradient(120deg, #f1f9ef, #fbfdfb 76%);
}
.account-avatar-wrap { position: relative; width: 82px; height: 82px; }
.account-avatar {
  width: 82px; height: 82px; display: grid; place-items: center; overflow: hidden;
  border: 3px solid #fff; border-radius: 50%;
  background: linear-gradient(145deg, #dff1df, #e9f5fb);
  box-shadow: 0 4px 14px #13385615;
}
.account-avatar img { width: 100%; height: 100%; object-fit: cover; }
.account-avatar > span { color: #178940; font-size: 25px; font-weight: 800; letter-spacing: -.04em; }
.account-avatar-edit {
  position: absolute; right: -3px; bottom: -2px; display: grid; place-items: center;
  width: 30px; height: 30px; border: 2px solid #fff; border-radius: 50%;
  background: #31ae49; color: #fff; cursor: pointer; transition: transform .18s, background .18s;
}
.account-avatar-edit:hover { transform: scale(1.08); background: #238e3a; }
.account-avatar-edit svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-file-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; }
.account-file-input:focus-visible + .account-avatar-edit { outline: 3px solid #1689c6; outline-offset: 3px; }
.account-profile-main { min-width: 0; }
.account-profile-kicker { display: block; margin-bottom: 5px; color: #31954a; font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.account-profile-main h3 { overflow-wrap: anywhere; margin: 0 0 3px; color: #12314f; font-size: 21px; line-height: 1.25; letter-spacing: -.035em; }
.account-profile-main > p { overflow-wrap: anywhere; margin: 0; color: #668198; font-size: 13px; }
.account-profile-contact { margin-top: 9px; color: #527188; font-size: 12px; }
.account-profile-contact > span { display: inline-flex; align-items: center; gap: 6px; }
.account-profile-contact svg { width: 14px; height: 14px; fill: none; stroke: #2ea948; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-edit-toggle, .account-remove-photo, .account-profile-cancel, .account-profile-save, .account-logout {
  min-height: 40px; border-radius: 999px; padding: 0 17px; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer;
  transition: background .18s, border-color .18s, color .18s, transform .18s;
}
.account-edit-toggle { grid-column: 3; grid-row: 1; border: 1px solid #cfe5d0; background: #fff; color: #218b3c; }
.account-edit-toggle:hover, .account-remove-photo:hover { transform: translateY(-1px); background: #eaf6e9; }
.account-remove-photo { grid-column: 3; grid-row: 1; align-self: end; margin-bottom: -3px; min-height: 29px; padding: 0 10px; border: 0; background: transparent; color: #6e8798; font-size: 10px; }
.account-profile-card:has(.account-remove-photo) .account-edit-toggle { align-self: start; }
.account-profile-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; padding: 18px; border: 1px solid #e1ebef; border-radius: 16px; background: #fbfdfd; }
.account-profile-editor[hidden] { display: none; }
.account-profile-editor label { display: grid; gap: 6px; color: #4f6d82; font-size: 11px; font-weight: 750; }
.account-profile-editor input { width: 100%; height: 43px; padding: 0 12px; border: 1px solid #d9e5eb; border-radius: 10px; outline: none; background: #fff; color: #173956; font: inherit; font-size: 13px; }
.account-profile-editor input:focus { border-color: #38b24a; box-shadow: 0 0 0 3px #38b24a1c; }
.account-profile-editor-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 9px; }
.account-profile-cancel { border: 1px solid #dbe6eb; background: #fff; color: #617c8f; }
.account-profile-save { border: 1px solid #2eaa48; background: #31ae49; color: #fff; }
.account-profile-save:hover { background: #238e3a; }
.account-profile-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.account-profile-stats > div { display: grid; gap: 3px; padding: 15px 18px; border: 1px solid #e2ebef; border-radius: 15px; background: #fff; }
.account-profile-stats strong { color: #123b5b; font-size: 23px; line-height: 1.2; letter-spacing: -.04em; }
.account-profile-stats span { color: #7990a1; font-size: 11px; }
.account-orders-section { display: grid; gap: 12px; }
.account-orders-heading { display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.account-orders-heading h3 { margin: 0; color: #12314f; font-size: 20px; letter-spacing: -.035em; }
.account-orders-heading > span { padding: 6px 10px; border-radius: 999px; background: #eef7ed; color: #328847; font-size: 10px; font-weight: 750; }
.account-order-list { display: grid; gap: 11px; }
.account-order-card { overflow: hidden; border: 1px solid #e1eaf0; border-radius: 15px; background: #fff; }
.account-order-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; background: #f8fbfc; border-bottom: 1px solid #e8eff2; }
.account-order-head > div { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 3px 9px; min-width: 0; }
.account-order-kicker { grid-column: 1 / -1; color: #8298a8; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.account-order-head strong { overflow-wrap: anywhere; color: #143c5b; font-size: 13px; }
.account-order-head time { color: #8195a4; font-size: 11px; }
.account-order-status { flex: 0 0 auto; padding: 6px 10px; border-radius: 999px; background: #fff5df; color: #a66e0d; font-size: 10px; font-weight: 750; }
.account-order-status.complete { background: #eaf7e9; color: #298841; }
.account-order-items { display: grid; gap: 0; padding: 4px 16px; }
.account-order-items > div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #edf2f4; color: #4d6b80; font-size: 12px; }
.account-order-items > div:last-child { border-bottom: 0; }
.account-order-items > div > span { overflow-wrap: anywhere; }
.account-order-items small { color: #8da0ad; }
.account-order-items strong { flex: 0 0 auto; color: #1b4968; font-size: 12px; }
.account-order-items > p { margin: 8px 0; color: #8195a4; font-size: 12px; }
.account-order-total { display: flex; justify-content: space-between; gap: 12px; padding: 11px 16px; border-top: 1px solid #edf2f4; color: #71899a; font-size: 11px; }
.account-order-total strong { color: #2c9e45; font-size: 15px; }
.account-empty-orders { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 17px; border: 1px dashed #d7e6dc; border-radius: 15px; background: #fbfdfb; }
.account-empty-orders-icon { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; background: #edf7ed; color: #31a94a; }
.account-empty-orders-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-empty-orders strong { color: #173956; font-size: 13px; }
.account-empty-orders p { margin: 3px 0 0; color: #738b9b; font-size: 11px; line-height: 1.5; }
.account-browse-plans { min-height: 39px; padding: 0 15px; border: 0; border-radius: 999px; background: #31ae49; color: #fff; font-size: 11px; font-weight: 800; white-space: nowrap; cursor: pointer; }
.account-browse-plans span { margin-left: 6px; }
.account-browse-plans:hover { background: #238e3a; }
.account-modal.is-profile #accountLogout { justify-self: start; min-width: 142px; border: 1px solid #d4e7d4; background: #f1f8ef; color: #27883d; }
.account-modal.is-profile #accountLogout:hover { background: #e3f3e0; border-color: #b9ddb9; }
.account-modal.is-profile #accountAdminShortcut { justify-self: start; margin-top: 0; }
.account-modal.is-profile > .demo-note { margin-top: 0; padding-top: 12px; text-align: center; font-size: 10px; }
.account-profile-tabs { display: flex; align-items: center; gap: 7px; padding: 5px; border: 1px solid #e2ebef; border-radius: 14px; background: #f5f8f9; }
.account-profile-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 18px; border: 0; border-radius: 10px; background: transparent; color: #678094; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; transition: background .18s,color .18s,box-shadow .18s; }
.account-profile-tabs button.active { background: #fff; color: #1c7e38; box-shadow: 0 2px 8px #17395610; }
.account-profile-tabs button:focus-visible { outline: 3px solid #39ad4d55; outline-offset: 2px; }
.account-profile-tabs button > span { display: grid; place-items: center; min-width: 21px; height: 21px; padding: 0 5px; border-radius: 99px; background: #edf6eb; color: #278b3e; font-size: 10px; }
.account-profile-tabs button > svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-profile-panel { display: grid; gap: 17px; }
.account-profile-panel[hidden] { display: none !important; }
.account-modal.is-profile > #accountOrders[hidden] { display: none !important; }
.account-modal.is-profile .account-avatar img { display: block; width: 100%; height: 100%; max-width: 100%; aspect-ratio: 1; object-fit: cover; }
.account-profile-panel-heading { display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.account-profile-panel-heading h3 { margin: 0; color: #12314f; font-size: 19px; letter-spacing: -.035em; }
.account-profile-panel-heading > p { margin: 0; color: #7990a1; font-size: 11px; text-align: right; }
.account-personal-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid #e2ebef; border-radius: 15px; overflow: hidden; background: #fff; }
.account-personal-details > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 13px 15px; border-bottom: 1px solid #edf2f4; }
.account-personal-details > div:nth-child(odd) { border-right: 1px solid #edf2f4; }
.account-personal-details > div:nth-last-child(-n+2) { border-bottom: 0; }
.account-personal-details > .account-detail-wide { grid-column: 1 / -1; border-right: 0; }
.account-personal-details > div > span { color: #8095a4; font-size: 10px; }
.account-personal-details > div > span:first-child { display: flex; align-items: center; gap: 7px; }
.account-personal-details > div > span > svg { flex: 0 0 16px; width: 16px; height: 16px; fill: none; stroke: #36a74b; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.account-personal-details strong { color: #234762; font-size: 12px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.account-personal-details .account-detail-empty { color: #a0afb8; font-weight: 500; }
.account-profile-panel.is-editing .account-personal-details { display: none; }
.account-profile-editor .account-profile-reference { grid-column: 1 / -1; }
.account-profile-message { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border: 1px solid #f0d7c5; border-radius: 9px; background: #fff9f4; color: #a35325; font-size: 12px; }
.account-profile-message[hidden] { display: none !important; }
.account-profile-panel .account-profile-stats { margin-top: 1px; }
.account-profile-stats > div { grid-template-columns: 42px 1fr; align-items: center; }
.account-profile-stats .account-stat-icon { grid-row: 1 / span 2; display: grid; place-items: center; width: 36px; height: 36px; margin: 0; border-radius: 12px; background: #eef7ec; color: #2b9b43; font-style: normal; }
.account-profile-stats .account-stat-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.account-profile-stats strong { font-size: 21px; }
.account-profile-stats span { align-self: start; }
.account-order-list { display: grid; gap: 10px; }
.account-order-accordion { overflow: hidden; border: 1px solid #dce8ed; border-radius: 15px; background: #fff; transition: border-color .18s,box-shadow .18s; }
.account-order-accordion[open] { border-color: #bcdcbc; box-shadow: 0 7px 20px #1739560b; }
.account-order-summary { display: grid; grid-template-columns: minmax(0,1fr) auto auto 20px; align-items: center; gap: 14px; min-height: 78px; padding: 13px 16px; list-style: none; cursor: pointer; background: #fff; transition: background .18s; }
.account-order-summary::-webkit-details-marker { display: none; }
.account-order-summary:hover, .account-order-accordion[open] > .account-order-summary { background: #f8fbfa; }
.account-order-summary-main { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 2px 10px; min-width: 0; }
.account-order-summary-main .account-order-kicker { grid-column: 1 / -1; }
.account-order-summary-main strong { color: #143c5b; font-size: 14px; overflow-wrap: anywhere; }
.account-order-summary-main time { color: #8195a4; font-size: 11px; }
.account-order-summary-total { color: #248e3d; font-size: 14px; font-weight: 800; white-space: nowrap; }
.account-order-chevron { color: #698397; font-size: 23px; line-height: 1; transition: transform .2s,color .2s; }
.account-order-accordion[open] .account-order-chevron { transform: rotate(180deg); color: #248e3d; }
.account-order-body { border-top: 1px solid #eaf0f2; animation: account-order-reveal .22s ease both; }
.account-order-body-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px 4px; color: #6e8799; font-size: 10px; }
.account-order-body-heading > span:first-child, .account-order-address > strong { display: inline-flex; align-items: center; gap: 7px; color: #4b6b81; font-size: 11px; font-weight: 750; }
.account-order-body-heading svg, .account-order-address svg { width: 15px; height: 15px; fill: none; stroke: #33a649; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-order-body .account-order-items { padding: 4px 16px; }
.account-order-address { display: grid; gap: 5px; padding: 10px 16px; border-top: 1px solid #edf2f4; color: #678196; font-size: 11px; }
.account-order-address > small { color: #899eac; }
.account-order-body .account-order-total { background: #fbfdfc; }
.account-profile-footer { border-top: 1px solid #e5edf0; padding-top: 14px; }
.account-profile-footer .account-logout { margin-top: 0 !important; }
.account-profile-footer { display: flex; align-items: center; justify-content: flex-start; }
.account-modal.is-profile #accountAdminShortcut { display: none !important; }
.account-modal #clientRememberField { display: flex; align-items: flex-start; gap: 10px; margin: 0 1px 2px; color: #536f82; cursor: pointer; }
.account-modal #clientRememberField > input[type="checkbox"] { flex: 0 0 17px; width: 17px; height: 17px; margin: 1px 0 0; padding: 0; border: 0; border-radius: 4px; background: transparent; accent-color: #31ae49; cursor: pointer; }
.account-modal #clientRememberField > input[type="checkbox"]:focus-visible { outline: 3px solid #31ae4940; outline-offset: 2px; }
.account-modal #clientRememberField > span { display: grid; gap: 2px; }
.account-modal #clientRememberField strong { color: #35576f; font-size: 11px; font-weight: 750; }
.account-modal #clientRememberField small { color: #8296a4; font-size: 10px; font-weight: 500; line-height: 1.4; }
.account-modal #clientRememberField:focus-within { color: #268d3d; }
@media (max-width: 620px) {
  .modal-wrap#accountModal .account-modal.is-profile { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); padding: 28px 18px 18px; border-radius: 21px; }
  .account-profile-card { grid-template-columns: 66px minmax(0,1fr); gap: 13px; padding: 15px; }
  .account-avatar-wrap, .account-avatar { width: 64px; height: 64px; }
  .account-avatar > span { font-size: 20px; }
  .account-avatar-edit { width: 27px; height: 27px; }
  .account-profile-main h3 { font-size: 18px; }
  .account-profile-main > p { font-size: 12px; }
  .account-profile-contact { font-size: 11px; }
  .account-edit-toggle { grid-column: 2; grid-row: 2; justify-self: start; min-height: 35px; }
  .account-remove-photo { grid-column: 2; grid-row: 2; justify-self: end; align-self: center; margin: 0; }
  .account-profile-card:has(.account-remove-photo) .account-edit-toggle { align-self: center; }
  .account-profile-editor { grid-template-columns: 1fr; padding: 14px; }
  .account-profile-editor-actions { grid-column: 1; }
  .account-profile-reference, .account-profile-message { grid-column: 1 !important; }
  .account-profile-panel-heading { display: block; }
  .account-profile-panel-heading > p { margin-top: 6px; text-align: left; }
  .account-personal-details > div { padding: 11px 12px; }
  .account-empty-orders { grid-template-columns: 46px minmax(0,1fr); padding: 14px; }
  .account-empty-orders-icon { width: 44px; height: 44px; }
  .account-browse-plans { grid-column: 2; justify-self: start; }
}
@media (max-width: 390px) {
  .account-profile-stats { gap: 8px; }
  .account-profile-stats > div { padding: 12px; }
  .account-profile-stats strong { font-size: 20px; }
  .account-order-head { align-items: flex-start; padding: 12px; }
  .account-order-head > div { grid-template-columns: 1fr; }
  .account-order-kicker { grid-column: 1; }
  .account-order-items, .account-order-total { padding-right: 12px; padding-left: 12px; }
  .account-empty-orders { grid-template-columns: 1fr; }
  .account-browse-plans { grid-column: 1; }
  .account-profile-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .account-profile-tabs button { padding: 0 9px; font-size: 11px; }
  .account-order-summary { grid-template-columns: minmax(0,1fr) auto 18px; gap: 8px; padding: 12px; }
  .account-order-summary-main { grid-column: 1; }
  .account-order-summary-total { grid-column: 2; grid-row: 1; font-size: 12px; }
  .account-order-status { grid-column: 1; grid-row: 2; justify-self: start; padding: 4px 8px; }
  .account-order-chevron { grid-column: 3; grid-row: 1 / span 2; }
  .account-personal-details { grid-template-columns: 1fr; }
  .account-personal-details > div:nth-child(odd) { border-right: 0; }
  .account-personal-details > div:nth-last-child(2) { border-bottom: 1px solid #edf2f4; }
  .account-personal-details > .account-detail-wide { grid-column: 1; }
}
@keyframes account-order-reveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* Order history: one clear summary with complete package specifications. */
.account-order-status.cancelled { background: #f0f4f5; color: #647d8d; }
.account-order-body-heading { padding-top: 15px; padding-bottom: 8px; }
.account-order-items { padding: 0 14px 12px !important; }
.account-order-product { padding: 14px; border: 1px solid #e5edf0; border-radius: 13px; background: #fff; }
.account-order-product + .account-order-product { margin-top: 9px; }
.account-order-product-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px 14px; }
.account-order-product-heading > div { display: grid; gap: 3px; min-width: 0; }
.account-order-product-category { color: #278d40; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.account-order-product-heading > div > strong { color: #143c5b; font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.account-order-product-subtitle { color: #71889a; font-size: 11px; }
.account-order-product-quantity { color: #536f82; font-size: 11px; font-weight: 750; }
.account-order-product-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.account-order-product-meta > span { display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 999px; background: #f3f8f5; color: #587489; font-size: 10px; }
.account-order-product-meta svg { width: 13px; height: 13px; fill: none; stroke: #31a64a; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-order-features { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 14px; margin: 11px 0 0; padding: 10px 0 0; border-top: 1px solid #edf2f4; list-style: none; }
.account-order-features li { position: relative; padding-left: 15px; color: #60798c; font-size: 10px; line-height: 1.45; }
.account-order-features li::before { position: absolute; left: 0; color: #31a64a; content: "✓"; font-weight: 800; }
.account-order-no-items { margin: 0; padding: 10px 2px; color: #8195a4; font-size: 12px; }
.account-order-address { margin: 0 14px 13px; border: 1px solid #e7eef0; border-radius: 12px; background: #f9fbfa; }
@media (max-width: 620px) {
  .account-order-items { padding-right: 8px !important; padding-left: 8px !important; }
  .account-order-product { padding: 12px; }
  .account-order-product-heading { grid-template-columns: minmax(0,1fr) auto; }
  .account-order-product-quantity { grid-column: 2; grid-row: 1; }
  .account-order-features { grid-template-columns: 1fr; }
  .account-order-address { margin-right: 8px; margin-left: 8px; }
}

/* Make the signed-in customer's profile entry easy to spot in the site header. */
.account-trigger.is-signed-in { position: relative; min-height: 42px; padding: 0 14px; border: 1px solid #bfe0c0; border-radius: 999px; background: #eef8ec; color: #23853a; box-shadow: 0 4px 12px #2c9b4314; transition: background .18s,border-color .18s,box-shadow .18s,transform .18s; }
.account-trigger.is-signed-in:hover { transform: translateY(-1px); border-color: #96cf9a; background: #e5f4e2; box-shadow: 0 7px 16px #2c9b431f; }
.account-trigger.is-signed-in svg { color: #23853a; }
.account-trigger.is-signed-in::after { position: absolute; top: 4px; right: 5px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #32b34b; content: ""; }
@media (max-width: 520px) { .account-trigger.is-signed-in::after { top: 3px; right: 3px; } }

/* Plan cards: center their content, simplify the price area, and emphasize data. */
.product-card.product-card--tone-blue, .product-card.product-card--tone-green { align-items: center; text-align: center; }
.product-card .product-heading { width: fit-content; max-width: 100%; margin: 8px auto 16px; justify-content: center; text-align: left; }
.product-card .product-heading-copy { text-align: left; }
.product-card .product-badge { padding: 9px 13px; border-radius: 13px; font-size: 14px; line-height: 1.1; font-weight: 800; }
.product-card .product-price-panel {
  width: 100%; min-height: 0; display: grid; justify-items: center; gap: 5px;
  padding: 12px 0 16px; border: 0; background: transparent !important; text-align: center;
}
.product-card .price-caption { text-align: center; }
.product-card .product-price { justify-content: center; }
.product-card .product-features { width: fit-content; max-width: 100%; margin-inline: auto; text-align: left; }
.product-card .product-add { min-width: 0; width: auto !important; min-height: 48px; align-self: center; justify-content: center; gap: 16px; border-radius: 999px; padding: 0 24px; }
@media (max-width: 720px) {
  .product-card .product-badge { padding: 8px 11px; font-size: 13px; }
  .product-card .product-add { min-width: 0; }
}

/* Client scenes: keep each label inside its device and space the status marker clearly. */
.client-links > a.client-portal-cta {
  min-height: 48px; border-radius: 999px; padding-inline: 21px;
}
.client-illustration { max-height: 100%; }

/* Use the supplied WhatsApp artwork consistently across contact entry points. */
.whatsapp-mark { background: transparent; }
.whatsapp-mark img { display: block; width: 42px; height: 42px; object-fit: contain; }
.social-links a[href*="wa.me"] img { display: block; width: 20px; height: 20px; object-fit: contain; }
.floating-whatsapp { padding: 0; border: 0; background: transparent; box-shadow: none; }
.floating-whatsapp:hover { background: transparent; box-shadow: none; }
.floating-whatsapp img { display: block; width: 58px; height: 58px; object-fit: contain; filter: none; }
.support-status { display: none; }
@media (max-width: 720px) { .floating-whatsapp img { width: 46px; height: 46px; } }

/* Logo hover: no underline sweep or entrance animation, just a subtle scale. */
.brand-logo { transform-origin: center; transition: transform .22s ease; }
.brand::after { display: none; }
.brand:hover .brand-logo { animation: none; transform: scale(1.06); filter: none; }
.brand:hover::after { display: none; }
@media (max-width: 520px) { .admin-login-brand img { width: 138px; } }

/* Improve readability throughout the customer profile and order details. */
.account-profile-kicker { font-size: 11px; }
.account-profile-contact { font-size: 14px; }
.account-profile-tabs button { font-size: 14px; }
.account-profile-panel-heading > p { font-size: 13px; }
.account-personal-details > div > span { font-size: 12px; }
.account-personal-details strong { font-size: 14px; }
.account-profile-stats span { font-size: 13px; }
.account-orders-heading h3 { font-size: 22px; }
.account-order-summary-main .account-order-kicker { font-size: 10px; }
.account-order-summary-main strong { font-size: 16px; }
.account-order-summary-main time { font-size: 12px; }
.account-order-summary-total { font-size: 16px; }
.account-order-status { font-size: 12px; }
.account-order-body-heading { font-size: 12px; }
.account-order-body-heading > span:first-child, .account-order-address > strong { font-size: 13px; }
.account-order-product-category { font-size: 11px; }
.account-order-product-heading > div > strong { font-size: 16px; }
.account-order-product-subtitle { font-size: 13px; }
.account-order-product-quantity { font-size: 13px; }
.account-order-product-meta > span { font-size: 12px; }
.account-order-features li { font-size: 12px; line-height: 1.5; }
.account-order-address { font-size: 13px; }
.account-order-no-items { font-size: 13px; }
@media (max-width: 620px) {
  .account-profile-tabs button { font-size: 13px; }
  .account-personal-details > div > span { font-size: 12px; }
  .account-personal-details strong { font-size: 14px; }
  .account-order-summary-main strong { font-size: 15px; }
  .account-order-summary-main time { font-size: 12px; }
  .account-order-summary-total { font-size: 15px; }
  .account-order-product-category { font-size: 10px; }
  .account-order-product-heading > div > strong { font-size: 15px; }
  .account-order-product-subtitle, .account-order-product-meta > span,
  .account-order-features li { font-size: 12px; }
}

/* Keep the GB label in its own row so it never touches the package title. */
.product-card .product-badge {
  position: relative !important;
  inset: auto;
  align-self: flex-end;
  max-width: 100%;
  margin: 0 0 2px;
}
.product-card .product-heading { margin-top: 4px; }

/* Align order package details as a single readable column. */
.account-order-product { padding: 18px 20px; }
.account-order-product-heading { align-items: start; gap: 10px 16px; }
.account-order-product-quantity { align-self: start; padding: 7px 11px; border: 1px solid #d6ead7; border-radius: 999px; background: #f1f8ef; color: #27853d; font-size: 12px; line-height: 1.2; white-space: nowrap; }
.account-order-product-meta { margin-top: 13px; }
.account-order-features { grid-template-columns: 1fr; gap: 0; margin-top: 14px; padding-top: 7px; }
.account-order-features li { padding: 8px 0 8px 19px; border-bottom: 1px solid #edf2f4; }
.account-order-features li:last-child { border-bottom: 0; }
.account-order-features li::before { top: 8px; }
@media (max-width: 620px) {
  .account-order-product { padding: 15px; }
  .account-order-product-heading { grid-template-columns: minmax(0,1fr) auto; align-items: start; }
  .account-order-product-quantity { grid-column: 2; grid-row: 1; padding: 6px 9px; }
  .account-order-features { grid-template-columns: 1fr; }
}

.account-order-features { display: flex; flex-flow: row wrap; align-items: center; gap: 8px; }
.account-order-features li { flex: 1 1 175px; min-height: 38px; display: flex; align-items: center; padding: 8px 12px 8px 31px; border: 1px solid #e4eee5; border-radius: 999px; background: #f8fbf7; }
.account-order-features li:last-child { border-bottom: 1px solid #e4eee5; }
.account-order-features li::before { top: 50%; left: 12px; transform: translateY(-50%); }
@media (max-width: 620px) {
  .account-order-features li { flex-basis: 145px; }
}

.admin-confirm-overlay { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 22px; background: rgba(11,39,62,.58); backdrop-filter: blur(7px); animation: admin-confirm-fade .18s ease both; }
.admin-confirm-card { width: min(100%, 470px); padding: 30px; border: 1px solid #dce9e4; border-top: 4px solid #35ad4b; border-radius: 24px; background: #fff; box-shadow: 0 24px 70px rgba(8,39,62,.24); animation: admin-confirm-rise .24s cubic-bezier(.2,.75,.25,1) both; }
.admin-confirm-icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 17px; border: 1px solid #d7ecd7; border-radius: 16px; background: #eff8ed; color: #2f9f46; }
.admin-confirm-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.admin-confirm-eyebrow { color: #328a45; font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.admin-confirm-card h2 { margin: 6px 0 8px; color: #12314f; font-size: 25px; line-height: 1.25; letter-spacing: -.04em; }
.admin-confirm-card p { margin: 0; color: #647e91; font-size: 14px; line-height: 1.65; }
.admin-confirm-card p strong { color: #244b66; }
.admin-confirm-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.admin-confirm-actions button { min-height: 45px; padding: 0 18px; border: 1px solid transparent; border-radius: 999px; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; transition: background .18s,border-color .18s,transform .18s,box-shadow .18s; }
.admin-confirm-cancel { border-color: #dbe7eb !important; background: #f7faf9; color: #49677c; }
.admin-confirm-cancel:hover { border-color: #bcd8c0 !important; background: #eff7ee; }
.admin-confirm-submit { background: #35ad4b; color: #fff; box-shadow: 0 7px 16px rgba(53,173,75,.2); }
.admin-confirm-submit:hover { transform: translateY(-1px); background: #278f3b; box-shadow: 0 9px 20px rgba(53,173,75,.26); }
.admin-confirm-actions button:focus-visible { outline: 3px solid rgba(53,173,75,.3); outline-offset: 3px; }
@media (max-width: 520px) {
  .admin-confirm-overlay { padding: 16px; }
  .admin-confirm-card { padding: 24px 21px 21px; border-radius: 21px; }
  .admin-confirm-card h2 { font-size: 22px; }
  .admin-confirm-actions { flex-direction: column-reverse; }
  .admin-confirm-actions button { width: 100%; }
}
@keyframes admin-confirm-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes admin-confirm-rise { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* Dedicated client hub: shortcuts, payment options and account support. */
.clients-hub { display: grid; gap: 25px; padding-block: clamp(56px,7vw,92px); scroll-margin-top: 92px; }
.clients-intro { max-width: 760px; }
.clients-intro h2 { margin: 10px 0 9px; color: #12314f; font-size: clamp(36px,4.4vw,54px); line-height: 1.08; letter-spacing: -.055em; }
.clients-intro h2 span { color: #31a94a; }
.clients-intro p { max-width: 58ch; margin: 0; color: #6c8598; font-size: 16px; line-height: 1.7; }
.clients-shortcuts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.clients-shortcut { display: grid; grid-template-columns: 52px minmax(0,1fr) 24px; align-items: center; gap: 14px; min-height: 106px; padding: 17px 19px; border: 1px solid #dce8ed; border-radius: 20px; background: #fff; box-shadow: 0 8px 22px rgba(17,69,118,.045); transition: transform .2s,border-color .2s,box-shadow .2s,background .2s; }
.clients-shortcut:hover { transform: translateY(-2px); border-color: #a9d9ad; box-shadow: 0 12px 25px rgba(17,69,118,.09); }
.clients-shortcut-icon, .clients-bottom-link-icon { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid #d8eaf1; border-radius: 16px; background: #edf7fb; color: #087db8; }
.clients-shortcut-icon svg, .clients-bottom-link-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.clients-shortcut-copy { display: grid; gap: 3px; min-width: 0; }
.clients-shortcut-copy small, .clients-bottom-link small { color: #368c49; font-size: 10px; font-weight: 800; letter-spacing: .09em; }
.clients-shortcut-copy strong { color: #163954; font-size: 17px; line-height: 1.35; }
.clients-shortcut-copy em { color: #748b9b; font-size: 13px; line-height: 1.45; font-style: normal; }
.clients-shortcut-arrow, .clients-bottom-link > i { color: #278a40; font-size: 21px; font-style: normal; transition: transform .2s; }
.clients-shortcut:hover .clients-shortcut-arrow, .clients-bottom-link:hover > i { transform: translate(2px,-2px); }
.clients-shortcut-primary { border-color: #cce7ce; background: #f3f9f1; }
.clients-shortcut-primary .clients-shortcut-icon { border-color: #c8e5ca; background: #e5f4e2; color: #288c3e; }
.clients-recharge-callout { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 16px; padding: 21px 24px; border: 1px solid #d8ead7; border-radius: 22px; background: linear-gradient(110deg,#f0f8ed,#fbfdfb); }
.clients-callout-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 17px; background: #e1f1de; color: #2c9a43; }
.clients-callout-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.clients-kicker { color: #358d47; font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.clients-recharge-callout h3 { margin: 3px 0; color: #143753; font-size: 20px; line-height: 1.35; }
.clients-inline-oxxo { display: inline-flex; width: 78px; height: 40px; align-items: center; justify-content: center; vertical-align: middle; margin: 0 2px; padding: 3px 6px; border: 1px solid #e8e3dc; border-radius: 8px; background: #fff; }
.clients-inline-oxxo img { display: block; width: 66px; height: 34px; object-fit: contain; }
.clients-recharge-callout p { margin: 0; color: #708899; font-size: 13px; }
.clients-pill-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 10px; padding: 0 20px; border-radius: 999px; background: #31ae49; color: #fff; font-size: 13px; font-weight: 800; white-space: nowrap; box-shadow: 0 7px 16px rgba(49,174,73,.18); transition: transform .18s,background .18s; }
.clients-pill-button:hover { transform: translateY(-1px); background: #278e3d; }
.clients-payments { display: grid; gap: 16px; padding-top: 8px; }
.clients-section-heading h3 { max-width: 780px; margin: 7px 0 5px; color: #143753; font-size: clamp(23px,3vw,31px); line-height: 1.25; letter-spacing: -.035em; }
.clients-section-heading p { margin: 0; color: #748b9c; font-size: 14px; }
.clients-bank-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 13px; }
.clients-bank-card { min-width: 0; padding: 20px; border: 1px solid #dce8ed; border-radius: 20px; background: #fff; box-shadow: 0 8px 22px rgba(17,69,118,.045); }
.clients-bank-transfer { border-color: #cbe5cc; background: linear-gradient(155deg,#fff 45%,#f6fbf5); }
.clients-bank-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 88px; padding-bottom: 14px; border-bottom: 1px solid #eaf0f2; }
.clients-bank-icon { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: #edf7fb; color: #087db8; }
.clients-bank-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.clients-bank-heading > div { min-width: 0; }
.clients-bank-heading small { display: block; color: #71899a; font-size: 13px; font-weight: 800; letter-spacing: .055em; }
.clients-bank-heading h4 { margin: 2px 0 0; color: #143753; font-size: 20px; line-height: 1.2; }
.clients-bank-logo { display: block; width: 220px; max-width: min(56vw,220px); height: 48px; margin-top: 7px; padding: 4px 9px; border-radius: 8px; background: #fff; object-fit: contain; object-position: left center; }
.clients-bank-logo-santander { width: 205px; height: 58px; padding: 0; border-radius: 0; background: transparent; }
.clients-bank-tag { margin-left: auto; padding: 8px 12px; border-radius: 999px; background: #edf7eb; color: #348649; font-size: 12px; font-weight: 800; white-space: nowrap; }
.clients-bank-data { display: grid; gap: 0; }
.clients-bank-data > div, .clients-balance-data > div { position: relative; display: grid; gap: 5px; padding: 14px 60px 14px 0; border-bottom: 1px solid #edf2f4; }
.clients-bank-data > div:last-child { border-bottom: 0; }
.clients-bank-data > div > span, .clients-balance-data > div > span { color: #718697; font-size: 13px; }
.clients-bank-data strong, .clients-balance-data strong { color: #183f5d; font-size: 18px; line-height: 1.45; letter-spacing: .015em; overflow-wrap: anywhere; }
.clients-bank-data button, .clients-balance-data button { position: absolute; right: 0; bottom: 15px; padding: 7px 12px; border: 1px solid #d7e6e8; border-radius: 999px; background: #f7faf9; color: #347f48; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; transition: background .18s,border-color .18s; }
.clients-bank-data button:hover, .clients-balance-data button:hover { border-color: #a9d5ac; background: #eff8ed; }
.clients-bank-data button.is-copied, .clients-balance-data button.is-copied { border-color: #b9dcbc; background: #eaf6e8; color: #257c38; }
.clients-bank-data button:focus-visible, .clients-balance-data button:focus-visible { outline: 3px solid rgba(49,174,73,.25); outline-offset: 2px; }
.clients-payment-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.clients-payment-badges span { padding: 7px 11px; border: 1px solid #e2ebee; border-radius: 999px; background: #f7fafb; color: #47677f; font-size: 12px; font-weight: 750; }
.clients-bank-note { margin: 8px 0 0; color: #748b9c; font-size: 12px; }
.clients-store-list { display: grid; gap: 8px; margin-top: 14px; }
.clients-store-list > span { color: #7a91a1; font-size: 13px; }
.clients-store-list > div { display: flex; flex-wrap: wrap; gap: 6px; }
.clients-store-list b { padding: 8px 10px; border: 1px solid #e4edef; border-radius: 8px; background: #fbfcfc; color: #4c697e; font-size: 12px; }
.clients-store-logo { display: inline-flex; min-width: 104px; height: 58px; align-items: center; justify-content: center; padding: 4px 8px; border: 1px solid #e4edef; border-radius: 10px; background: #fff; }
.clients-store-logo img { display: block; width: 88px; height: 48px; object-fit: contain; }
.clients-bank-card-santander { border-color: #f0c6ca; background: #fff; box-shadow: 0 10px 24px rgba(17,69,118,.055); }
.clients-bank-card-santander .clients-bank-heading { border-bottom-color: #f1e2e4; }
.clients-bank-card-santander .clients-bank-heading small { color: #71899a; }
.clients-bank-card-santander .clients-bank-tag { border: 1px solid #f3d4d7; background: #fff3f4; color: #c90016; }
.clients-bank-card-santander .clients-bank-data > div { margin-top: 9px; padding: 12px 66px 12px 14px; border: 1px solid #e7edf0; border-radius: 12px; background: #f8fafb; }
.clients-bank-card-santander .clients-bank-data > div > span { color: #6f8291; }
.clients-bank-card-santander .clients-bank-data strong { color: #153954; }
.clients-bank-card-santander .clients-bank-data button { right: 12px; bottom: 13px; border-color: #cce4e7; background: #f4f8f8; color: #287b41; }
.clients-bank-card-santander .clients-store-list { padding: 12px; border: 1px solid #e7edf0; border-radius: 12px; background: #f8fafb; }
.clients-bank-card-santander .clients-store-list > span { color: #6f8291; }
.clients-bank-card-santander .clients-store-list b { background: #f9fbfb; }
.clients-mobile-balance.clients-mobile-balance-santander { grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr); gap: 22px 28px; border-color: #dce8ed; background: #fff; box-shadow: 0 10px 26px rgba(17,69,118,.055); }
.clients-mobile-balance-santander .clients-kicker { color: #358d47; }
.clients-mobile-balance-santander .clients-mobile-balance-copy p { color: #6c8598; }
.clients-mobile-balance-santander .clients-balance-bank-logo { width: 230px; height: 70px; margin-top: 17px; padding: 0; background: transparent; object-fit: contain; object-position: left center; }
.clients-mobile-balance-santander .clients-balance-data > div { display: grid; grid-template-columns: minmax(0,1fr); gap: 6px; margin-top: 6px; padding: 14px 15px; border: 1px solid #e1eaee; border-radius: 12px; background: #f8fafb; }
.clients-mobile-balance-santander .clients-balance-data > div > span { color: #6f8291; }
.clients-mobile-balance-santander .clients-balance-data strong { color: #153954; font-size: 16px; white-space: nowrap; letter-spacing: 0; }
.clients-mobile-balance-santander .clients-balance-data button { position: static; justify-self: end; margin-top: 1px; }
.clients-mobile-balance-santander .clients-balance-recipient { padding: 14px; border: 1px solid #e1eaee; border-radius: 12px; background: #f8fafb; }
.clients-mobile-balance-santander .clients-balance-recipient span { color: #6f8291; }
.clients-mobile-balance-santander .clients-balance-recipient strong { color: #153954; }
.clients-mobile-balance { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px 30px; padding: 24px; border: 1px solid #d6e9d5; border-radius: 22px; background: #f0f8ed; }
.clients-mobile-balance h3 { margin: 5px 0; color: #143753; font-size: 24px; line-height: 1.3; }
.clients-mobile-balance-copy p { margin: 0; color: #6c8598; font-size: 14px; }
.clients-balance-bank-logo { display: block; width: 122px; height: 34px; margin-top: 12px; object-fit: contain; object-position: left center; }
.clients-balance-data { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.clients-balance-data > div { padding-right: 58px; }
.clients-balance-data button { right: 0; }
.clients-balance-recipient { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 9px; padding-top: 15px; border-top: 1px solid #d9e8d7; color: #668095; font-size: 12px; }
.clients-balance-recipient strong { margin-right: 18px; color: #244b66; font-size: 13px; }
.clients-proof-note { display: flex; align-items: flex-start; gap: 11px; padding: 15px 18px; border: 1px solid #dce9ed; border-radius: 16px; background: #f7fafb; }
.clients-proof-note svg { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; fill: none; stroke: #2fa247; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.clients-proof-note p { margin: 0; color: #617c8f; font-size: 13px; line-height: 1.6; }
.clients-proof-note a { color: #25883c; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.clients-proof-note strong { color: #224b67; }
.clients-bottom-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; padding-top: 7px; }
.clients-bottom-link { display: grid; grid-template-columns: 44px minmax(0,1fr) 22px; align-items: center; gap: 12px; min-height: 80px; padding: 13px 16px; border: 1px solid #dce8ed; border-radius: 17px; background: #fff; transition: transform .18s,border-color .18s,box-shadow .18s; }
.clients-bottom-link:hover { transform: translateY(-2px); border-color: #b7dcb9; box-shadow: 0 9px 20px rgba(17,69,118,.07); }
.clients-bottom-link-icon { width: 42px; height: 42px; border-radius: 13px; }
.clients-bottom-link-icon img { width: 24px; height: 24px; object-fit: contain; }
.clients-bottom-link > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.clients-bottom-link strong { color: #173d5b; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.clients-whatsapp-link .clients-bottom-link-icon { border-color: #d2e9d4; background: #eff8ed; }
.clients-update-note { margin: -10px 0 0; color: #8295a2; font-size: 11px; line-height: 1.5; text-align: center; }
.clients-page .main-nav a[aria-current="page"] { color: #007cc0; }
.clients-page .main-nav a[aria-current="page"]::after { width: 100%; }
.clients-page .clients-header-contact { min-height: 42px; padding: 0 16px; font-size: 12px; white-space: nowrap; }
.clients-page .account-trigger { min-height: 42px; }
.clients-page .cart-button { min-height: 42px; }
@media (max-width: 720px) {
  .clients-page .clients-header-contact { display: none; }
}
@media (max-width: 980px) {
  .clients-bank-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .clients-mobile-balance, .clients-mobile-balance.clients-mobile-balance-santander { grid-template-columns: minmax(0,1fr); }
  .clients-balance-data { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .clients-hub { gap: 18px; padding-block: 48px 58px; }
  .clients-intro h2 { font-size: clamp(34px,9vw,44px); }
  .clients-intro p { font-size: 15px; }
  .clients-shortcuts, .clients-bank-grid, .clients-bottom-links { grid-template-columns: minmax(0,1fr); }
  .clients-shortcut { min-height: 94px; grid-template-columns: 46px minmax(0,1fr) 20px; gap: 11px; padding: 14px; border-radius: 17px; }
  .clients-shortcut-icon { width: 44px; height: 44px; border-radius: 14px; }
  .clients-shortcut-copy small { font-size: 9px; }
  .clients-shortcut-copy strong { font-size: 15px; }
  .clients-shortcut-copy em { font-size: 12px; }
  .clients-recharge-callout { grid-template-columns: 46px minmax(0,1fr); gap: 12px; padding: 17px; border-radius: 18px; }
  .clients-callout-icon { width: 44px; height: 44px; border-radius: 14px; }
  .clients-recharge-callout h3 { font-size: 17px; }
  .clients-inline-oxxo { width: 68px; height: 35px; }
  .clients-inline-oxxo img { width: 58px; height: 29px; }
  .clients-recharge-callout p { font-size: 12px; }
  .clients-pill-button { grid-column: 1 / -1; width: 100%; min-height: 45px; }
  .clients-section-heading h3 { font-size: 23px; }
  .clients-section-heading p { font-size: 13px; }
  .clients-bank-card { padding: 17px; border-radius: 18px; }
  .clients-bank-heading small { font-size: 12px; }
  .clients-bank-data strong, .clients-balance-data strong { font-size: 17px; }
  .clients-mobile-balance { gap: 14px; padding: 19px 16px; border-radius: 19px; }
  .clients-mobile-balance h3 { font-size: 21px; }
  .clients-balance-data { grid-template-columns: minmax(0,1fr); }
  .clients-balance-recipient { gap: 5px 8px; }
  .clients-balance-recipient strong { margin-right: 0; }
  .clients-proof-note { padding: 13px; }
  .clients-proof-note p { font-size: 12px; }
  .clients-bottom-link { min-height: 72px; }
  .clients-update-note { margin-top: -5px; text-align: left; }
}
@media (max-width: 380px) {
  .clients-page .clients-header-contact { min-height: 40px; padding-inline: 10px; font-size: 10px; }
  .clients-page .header-actions { gap: 4px; }
}

.header-logout { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; padding: 0 13px; border: 1px solid #cfe6d0; border-radius: 999px; background: #eff8ed; color: #27883d; font: inherit; font-size: 12px; font-weight: 800; white-space: nowrap; cursor: pointer; transition: background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s; }
.header-logout[hidden] { display: none !important; }
.header-logout svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.header-logout:hover { transform: translateY(-1px); border-color: #35ad4b; background: #35ad4b; color: #fff; box-shadow: 0 6px 14px rgba(53,173,75,.18); }
.header-logout:focus-visible { outline: 3px solid rgba(53,173,75,.3); outline-offset: 3px; }
.header-logout-compact { display: none; }
.admin-topbar-actions { display: flex; align-items: center; gap: 10px; }
.admin-top-logout { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0 16px; border: 1px solid #cfe6d0; border-radius: 999px; background: #eff8ed; color: #27883d; font: inherit; font-size: 13px; font-weight: 800; white-space: nowrap; cursor: pointer; transition: background .18s,border-color .18s,color .18s,transform .18s; }
.admin-top-logout:hover { transform: translateY(-1px); border-color: #35ad4b; background: #35ad4b; color: #fff; }
.admin-top-logout:focus-visible { outline: 3px solid rgba(53,173,75,.3); outline-offset: 3px; }
@media (max-width: 480px) {
  .account-trigger > span, .cart-button > span { display: none; }
  .header-logout { min-width: 58px; min-height: 42px; padding-inline: 9px; gap: 5px; font-size: 12px; }
  .header-logout-wide { display: none; }
  .header-logout-compact { display: inline; }
  .admin-topbar-actions { gap: 6px; }
  .admin-top-logout { min-height: 40px; padding-inline: 10px; font-size: 11px; }
}
@media (max-width: 720px) {
  .admin-top-logout { display: none; }
}

/* Account history: keep the empty state and sign-out action within the brand palette. */
.account-modal .account-orders .form-message {
  min-height: 0; margin: 9px 0 13px; padding: 12px 14px; border: 1px solid #e2ebef;
  border-radius: 12px; background: #f5f8f9; color: #637b8e; font-size: 13px;
  line-height: 1.55; text-align: left;
}
.account-modal #accountLogout {
  display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px;
  margin: 17px 0 0 !important; padding: 0 19px; border: 1px solid #cfe6d0; border-radius: 999px;
  background: #eff8ed; color: #277d35; font-size: 13px; font-weight: 800;
  text-decoration: none; cursor: pointer; transition: color .2s, background .2s, border-color .2s, transform .2s;
}
.account-modal #accountLogout span { color: #007cc0; font-size: 15px; }
.account-modal #accountLogout:hover { border-color: #38b24a; background: #38b24a; color: #fff; transform: translateY(-1px); }

/* Customer portal sections connected to the local operations records. */
.account-portal-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.account-portal-summary article { display: grid; gap: 5px; min-width: 0; padding: 15px; border: 1px solid #e1ebef; border-radius: 15px; background: linear-gradient(145deg,#fff,#f8fbfc); }
.account-portal-summary article > span { color: #718a9b; font-size: 11px; font-weight: 700; }
.account-portal-summary strong { color: #153b5a; font-size: 20px; line-height: 1.2; letter-spacing: -.035em; overflow-wrap: anywhere; }
.account-portal-summary small { color: #8b9eaa; font-size: 10px; line-height: 1.4; }
.account-profile-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.account-profile-tabs button { min-width: 0; padding: 7px 10px; white-space: nowrap; }
.account-service-list { display: grid; gap: 10px; }
.account-service-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 0; padding: 16px 18px; border: 1px solid #e1ebef; border-radius: 15px; background: #fff; }
.account-service-row > div:first-child { display: grid; gap: 4px; min-width: 0; }
.account-service-row > div:first-child > strong { color: #183d5b; font-size: 14px; overflow-wrap: anywhere; }
.account-service-row > div:first-child > p { margin: 0; color: #71899a; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.account-service-row .account-profile-kicker { margin: 0; font-size: 9px; }
.account-service-row-side { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; }
.account-service-status { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 4px 11px; border-radius: 999px; background: #edf7ed; color: #26863d; font-size: 11px; font-weight: 800; }
.account-service-status--pending { background: #fff6e5; color: #a66e0d; }
.account-service-status--attention { background: #fff0ef; color: #b94a42; }
.account-service-status--quiet { background: #f0f4f6; color: #6c8190; }
.account-record-download { min-height: 36px; padding: 0 13px; border: 1px solid #cfe5d0; border-radius: 999px; background: #f5faf4; color: #26863d; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; white-space: nowrap; }
.account-record-download:hover { border-color: #31ae49; background: #31ae49; color: #fff; }
.account-record-download:disabled { opacity: .6; cursor: wait; }
.account-portal-empty { display: grid; justify-items: start; gap: 6px; padding: 22px; border: 1px dashed #d6e6dc; border-radius: 15px; background: #fbfdfb; }
.account-portal-empty > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: #edf7ed; color: #31a94a; }
.account-portal-empty > strong { color: #254761; font-size: 13px; }
.account-portal-empty > p { max-width: 540px; margin: 0; color: #7d91a0; font-size: 12px; line-height: 1.55; }
.account-billing-note { padding: 13px 15px; border: 1px solid #f0dfb9; border-radius: 13px; background: #fffaf0; }
.account-billing-note strong { color: #8b641c; font-size: 12px; }
.account-billing-note p { margin: 4px 0 0; color: #836f4c; font-size: 11px; line-height: 1.55; }
.account-record-group-title { margin: 2px 0 -7px; color: #43647a; font-size: 12px; }
@media (max-width: 620px) {
  .account-portal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-profile-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-service-row { align-items: flex-start; flex-direction: column; gap: 11px; padding: 14px; }
  .account-service-row-side { width: 100%; justify-content: space-between; }
}
@media (max-width: 390px) {
  .account-portal-summary article { padding: 12px; }
  .account-portal-summary strong { font-size: 18px; }
  .account-profile-tabs button { white-space: normal; }
  .account-service-row-side { align-items: flex-start; flex-direction: column; }
}
.account-modal #accountLogout:hover span { color: #fff; }

/* Keep the plan category label clear of the GB badge in narrow cards. */
.product-card .product-heading-copy .product-type { max-width: 100%; font-size: 9px; letter-spacing: .06em; white-space: nowrap; }

/* Empty cart: replace the browser-default button and placeholder glyph. */
.cart-empty .empty-bag { display: grid; place-items: center; border: 1px solid #d7ecd9; background: #eff8ed; color: #278d3e; }
.cart-empty .empty-bag svg { display: block; width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cart-empty h3 { margin: 0 0 5px; font-size: 20px; letter-spacing: -.025em; }
.cart-empty p { margin: 0 0 19px; color: #6e8798; font-size: 14px; }
.cart-empty .text-link {
  display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 10px;
  padding: 0 20px; border: 0; border-radius: 999px; background: #38b24a; color: #fff;
  font-size: 13px; font-weight: 800; text-decoration: none; cursor: pointer;
  box-shadow: 0 8px 18px rgba(56,178,74,.18); transition: background .2s, transform .2s, box-shadow .2s;
}
.cart-empty .text-link span { color: #fff; font-size: 15px; }
.cart-empty .text-link:hover { background: #278d3e; transform: translateY(-2px); box-shadow: 0 11px 22px rgba(56,178,74,.24); }

/* Give plan details more presence and use the card width with a clear rhythm. */
.product-card.product-card--tone-blue, .product-card.product-card--tone-green { padding: 28px 26px 24px; }
.product-card.product-card--tone-blue .product-icon, .product-card.product-card--tone-green .product-icon { width: 64px; height: 64px; flex-basis: 64px; border-radius: 20px; }
.product-card .product-icon svg { width: 31px; height: 31px; }
.product-card .product-heading { width: min(100%, 292px); gap: 17px; margin: 8px auto 12px; }
.product-card .product-heading-copy .product-type { font-size: 10px; }
.product-card .product-heading-copy h3 { font-size: 24px; }
.product-card .product-heading-copy .product-sub { font-size: 13px; }
.product-card .product-price-panel { margin: 4px 0 0; padding: 10px 0 12px; }
.product-card .price-caption { font-size: 10px; }
.product-card .product-price { gap: 7px; margin-top: 1px; }
.product-card .product-price strong { font-size: clamp(34px, 2.8vw, 40px); }
.product-card .product-price span { font-size: 12px; }
.product-card .product-features { width: 100%; max-width: 292px; gap: 8px; margin: 14px auto 16px; font-size: 14px; line-height: 1.45; }
.product-card .product-features li { min-height: 24px; gap: 9px; padding: 2px 8px; border-bottom: 1px solid color-mix(in srgb,var(--package-primary),white 90%); }
.product-card .product-features li::before { flex: 0 0 16px; font-size: 15px; }
.product-card .product-add { min-width: 218px; min-height: 50px; padding-inline: 25px; font-size: 14px; }
@media (max-width: 720px) {
  .product-card.product-card--tone-blue, .product-card.product-card--tone-green { padding: 21px 18px 18px; }
  .product-card .product-heading { width: min(100%, 292px); }
  .product-card .product-heading-copy h3 { font-size: 21px; }
  .product-card .product-price strong { font-size: clamp(31px, 7vw, 38px); }
  .product-card .product-features { font-size: 13px; }
}

/* Responsive layout pass: tablet navigation and section proportions. */
@media (min-width: 721px) and (max-width: 1050px) {
  .connection-paths, .services, .plans, .coverage, .contact { padding-block: clamp(58px,7vw,76px); }
  .section-heading > div, .section-heading > p { min-width: 0; }
  .site-header { padding-inline: 28px; gap: 14px; }
  .brand-logo { width: 96px; }
  .main-nav { gap: 17px; margin-left: 8px; }
  .header-actions { gap: 8px; }
  .hero { grid-template-columns: minmax(0,1fr) minmax(0,.92fr); min-height: 590px; padding: 32px 30px 76px; gap: 8px; }
  .hero h1 { font-size: clamp(50px,6.6vw,70px); }
  .hero-copy > p { max-width: 440px; font-size: 16px; }
  .hero-art { min-width: 0; width: 100%; transform: scale(.82); }
  .section-heading { gap: 28px; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-card:last-child { grid-column: 1 / -1; }
  .service-card { min-height: 310px; }
  .coverage { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 28px; }
  .coverage-map { min-width: 0; min-height: 340px; }
  .coverage-footprint { grid-template-columns: minmax(0,1fr); }
  .coverage-footprint figcaption { padding: 4px 8px 8px; text-align: center; }
  .contact-card { grid-template-columns: minmax(0,1fr) minmax(210px,.75fr); gap: 18px 24px; }
  .contact-card > div:first-child { grid-column: 1; grid-row: 1; }
  .contact-support-art { grid-column: 2; grid-row: 1; }
  .contact-card .whatsapp-link { grid-column: 1 / -1; justify-self: center; width: min(100%,460px); }
  .footer-main { grid-template-columns: 1.4fr 1fr 1fr; gap: 28px 24px; }
  .footer-brand { grid-row: span 2; }
}

/* Collapse the crowded desktop header into the existing accessible menu on tablets. */
@media (max-width: 900px) and (min-width: 721px) {
  .site-header { height: 72px; }
  .site-header.scrolled { height: 66px; }
  .menu-toggle { display: inline-flex; position: static; left: auto; order: 1; margin-left: auto; transform: none; }
  .main-nav { position: absolute; display: none; top: calc(100% + 7px); left: 18px; right: 18px; z-index: 5; flex-direction: column; gap: 0; margin: 0; padding: 8px; border: 1px solid #e2ebef; border-radius: 16px; background: #fff; box-shadow: 0 16px 32px rgba(17,54,82,.14); }
  .main-nav.open { display: flex; }
  .main-nav a { padding: 12px 14px; }
}

/* Mobile layout: prevent squeezed two-column cards and give controls touch room. */
@media (max-width: 720px) {
  .section-shell { padding-inline: 18px; }
  .site-header { display: flex; height: 64px; padding-inline: 16px; gap: 10px; }
  .site-header.scrolled { height: 60px; }
  .brand { order: 0; flex: 0 0 auto; }
  .brand-logo { width: 88px; max-width: 27vw; }
  .menu-toggle { position: static; left: auto; order: 1; margin-left: auto; transform: none; }
  .header-actions { order: 2; gap: 6px; margin-left: 0; }
  .main-nav { top: calc(100% + 5px); left: 12px; right: 12px; border: 1px solid #e2ebef; border-radius: 16px; }
  .main-nav a { min-height: 46px; display: flex; align-items: center; }
  .hero { display: flex; min-height: 0; flex-direction: column; align-items: stretch; gap: 8px; padding: 36px 18px 82px; }
  .hero-copy { width: 100%; padding: 0; }
  .hero h1 { max-width: 12ch; margin: 14px 0 14px; font-size: clamp(42px,11.5vw,62px); line-height: 1.02; }
  .hero-copy > p { max-width: 44ch; font-size: 15px; line-height: 1.65; }
  .hero-actions { flex-wrap: wrap; gap: 12px 17px; margin-top: 20px; }
  .hero-actions .button { min-height: 46px; }
  .hero-proof { margin-top: 20px; }
  .hero-art { width: 100%; max-width: 500px; height: clamp(292px,82vw,370px); min-height: 0; align-self: center; margin-top: 10px; transform: none; }
  .hero-bottom { right: 18px; bottom: 15px; left: 18px; }
  .section-heading { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; margin-bottom: 23px; }
  .section-heading h2, .coverage h2, .client-copy h2 { font-size: clamp(32px,8.5vw,42px); line-height: 1.08; }
  .section-heading > p { max-width: 50ch; margin: 0; font-size: 14px; }
  .connection-paths { padding: 52px 18px; }
  .connection-heading { margin-bottom: 20px; }
  .connection-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .connection-card, .connection-card:last-child { grid-column: auto; min-height: 250px; }
  .services, .plans, .coverage, .contact { padding-block: 54px; }
  .service-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .service-card, .service-card:last-child { grid-column: auto; min-height: 290px; }
  .service-card { padding: 19px; }
  .service-card > div:not(.service-top) { max-width: 61%; }
  .service-card p { max-width: 30ch; font-size: 13px; line-height: 1.55; }
  .service-card .service-image { right: 8px; bottom: 46px; width: 39%; height: 125px; }
  .service-card-mobile .iphone-mockup { top: 27px; right: 12px; width: 112px; height: 220px; }
  .service-link { max-width: 65%; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
  .catalog-toolbar { align-items: center; flex-wrap: wrap; gap: 12px; }
  .catalog-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .catalog-tabs::-webkit-scrollbar { display: none; }
  .filter-tab { min-height: 42px; }
  .plans-note { grid-template-columns: 34px minmax(0,1fr); gap: 8px; padding: 14px; }
  .plans-note-art { grid-column: 1 / -1; width: 100%; height: 110px; }
  .plans-note p { margin: 0; font-size: 13px; line-height: 1.55; }
  .plans-cta { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; min-height: 0; padding: 24px 20px; }
  .plans-cta h3 { font-size: clamp(23px,6vw,30px); }
  .plans-cta .button { width: fit-content; max-width: 100%; margin: 0; }
  .cta-orb { right: -120px; top: -140px; }
  .coverage { grid-template-columns: minmax(0,1fr); gap: 23px; }
  .coverage-copy p { max-width: 48ch; font-size: 15px; }
  .coverage-copy .button-primary { min-height: 46px; }
  .coverage-map { width: 100%; min-width: 0; height: auto; min-height: 300px; padding: 10px; }
  .coverage-network { width: 100%; height: auto; min-height: 220px; }
  .coverage-list { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .coverage-list p { padding: 0 0 12px 16px; line-height: 1.6; }
  .coverage-footprint { grid-template-columns: minmax(0,1fr); gap: 8px; padding: 10px; }
  .coverage-map-ui { min-height: 150px; }
  .client-banner { grid-template-columns: minmax(0,1fr); grid-template-rows: auto; gap: 18px; padding: 25px 20px; border-radius: 22px; }
  .client-copy, .client-portal-visual, .client-links { grid-column: 1; grid-row: auto; min-width: 0; }
  .client-copy p { max-width: 44ch; font-size: 14px; }
  .client-portal-visual { height: clamp(230px,64vw,280px); padding: 12px; }
  .client-scene-view { padding: 12px 10px 35px; }
  .client-illustration { width: min(100%,420px); height: auto; max-height: 100%; }
  .client-links { gap: 6px; }
  .client-links [role="tab"] { min-height: 58px; padding: 10px 12px; }
  .contact-card { grid-template-columns: minmax(0,1fr); gap: 13px; padding: 24px 18px; border-radius: 22px; }
  .contact-card > div:first-child, .contact-support-art, .contact-card .whatsapp-link { grid-column: 1; grid-row: auto; min-width: 0; }
  .contact-card h2 { font-size: clamp(29px,8vw,36px); }
  .contact-support-art { height: 132px; }
  .contact-card .whatsapp-link { width: 100%; min-height: 64px; margin-top: 0; padding: 10px 13px; }
  .site-footer { padding: 38px 18px 0; }
  .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 18px; }
  .footer-brand { grid-column: 1 / -1; grid-row: auto; }
  .footer-address { grid-column: 1 / -1; }
  .footer-bottom { grid-template-columns: minmax(0,1fr); gap: 8px; text-align: left; }
}

@media (max-width: 600px) {
  .product-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .product-card.product-card--tone-blue, .product-card.product-card--tone-green { width: min(100%,440px); min-height: 380px; justify-self: center; padding: 25px 22px 22px; }
  .product-card .product-heading { width: min(100%,320px); }
  .product-card .product-features { max-width: 320px; }
  .product-card .product-add { min-width: min(230px,100%); }
  .catalog-toolbar { align-items: flex-start; }
  .catalog-note { align-self: flex-end; }
  .client-portal-visual { height: 238px; }
  .contact-card .whatsapp-link { gap: 10px; }
  .contact-card .whatsapp-link strong { font-size: 15px; }
}

@media (max-width: 390px) {
  .site-header { padding-inline: 12px; gap: 7px; }
  .brand-logo { width: 78px; max-width: 25vw; }
  .header-actions { gap: 4px; }
  .account-trigger span, .cart-button > span { display: none; }
  .menu-toggle, .account-trigger, .cart-button { min-width: 42px; min-height: 42px; }
  .account-trigger, .cart-button { width: 42px; height: 42px; justify-content: center; padding: 0; }
  .cart-button { position: relative; }
  .cart-button b { position: absolute; top: -5px; right: -3px; }
  .hero { padding-inline: 15px; }
  .hero h1 { font-size: clamp(39px,11vw,46px); }
  .hero-art { height: 286px; }
  .connection-paths, .services, .plans, .coverage, .contact { padding-inline: 15px; }
  .connection-card, .connection-card:last-child { grid-template-columns: minmax(0,1fr) minmax(88px,.65fr); min-height: 246px; padding: 17px; column-gap: 5px; }
  .connection-card-copy { width: 100%; max-width: none; padding-top: 8px; }
  .connection-card-copy strong { font-size: 17px; }
  .connection-card-copy small { font-size: 11px; }
  .connection-art { right: 2px; width: 100%; height: 108px; }
  .service-card, .service-card:last-child { min-height: 275px; padding: 17px; }
  .service-card > div:not(.service-top) { max-width: 62%; }
  .service-card h3 { font-size: 20px; }
  .service-card p { font-size: 12px; }
  .service-card .service-image { width: 36%; height: 112px; right: 4px; }
  .client-banner { padding: 22px 16px; }
  .client-portal-visual { height: 218px; }
  .client-links [role="tab"] { min-height: 56px; }
}
