/* =========================================================
   POWERSENSE | Shared public composition and components
   Foundation: assets/public-foundation.css.
   Shared controls, editorial rules, layout helpers and named FRONT compositions.
   ========================================================= */


/* Public tokens and semantic typography are authored in design/public.css. */


/* Reusable fractional star meter for verified public review metrics. */
.ps-rating-stars {
  --ps-rating-fill: 0%;
  position: relative;
  display: inline-block;
  overflow: hidden;
  color: currentColor;
  line-height: var(--ps-ui-leading-solid);
  letter-spacing: var(--ps-ui-tracking-label);
  white-space: nowrap;
  vertical-align: -.05em;
}

.ps-rating-stars__base {
  opacity: .28;
}

.ps-rating-stars__fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--ps-rating-fill);
  overflow: hidden;
  color: currentColor;
  white-space: nowrap;
}

/* Partner brand registry output */
.ps-partner-brands,
.ps-partner-brands * {
  box-sizing: border-box;
}

.ps-partner-brands {
  
  width: min(var(--ps-layout-max), calc(100% - 2 * var(--ps-layout-gutter)));
  margin-inline: auto;

  max-width: none;
  /* Logo-group rhythm is internal; page edges have one common owner. */
  padding: clamp(34px, 5vw, 64px) 0;
  color: var(--ps-ink, var(--ps-ui-ink));
}

.ps-partner-brands__title {
  max-width: 720px;
  margin: 0 0 clamp(22px, 3vw, 34px);
  color: var(--ps-ink-strong, var(--ps-ui-ink));
  font-size: var(--ps-ui-h2);
  font-weight: var(--ps-font-weight-heading);
  line-height: var(--ps-ui-leading-heading);
  letter-spacing: var(--ps-ui-tracking-body);
}

.ps-partner-brands__groups {
  display: grid;
  gap: clamp(28px, 4vw, 44px);
}

.ps-partner-brands__group {
  min-width: 0;
  padding-top: clamp(18px, 2.5vw, 26px);
  border-top: 1px solid var(--ps-hairline-blue);
}

.ps-partner-brands__group-title {
  margin: 0 0 16px;
  color: var(--ps-ink-strong, var(--ps-ui-ink));
  font-size: var(--ps-ui-component-title);
  font-weight: var(--ps-ui-heading-weight);
  line-height: var(--ps-ui-leading-card);
}

.ps-partner-brands__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}

.ps-partner-brands__item {

  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 104px;
  padding: 18px;
  color: inherit;
  text-decoration: none;
}


.ps-partner-brands__logo {
  display: block;
  width: auto;
  max-width: min(100%, 140px);
  height: auto;
  max-height: 58px;
  object-fit: contain;
}

