:root{
  --puh-overlay:rgba(0,0,0,.62);--puh-popup-bg:#fff;--puh-text:#171717;--puh-popup-width:820px;--puh-popup-radius:16px;--puh-popup-padding:36px;
  --puh-font:inherit;--puh-title-size:30px;--puh-text-size:16px;--puh-btn-radius:9px;--puh-btn-py:14px;--puh-btn-px:20px;
  --puh-ue-bg:#171717;--puh-ue-text:#fff;--puh-ue-hover:#333;--puh-hue-bg:#ececec;--puh-hue-text:#171717;--puh-hue-hover:#ddd;
  --puh-change-bg:#fff;--puh-change-text:#171717;
  --puh-card-gap:22px;--puh-card-min-width:230px;--puh-card-min-height:205px;--puh-card-radius:24px;--puh-card-padding:28px;
  --puh-card-title-size:24px;--puh-card-subtitle-size:14px;--puh-card-border-width:1px;--puh-visual-size:48px;--puh-card-shadow:0 18px 42px rgba(0,0,0,.16);
  --puh-ue-card-bg:#f2f5ff;--puh-ue-card-text:#263c78;--puh-ue-card-border:#8190bd;--puh-ue-card-hover-bg:#edf1ff;--puh-ue-card-hover-border:#526daa;
  --puh-hue-card-bg:#fffafa;--puh-hue-card-text:#262626;--puh-hue-card-border:#c98b8b;--puh-hue-card-hover-bg:#fff4f4;--puh-hue-card-hover-border:#a95d5d
}

.puh-modal-open{overflow:hidden}
.puh-modal{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--puh-overlay);font-family:var(--puh-font)}
.puh-modal__panel{box-sizing:border-box;width:min(var(--puh-popup-width),100%);max-height:calc(100vh - 32px);overflow:auto;padding:var(--puh-popup-padding);border-radius:var(--puh-popup-radius);background:var(--puh-popup-bg);color:var(--puh-text);box-shadow:0 24px 70px rgba(0,0,0,.25)}
.puh-align-center{text-align:center}.puh-align-left{text-align:left}
.puh-modal__title{margin:0 0 12px;font-size:var(--puh-title-size);line-height:1.2;color:inherit}
.puh-modal__text{margin:0;font-size:var(--puh-text-size);line-height:1.6;color:inherit}

/* Classic buttons remain available as an alternative display mode. */
.puh-modal__actions.puh-display-buttons,.puh-inline-switcher.puh-display-buttons{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap;font-family:var(--puh-font)}
.puh-btn,.puh-change-choice{appearance:none;border:0;border-radius:var(--puh-btn-radius);cursor:pointer;font:inherit;font-weight:600;transition:background .18s ease,transform .18s ease}
.puh-btn{min-width:180px;padding:var(--puh-btn-py) var(--puh-btn-px)}
.puh-btn:hover{transform:translateY(-1px)}
.puh-btn-ue{background:var(--puh-ue-bg);color:var(--puh-ue-text)}.puh-btn-ue:hover{background:var(--puh-ue-hover)}
.puh-btn-hue{background:var(--puh-hue-bg);color:var(--puh-hue-text)}.puh-btn-hue:hover{background:var(--puh-hue-hover)}

/* V2.2 visual cards. */
.puh-choice-grid{display:grid;gap:var(--puh-card-gap);margin-top:28px;font-family:var(--puh-font)}
.puh-layout-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--puh-card-min-width)),1fr))}
.puh-layout-horizontal{grid-template-columns:repeat(2,minmax(0,1fr))}
.puh-layout-stacked{grid-template-columns:1fr}
.puh-inline-switcher.puh-choice-grid{width:100%}

.puh-choice-card{
  appearance:none;box-sizing:border-box;width:100%;min-height:var(--puh-card-min-height);padding:var(--puh-card-padding);
  border:var(--puh-card-border-width) solid transparent;border-radius:var(--puh-card-radius);cursor:pointer;font:inherit;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;box-shadow:var(--puh-card-shadow);
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease;color:inherit
}
.puh-align-left .puh-choice-card{align-items:flex-start;text-align:left}
.puh-choice-card--ue{background:var(--puh-ue-card-bg);color:var(--puh-ue-card-text);border-color:var(--puh-ue-card-border)}
.puh-choice-card--hue{background:var(--puh-hue-card-bg);color:var(--puh-hue-card-text);border-color:var(--puh-hue-card-border)}
.puh-choice-card--ue:hover{background:var(--puh-ue-card-hover-bg);border-color:var(--puh-ue-card-hover-border)}
.puh-choice-card--hue:hover{background:var(--puh-hue-card-hover-bg);border-color:var(--puh-hue-card-hover-border)}
.puh-hover-lift .puh-choice-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(0,0,0,.20)}
.puh-hover-zoom .puh-choice-card:hover{transform:scale(1.025)}
.puh-hover-none .puh-choice-card:hover{transform:none}
.puh-choice-card__visual{display:flex;align-items:center;justify-content:center;min-height:var(--puh-visual-size);font-size:var(--puh-visual-size);line-height:1;letter-spacing:.05em;white-space:nowrap}
.puh-align-left .puh-choice-card__visual{justify-content:flex-start}
.puh-choice-card__visual--image{width:100%;height:var(--puh-visual-size)}
.puh-choice-card__visual--image img{display:block;width:auto;max-width:100%;height:100%;margin:0 auto;object-fit:contain}
.puh-align-left .puh-choice-card__visual--image img{margin-left:0;margin-right:auto}
.puh-choice-card__title{display:block;font-size:var(--puh-card-title-size);line-height:1.15;font-weight:700;color:inherit}
.puh-choice-card__subtitle{display:block;font-size:var(--puh-card-subtitle-size);line-height:1.45;font-weight:400;opacity:.82;color:inherit}

.puh-btn:focus-visible,.puh-choice-card:focus-visible,.puh-change-choice:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.puh-change-choice{position:fixed;right:18px;bottom:18px;z-index:99990;padding:10px 14px;background:var(--puh-change-bg);color:var(--puh-change-text);box-shadow:0 6px 24px rgba(0,0,0,.16);font-size:13px;font-family:var(--puh-font)}

@media(max-width:680px){
  .puh-modal{padding:12px}.puh-modal__panel{padding:min(var(--puh-popup-padding),26px) 18px;max-height:calc(100vh - 20px)}
  .puh-layout-horizontal,.puh-layout-auto{grid-template-columns:1fr}
  .puh-choice-card{min-height:min(var(--puh-card-min-height),180px);padding:min(var(--puh-card-padding),24px)}
  .puh-modal__actions.puh-display-buttons,.puh-inline-switcher.puh-display-buttons{flex-direction:column}.puh-btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .puh-btn,.puh-choice-card{transition:none}.puh-hover-lift .puh-choice-card:hover,.puh-hover-zoom .puh-choice-card:hover{transform:none}
}
