/* Base wrapper */
.pvbtn { display:inline-flex; align-items:center; text-decoration:none; border-radius:999px; overflow:hidden; --h:44px; --pvbtn-bg:#0f3438; --pvbtn-alt:#ffffff; --pvbtn-text:#ffffff; --pvbtn-text-hover:#ffffff; }
.pvbtn .pvbtn-main { position:relative; display:flex; align-items:center; min-height:var(--h); padding:0 32px; border-radius:999px; background-color: var(--pvbtn-bg); overflow:hidden; }
.pvbtn .pvbtn-text { position:relative; z-index:1; letter-spacing: 0.08em; font-weight:500; text-transform:uppercase; color: var(--pvbtn-text); transition: color .25s ease; font-size: 0.875rem; }
.pvbtn .pvbtn-circle { position:relative; display:flex; align-items:center; justify-content:center; width:var(--h); height:var(--h); margin-left:0; border-radius:50%; flex:0 0 var(--h); background-color: var(--pvbtn-bg); overflow:hidden; }
.pvbtn .pvbtn-icon-wrap { position:relative; z-index:1; display:inline-flex; color: var(--pvbtn-text); transition: color .25s ease; }
.pvbtn .pvbtn-icon { width:calc(var(--h) * 0.46); height:calc(var(--h) * 0.46); }
.pvbtn .pvbtn-icon path,
.pvbtn .pvbtn-icon .pvbtn-icon-path,
.pvbtn .pvbtn-icon polyline,
.pvbtn .pvbtn-icon line,
.pvbtn .pvbtn-icon circle,
.pvbtn .pvbtn-icon rect { stroke: var(--pvbtn-text) !important; fill: none !important; transition: stroke .25s ease; }
.pvbtn:hover .pvbtn-icon path,
.pvbtn:hover .pvbtn-icon .pvbtn-icon-path,
.pvbtn:hover .pvbtn-icon polyline,
.pvbtn:hover .pvbtn-icon line,
.pvbtn:hover .pvbtn-icon circle,
.pvbtn:hover .pvbtn-icon rect { stroke: var(--pvbtn-text-hover) !important; }

/* Font Awesome icons */
.pvbtn .pvbtn-icon-wrap i { font-size:calc(var(--h) * 0.5); color: var(--pvbtn-text); transition: color .25s ease; }
.pvbtn:hover .pvbtn-icon-wrap i { color: var(--pvbtn-text-hover); }

/* Hover fill overlay (bottom -> top) */
.pvbtn:not(.pvbtn-outlined) .pvbtn-main::after,
.pvbtn:not(.pvbtn-outlined) .pvbtn-circle::after { content:""; position:absolute; inset:0; background: var(--pvbtn-alt); border-radius: inherit; transform: scaleY(0); transform-origin: bottom; transition: transform .45s ease; }
.pvbtn:not(.pvbtn-outlined):hover .pvbtn-main::after,
.pvbtn:not(.pvbtn-outlined):hover .pvbtn-circle::after { transform: scaleY(1); }
.pvbtn:not(.pvbtn-outlined):hover .pvbtn-text,
.pvbtn:not(.pvbtn-outlined):hover .pvbtn-icon-wrap { color: var(--pvbtn-text-hover); }

/* Outlined mode: transparent base + overlay on hover + border-color change */
.pvbtn-outlined .pvbtn-main { box-sizing:border-box; background-color: transparent; transition: border-color .3s ease; }
.pvbtn-outlined .pvbtn-circle { box-sizing:border-box; background-color: transparent; transition: border-color .3s ease; }
.pvbtn-outlined .pvbtn-main::after,
.pvbtn-outlined .pvbtn-circle::after { content:""; position:absolute; inset:0; background: var(--pvbtn-alt); border-radius: inherit; transform: scaleY(0); transform-origin: bottom; transition: transform .45s ease; }
.pvbtn-outlined:hover .pvbtn-main::after,
.pvbtn-outlined:hover .pvbtn-circle::after { transform: scaleY(1); }
.pvbtn-outlined:hover .pvbtn-main, .pvbtn-outlined:hover .pvbtn-circle { border-color: var(--pvbtn-alt); }
.pvbtn-outlined:hover .pvbtn-text,
.pvbtn-outlined:hover .pvbtn-icon-wrap { color: var(--pvbtn-text-hover); }

/* Sizes */
.pvbtn-sm { --h:36px; }
.pvbtn-sm .pvbtn-main { padding:0 20px; }

.pvbtn-md { --h:44px; }
.pvbtn-md .pvbtn-main { padding:0 28px; }

.pvbtn-lg { --h:52px; }
.pvbtn-lg .pvbtn-main { padding:0 36px; }