@media (max-width: 560px) {
  .ps-partner-brands__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ps-partner-brands__item {
    min-height: 90px;
    padding: 14px;
  }

  .ps-partner-brands__logo {
    max-width: min(100%, 112px);
    max-height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ps-partner-brands__item {
    transition: none;
  }
}

.ps-landing,
.ps-home-hero,
.ps-contract-portfolio,
.ps-erp-offer-front,
.ps-erp-offerpop.ps-erp-offerpop--v3 {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.ps-landing *,
.ps-landing *::before,
.ps-landing *::after,
.ps-home-hero *,
.ps-home-hero *::before,
.ps-home-hero *::after,
.ps-brand-proof,
.ps-brand-proof *,
.ps-brand-proof *::before,
.ps-brand-proof *::after {
  box-sizing: border-box;
}

.ps-landing a,
.ps-home-hero a {
  color: inherit;
  text-decoration: none;
}

.ps-landing img,
.ps-home-hero img {
  max-width: 100%;
  height: auto;
}


/* =========================================================
   02A. PUBLIC BRAND FINISH
   A low-specificity finish for every frontend surface, including plain
   WordPress content that does not render inside a managed landing component.
   ========================================================= */

html {
  color-scheme: light;
  scrollbar-gutter: stable;
}


body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content,
  .term-description,
  .archive-description
) :where(p, li) {
  text-wrap: pretty;
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > :where(h1, h2, h3) {
  max-width: 24ch;
  color: var(--ps-ink-strong);
  letter-spacing: var(--ps-heading-tracking);
  line-height: var(--ps-leading-heading);
}

body.ps-public-ui :where(.entry-content, .page-content, .wp-block-post-content) > h1 {
  font-weight: var(--ps-ui-display-weight);
}

body.ps-public-ui :where(.entry-content, .page-content, .wp-block-post-content) > :where(h2, h3) {
  font-weight: var(--ps-ui-heading-weight);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > :where(h2, h3):not(:first-child) {
  margin-top: clamp(36px, 5vw, 64px);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > :where(p, ul, ol) {
  max-width: var(--ps-layout-reading);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) :where(strong, b) {
  color: var(--ps-ink-strong);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) :where(a:not([class])) {
  color: var(--ps-link-color, var(--ps-ui-brand));
  text-decoration-color: currentColor;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-skip-ink: auto;
  overflow-wrap: anywhere;
  transition:
    color 160ms var(--ps-ease),
    text-decoration-color 160ms var(--ps-ease);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) :where(a:not([class])):hover {
  color: var(--ps-link-hover-color, var(--ps-ui-brand-hover));
  text-decoration-color: currentColor;
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > blockquote {
  margin-inline: 0;
  padding: var(--ps-ui-note-padding);
  border: 0;
  border-left: var(--ps-ui-note-line-width) solid var(--ps-ui-brand);
  border-radius: var(--ps-ui-note-radius);
  background: var(--ps-ui-note-bg);
  color: var(--ps-ui-muted);
  font-size: var(--ps-ui-note-size);
}

body.ps-public-ui :where(.entry-content, .page-content, .wp-block-post-content) > blockquote :where(p, li) {
  font-size: var(--ps-ui-note-size);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) :where(ul, ol) li::marker {
  color: rgba(8, 0, 99, 0.68);
  font-weight: var(--ps-font-weight-strong);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > :where(figure, .wp-caption) {
  margin-block: clamp(28px, 4vw, 48px);
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) :where(figcaption, .wp-element-caption, .wp-caption-text) {
  max-width: 68ch;
  margin: 10px auto 0;
  color: var(--ps-ink-faint);
  font-size: var(--ps-type-caption);
  line-height: var(--ps-ui-leading-compact);
  text-align: center;
  text-wrap: pretty;
}

body.ps-public-ui :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > hr {
  width: 100%;
  height: 1px;
  margin: clamp(40px, 6vw, 72px) 0;
  border: 0;
  background: var(--ps-hairline);
}

body.ps-public-ui :where(
  .price,
  .amount,
  .woocommerce-Price-amount,
  .ps-woo-card-fit__value,
  .ps-woo-card-price__value,
  .ps-product-projection__metric strong,
  .ps-product-solar-chart__value,
  .ps-contract-portfolio__stat strong,
  .ps-contract-portfolio-card__metrics dd,
  time
) {
  font-variant-numeric: lining-nums tabular-nums;
}

body.ps-public-ui :where(input[type="checkbox"], input[type="radio"], progress) {
  accent-color: var(--ps-brand-blue);
}

body.ps-public-ui :where(input:not(:where([type="checkbox"], [type="radio"], [type="range"], [type="button"], [type="submit"], [type="reset"], [type="hidden"], [type="file"], [type="color"], [type="image"])), select, textarea) {
  caret-color: var(--ps-brand-blue);
  font: var(--ps-ui-body-weight) var(--ps-ui-body)/var(--ps-ui-leading-control) var(--ps-ui-font);
}

body.ps-public-ui :where(input, textarea)::placeholder {
  color: var(--ps-ink-soft);
  opacity: 1;
}

body.ps-public-ui :where(input, textarea):-webkit-autofill {
  caret-color: var(--ps-brand-blue);
  -webkit-text-fill-color: var(--ps-ink);
}

body.ps-public-ui :where(input, textarea):autofill {
  caret-color: var(--ps-brand-blue);
  color: var(--ps-ink);
}

body.ps-public-ui textarea {
  resize: vertical;
}

body.ps-public-ui :where(button, input, select, textarea):disabled,
body.ps-public-ui :where([role="button"][aria-disabled="true"]) {
  cursor: not-allowed;
  opacity: var(--ps-ui-disabled-opacity);
}

body.ps-public-ui :where(a, button, input, select, textarea, summary) {
  -webkit-tap-highlight-color: rgba(8, 0, 99, 0.08);
}

body.ps-public-ui :where(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  .btn,
  .button,
  .psl-btn,
  .wp-element-button
) {
  touch-action: manipulation;
}

body.ps-public-ui :where(
  button,
  input[type="button"],
  input[type="submit"],
  input[type="reset"],
  [role="button"],
  .btn,
  .button,
  .psl-btn,
  .wp-element-button
):active:not(:disabled):not([aria-disabled="true"]) {
  transform: none;
}

@media (forced-colors: active) {
  body.ps-public-ui :where(input:not(:where([type="checkbox"], [type="radio"], [type="range"], [type="button"], [type="submit"], [type="reset"], [type="hidden"], [type="file"], [type="color"], [type="image"])), select, textarea):focus-visible:not(:where(.ps-bess-input-unit *, .ps-choice-guide__calculator label > span *, .ps-afm-field__control *, .ps-erp-offerpop__number-control *, #ps-chat-input-area *)),
  body.ps-public-ui :where(.ps-bess-input-unit, .ps-choice-guide__calculator label > span, .ps-afm-field__control, .ps-erp-offerpop__number-control):has(input:focus-visible),
body.ps-public-ui #ps-chat-input-area:has(#ps-chat-input:focus-visible) {
    outline: var(--ps-focus-width) solid Highlight !important;
    outline-offset: var(--ps-focus-offset) !important;
    box-shadow: none !important;
  }
}

body.ps-public-ui main :where(section[id], h2[id], h3[id]) {
  scroll-margin-top: calc(var(--ps-overlay-sticky-top, 60px) + 60px);
}

@media (prefers-reduced-motion: reduce) {
  body.ps-public-ui :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"],
    .btn,
    .button,
    .psl-btn,
    .wp-element-button
  ):active {
    transform: none;
  }
}

@media (max-width: 720px) and (pointer: coarse) {
  body.ps-public-ui :where(
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea
  ) {
    font-size: var(--ps-ui-body);
  }

  body.ps-public-ui :where(
    .entry-content,
    .page-content,
    .wp-block-post-content
  ) :where(figcaption, .wp-element-caption, .wp-caption-text) {
    text-align: left;
  }
}

/* =========================================================
   02B. WORDPRESS FULL-WIDTH SITE FOUNDATION
   ========================================================= */

body.ps-site-fullwidth {
  overflow-x: clip;
}

@supports not (overflow-x: clip) {
  body.ps-site-fullwidth {
    overflow-x: hidden;
  }
}

body.ps-site-fullwidth :where(
  #page,
  .site,
  #content,
  .site-content,
  #primary,
  #main,
  .content-area,
  .site-main,
  main.site-main,
  .wp-site-blocks
) {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.ps-site-fullwidth :where(
  .site-content > .ast-container,
  .site-content > .container,
  .site-content > .container-fluid,
  .site-content > .col-full,
  .site-main > .ast-container,
  .site-main > .container,
  .site-main > .container-fluid,
  .site-main > .col-full,
  .site-main .inside-article,
  .site-main article.page,
  .entry-content,
  .page-content,
  .wp-block-post-content
) {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

body.ps-site-fullwidth .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.ps-site-fullwidth :where(
  .entry-content,
  .page-content,
  .wp-block-post-content
) > :where(:not(.alignleft):not(.alignright)) {
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.ps-site-fullwidth :where(.alignfull) {
  width: 100vw;
  max-width: 100vw;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
}

:where(body.ps-erp-managed-landing-page, body.ps-landing-site-ui) :where(
  .ps-landing .ps-landing.ps-offer-v3,
  .ps-landing .ps-landing.ps-offer-v4,
  .ps-shortcode-shell > .ps-landing.ps-offer-v3,
  .ps-shortcode-shell > .ps-landing.ps-offer-v4
) {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}


/* =========================================================
   04. BUTTON SYSTEM
   ========================================================= */

/* Shared action model. Variants assign role tokens; this owner renders states. */




:is(.ps-landing, .ps-home-hero) :is(.psl-btn, .btn)[disabled],
.ps-erp-offer-front .ps-btn[disabled] {
  opacity: var(--ps-ui-disabled-opacity);
  cursor: not-allowed;
  transform: none;
}

/* Shared authority rail: concrete proof immediately after the landing hero. */
.ps-brand-proof {
  --ps-ui-accent-text: var(--ps-ui-inverse-accent);
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: var(--ps-image-fallback);
  color: var(--ps-ui-on-color);
  font-family: var(--ps-font-sans);
}

.ps-brand-proof::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  content: "";
  background: var(--ps-brand-orange);
}

.ps-brand-proof .psl-shell {
  
  width: min(var(--ps-layout-max), calc(100% - 2 * var(--ps-layout-gutter)));
  margin-inline: auto;

  max-width: none;
  padding-block: clamp(38px, 5vw, 58px) 0;
  padding-inline: 0;
}

.ps-brand-proof__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
  gap: clamp(18px, 4vw, 52px);
  align-items: end;
  margin-bottom: clamp(24px, 3vw, 34px);
}

.ps-brand-proof__eyebrow {
  display: block;
  margin-bottom: 10px;
  color: var(--ps-ui-accent-text);
  font-size: var(--ps-ui-overline-size);
  font-weight: var(--ps-ui-heading-weight);
  line-height: var(--ps-ui-leading-label);
  letter-spacing: var(--ps-ui-tracking-label);
  text-transform: uppercase;
}

.ps-brand-proof__head h2 {
  max-width: 680px;
  margin: 0;
  color: var(--ps-ui-on-color);
  font-size: var(--ps-ui-h2);
  font-weight: var(--ps-font-weight-heading);
  line-height: var(--ps-ui-leading-heading);
  letter-spacing: var(--ps-heading-tracking);
  text-wrap: balance;
}

.ps-brand-proof__head p {
  max-width: 46ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--ps-ui-body);
  font-weight: var(--ps-ui-body-weight);
  line-height: var(--ps-ui-leading-body);
  text-wrap: pretty;
}

.ps-brand-proof__grid {
  display: grid;
  grid-template-columns: repeat(var(--ps-brand-proof-columns, 4), minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ps-brand-proof__item {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 154px;
  flex-direction: column;
  justify-content: center;
  padding: 26px clamp(18px, 2.2vw, 30px);
  color: var(--ps-ui-on-color);
  text-decoration: none;
  transition: background var(--ps-transition), transform var(--ps-transition);
}

.ps-brand-proof__item + .ps-brand-proof__item {
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.ps-brand-proof__label {
  margin-bottom: 8px;
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--ps-ui-overline-size);
  font-weight: var(--ps-ui-heading-weight);
  letter-spacing: var(--ps-ui-tracking-label);
  line-height: var(--ps-ui-leading-label);
  text-transform: uppercase;
}

.ps-brand-proof__item strong {
  display: block;
  color: var(--ps-ui-on-color);
  font-size: var(--ps-ui-body);
  font-weight: var(--ps-ui-heading-weight);
  letter-spacing: var(--ps-ui-tracking-card);
  line-height: var(--ps-ui-leading-compact);
  text-wrap: balance;
}

.ps-brand-proof__item small {
  display: block;
  max-width: 29ch;
  margin-top: 7px;
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--ps-ui-caption);
  line-height: var(--ps-ui-leading-compact);
  text-wrap: pretty;
}

.ps-brand-proof__stars {
  display: inline-block;
  margin-right: 2px;
  color: currentColor;
  font-size: var(--ps-ui-caption);
  font-weight: var(--ps-ui-heading-weight);
  letter-spacing: var(--ps-ui-tracking-label);
  line-height: var(--ps-ui-leading-solid);
}

.ps-brand-proof__item:focus-visible {
  z-index: 1;
  outline: var(--ps-focus-width, 2px) solid var(--ps-focus-ring);
  outline-offset: -2px;
}

@media (hover: hover) and (pointer: fine) {
  .ps-brand-proof__item:hover {
    background: rgba(255, 255, 255, 0.075);
  }
}

@media (max-width: 980px) {
  .ps-brand-proof__head {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .ps-brand-proof__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ps-brand-proof__item:nth-child(3) {
    border-left: 0;
  }

  .ps-brand-proof__item:nth-child(n + 3) {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
  }
}

@media (max-width: 560px) {
  .ps-brand-proof .psl-shell {
    padding-top: var(--ps-space-6);
  }

  .ps-brand-proof__head {
    gap: 12px;
    margin-bottom: 22px;
  }

  .ps-brand-proof__grid {
    grid-template-columns: 1fr;
  }

  .ps-brand-proof__item {
    min-height: 0;
    padding: 21px 4px;
  }

  .ps-brand-proof__item + .ps-brand-proof__item {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    border-left: 0;
  }

  .ps-brand-proof__item small {
    max-width: 38ch;
  }
}

/* Header geometry is owned by powersense-header.css; heroes keep only their
   visual breathing room here and grow when the measured header needs it. */
body:has(.ps-header.ps-header--overlay),
body.ps-has-overlay-header {
  --ps-overlay-hero-clearance: max(clamp(132px, 11vw, 168px), calc(var(--ps-overlay-content-clearance) + 28px));
}

body.ps-erp-managed-landing-page--ofertare .ps-erp-offer-front--full {
  box-sizing: border-box;
  width: 100%;
  padding-right: max(var(--ps-layout-gutter, 20px), calc((100vw - var(--ps-layout-max, 1180px)) / 2));
  padding-left: max(var(--ps-layout-gutter, 20px), calc((100vw - var(--ps-layout-max, 1180px)) / 2));
  margin-top: clamp(18px, 2vw, 30px);
  margin-bottom: clamp(28px, 4vw, 56px);
}

@media (max-width: 1020px) {
  body:has(.ps-header.ps-header--overlay),
  body.ps-has-overlay-header {
    --ps-overlay-hero-clearance: max(112px, calc(var(--ps-overlay-content-clearance) + 28px));
  }
}

@media (max-width: 640px) {
  body:has(.ps-header.ps-header--overlay),
  body.ps-has-overlay-header {
    --ps-overlay-hero-clearance: max(96px, calc(var(--ps-overlay-content-clearance) + 28px));
  }
}

body.ps-woo-sisteme-fotovoltaice-category:has(.ps-header.ps-header--overlay) .ps-systems-page-intro,
body.ps-woo-sisteme-fotovoltaice-category.ps-has-overlay-header .ps-systems-page-intro {
  padding-top: calc(var(--ps-overlay-content-clearance) + clamp(24px, 4vw, 52px));
}


/* =========================================================
   10. CARDS / GRIDS / PILLS
   ========================================================= */

.ps-landing .psl-card,
.ps-landing .timeline,
.ps-landing .ps-contact-wrapper,
.ps-landing .cta-final {
  border: 1px solid rgba(8, 0, 99, 0.1);
  border-radius: var(--ps-radius-lg);
}

.ps-landing .psl-card,
.ps-landing .timeline,
.ps-landing .ps-contact-wrapper {
  background: var(--ps-panel);
  box-shadow: var(--ps-shadow-xs);
}

.ps-landing :where(.psl-grid-2, .psl-grid-3, .psl-grid-4, .psl-grid-5, .psl-table-wrap, .pill-row, .hero-actions, .timeline, .ps-woo-preview, .ps-contact-wrapper, .cta-final) + :where(.psl-grid-2, .psl-grid-3, .psl-grid-4, .psl-grid-5, .psl-table-wrap, .pill-row, .timeline, .ps-woo-preview, .ps-contact-wrapper, .cta-final) {
  margin-top: clamp(20px, 3vw, 34px);
}


/* =========================================================
   14. FORMS / CONTACT
   ========================================================= */

.ps-landing .ps-contact-wrapper {
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(22px, 3vw, 34px);
}



.ps-landing .ps-options-block,
.ps-landing .ps-options-block p,
.ps-landing .ps-options-block small,
.ps-landing .ps-options-block li,
.ps-landing .ps-options-block label {
  color: var(--ps-ink-soft);
}

/* Portfolio / ERP integration without breaking their internal logic */
.ps-contract-portfolio,
.ps-erp-offer-front {
  color: var(--ps-ink);
}

.ps-contract-portfolio a,
.ps-erp-offer-front a {
  color: var(--ps-brand-blue);
}

.ps-contract-portfolio a:hover,
.ps-erp-offer-front a:hover {
  color: var(--ps-ui-accent-text);
}


.ps-erp-offerpop.ps-erp-offerpop--v3 {
  color: var(--ps-ink);
}


@media (max-width: 900px) {

  .ps-landing .hero-actions > *,
  .ps-landing .hero-actions .ps-offer-trigger,
  .ps-landing .hero-actions .psl-offer-btn {
    min-width: 0;
  }
}


@media (max-width: 720px) {

  /* Column controls size from their content; a row's percentage basis would
     become a height here and force actions into neighbouring columns. */
  .ps-home-hero__actions > :is(.psl-btn, .btn, .ps-offer-trigger, .psl-offer-btn),
  .ps-landing .hero-actions > :is(.psl-btn, .btn, .ps-offer-trigger, .psl-offer-btn) {
    flex: 0 0 auto;
    min-width: 0;
  }

  .ps-home-hero__actions .psl-btn,
  .ps-landing .hero-actions .psl-btn,
  .ps-landing .hero-actions .btn,
  .ps-landing .hero-actions .psl-offer-btn a,
  .ps-landing .hero-actions .psl-offer-btn button,
  .ps-landing .hero-actions .psl-offer-btn input[type="button"],
  .ps-landing .hero-actions .psl-offer-btn input[type="submit"],
  .ps-offer-trigger,
  .ps-offer-trigger .btn,
  .ps-erp-offerpop.ps-erp-offerpop--v3,
  .ps-erp-offerpop.ps-erp-offerpop--v3 .ps-erp-offerpop__openbtn {
    width: 100% !important;
    max-width: 100% !important;
  }
}


@media (max-width: 480px) {
  .ps-home-hero__panel,
  .ps-landing .psl-card,
  .ps-landing .cta-final,
  .ps-landing .ps-contact-wrapper {
    border-radius: var(--ps-radius-lg);
  }
}


/* =========================================================
   18. TOUCH / REDUCED MOTION
   ========================================================= */

@media (pointer: coarse) {
  body.ps-public-ui :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    [role="button"],
    .btn,
    .button,
    .psl-btn,
    .wp-element-button
  ) {
    min-height: var(--ps-touch-target);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ps-hero *,
.ps-hero *::before,
.ps-hero *::after,
.ps-landing *,
.ps-landing *::before,
.ps-landing *::after,
.ps-home-hero *,
.ps-home-hero *::before,
.ps-home-hero *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }

  .ps-brand-proof,
  .ps-brand-proof *,
  .ps-brand-proof *::before,
  .ps-brand-proof *::after {
    transition: none !important;
    animation: none !important;
  }
}

.ps-landing :focus:not(:focus-visible),
.ps-home-hero :focus:not(:focus-visible),
.ps-erp-offer-front :focus:not(:focus-visible),
.ps-erp-offerpop.ps-erp-offerpop--v3 :focus:not(:focus-visible) {
  outline: none !important;
}

/* Full-bleed guide and immersive heroes use the shared resting height too. */
body:is(.ps-has-overlay-header, :has(.ps-header--overlay)) .ps-choice-guide__hero-grid,
body:is(.ps-has-overlay-header, :has(.ps-header--overlay)) .ps-immersive-panels__panel:first-child {
  padding-top: var(--ps-overlay-hero-clearance);
}

body:is(.ps-has-overlay-header, :has(.ps-header--overlay)) .ps-choice-guide__toc {
  top: var(--ps-overlay-sticky-top);
}
