/* Nordville buttons: one set of tokens and roles.
   Roles: primary (orange fill) · secondary (outline) · quiet (soft outline) · light (on light backgrounds) · text.
   Rectangular buttons have NO rounding. Only icon-only buttons (messengers, arrows) are circles.
   New code uses .btn; existing classes are mapped onto the same roles below. Rules: button-rules.html. */
:root{
 --btn-orange:#ff6a33;--btn-orange-hover:#e85a25;
 --btn-text:#f3f3ef;--btn-line:rgba(255,255,255,.3);--btn-line-quiet:rgba(255,255,255,.14);--btn-focus:#ff9467;
 --btn-h-l:64px;--btn-h-m:56px;--btn-h-s:48px;
 --btn-fs-l:18px;--btn-fs-m:16px;--btn-fs-s:15px;
 --btn-pad:24px;--btn-pad-s:18px;--btn-gap:12px;--btn-icon:20px;
}
@media(max-width:640px){:root{--btn-h-l:56px;--btn-h-m:52px;--btn-h-s:48px;--btn-pad:18px;--btn-fs-l:17px}}

/* ---------- API for new code ---------- */
.btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap);height:var(--btn-h-m);min-height:var(--btn-h-m);padding:0 var(--btn-pad);border:1px solid transparent;border-radius:0;background:none;color:var(--btn-text);font-family:inherit;font-size:var(--btn-fs-m);font-weight:400;line-height:1.2;text-decoration:none;text-align:center;letter-spacing:normal;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.btn svg,.btn img{width:var(--btn-icon);height:var(--btn-icon);flex:none;fill:none;stroke:currentColor;stroke-width:1.5}
.btn--l{height:var(--btn-h-l);min-height:var(--btn-h-l);font-size:var(--btn-fs-l)}
.btn--s{height:var(--btn-h-s);min-height:var(--btn-h-s);padding:0 var(--btn-pad-s);font-size:var(--btn-fs-s)}
.btn--primary{background:var(--btn-orange);border-color:var(--btn-orange);color:#fff}
.btn--secondary{border-color:var(--btn-line)}.btn--secondary svg{stroke:var(--btn-orange)}
.btn--accent{border-color:rgba(255,106,51,.3);color:var(--btn-orange)}
.btn--quiet{border-color:var(--btn-line-quiet);background:rgba(255,255,255,.02);color:#c9cac6}
.btn--light{background:#e9e9e9;border-color:#e9e9e9;color:#0d0d0d}.btn--light svg{stroke:var(--btn-orange)}
.btn--text{height:auto;min-height:0;padding:0;gap:14px}.btn--text svg{stroke:var(--btn-orange)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:default;pointer-events:none}
.btn:focus-visible{outline:2px solid var(--btn-focus);outline-offset:3px}
@media(hover:hover){
 .btn--primary:hover{background:var(--btn-orange-hover);border-color:var(--btn-orange-hover)}
 .btn--secondary:hover,.btn--accent:hover{border-color:var(--btn-orange);background:rgba(255,106,51,.06)}
 .btn--quiet:hover{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
 .btn--light:hover{background:#d9d9d9;border-color:#d9d9d9}
}

/* ---------- Home: existing classes on the same roles ---------- */
body.home-page :is(.button-orange,.button-grey,.consultation-button,.home-work-button,.footer-bottom__mailing,.footer-contacts__route,.ntp-button,.hdp-business),body .ntp .ntp-button{
 box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-gap);
 height:var(--btn-h-m);min-height:var(--btn-h-m);padding:0 var(--btn-pad);border:1px solid transparent;border-radius:0;
 font-family:inherit;font-size:var(--btn-fs-m);font-weight:400;line-height:1.2;letter-spacing:normal;text-align:center;text-decoration:none;
 transition:background-color .2s,border-color .2s,color .2s;
}
body.home-page :is(.button-orange,.button-grey)::after{width:var(--btn-icon);height:var(--btn-icon);flex:0 0 var(--btn-icon);margin:0}
body.home-page :is(.ntp-button,.hdp-business) svg,body .ntp .ntp-button svg{width:var(--btn-icon);height:var(--btn-icon);flex:none}
body.home-page .home-family-cta{height:var(--btn-h-l);min-height:var(--btn-h-l);font-size:var(--btn-fs-l);padding-inline:calc(var(--btn-pad) + 4px)}
body .ntp .ntp-card__actions .ntp-button{height:var(--btn-h-s);min-height:var(--btn-h-s);padding-inline:var(--btn-pad-s);font-size:var(--btn-fs-s)}

/* primary */
body.home-page :is(.button-orange,.consultation-button,.home-work-button--telegram,.footer-bottom__mailing){background:var(--btn-orange);border-color:var(--btn-orange);color:#fff}
/* secondary */
body.home-page :is(.button-grey.home-hero-action--outline,.ntp-button--outline,.hdp-business,.home-work-button--max,.footer-contacts__route,.home-account .button-grey,.home-family-cta.button-grey),body .ntp .ntp-button--outline{background:transparent;border-color:var(--btn-line);color:var(--btn-text)}
body.home-page :is(.button-grey.home-hero-action--outline,.home-family-cta.button-grey){background:rgba(11,11,11,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body.home-page :is(.ntp-button--outline,.hdp-business) svg,body.home-page .home-account .button-grey::after,body .ntp .ntp-button--outline svg{color:var(--btn-orange)}
/* accent outline: first action inside a card, paired with a quiet one */
body .ntp .ntp-card__actions .ntp-button--outline{border-color:rgba(255,106,51,.3);color:var(--btn-orange)}
/* quiet */
body .ntp .ntp-button--ghost{background:rgba(255,255,255,.02);border-color:var(--btn-line-quiet);color:#c9cac6}
/* light (light sections) */
body.home-page .home-architecture .button-grey{background:#e9e9e9;border-color:#e9e9e9;color:#0d0d0d}
/* messenger inside work stages */
body.home-page .home-work-button{justify-content:center}
body.home-page .home-work-button img{width:22px;height:22px;flex:0 0 22px}
/* The floating estimate bar (.home-estimate-dock) keeps its original rounded look: styled only in home-estimate-dock.css. */

@media(hover:hover){
 body.home-page :is(.button-orange,.consultation-button,.home-work-button--telegram,.footer-bottom__mailing):hover{background:var(--btn-orange-hover);border-color:var(--btn-orange-hover);color:#fff}
 body.home-page :is(.button-grey.home-hero-action--outline,.ntp-button--outline,.hdp-business,.home-work-button--max,.footer-contacts__route,.home-account .button-grey,.home-family-cta.button-grey):hover,body .ntp .ntp-button--outline:hover{background:rgba(255,106,51,.08);border-color:var(--btn-orange);color:var(--btn-text)}
 body .ntp .ntp-card__actions .ntp-button--outline:hover{color:var(--btn-orange)}
 body .ntp .ntp-button--ghost:hover{color:#fff;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
 body.home-page .home-architecture .button-grey:hover{background:#d9d9d9;border-color:#d9d9d9}
}
body.home-page :is(.button-orange,.button-grey,.consultation-button,.home-work-button,.footer-bottom__mailing,.footer-contacts__route,.ntp-button,.hdp-business):focus-visible{outline:2px solid var(--btn-focus);outline-offset:3px}
body.home-page :is(.home-work-button,.ntp-button,.button-orange,.button-grey):disabled{opacity:.45}

/* Project-card actions stay paired and readable on narrow screens. */
@media(max-width:700px){
 body .ntp .ntp-card__actions .ntp-button{height:52px;min-height:52px;padding:0 12px;font-size:14px;gap:8px}
 body .ntp .ntp-card__actions .ntp-button span{white-space:nowrap}
 body .ntp .ntp-card__actions .ntp-button svg{width:17px;height:17px}
}
@media(max-width:360px){
 body .ntp .ntp-card__actions .ntp-button{padding-inline:9px;font-size:13px;gap:6px}
 body .ntp .ntp-card__actions .ntp-button svg{width:16px;height:16px}
}

/* ---------- Project page (project-showcase): card pair follows the same rule as home ---------- */
body.project-showcase-page .rp-actions .nv-action{height:var(--btn-h-s)!important;min-height:var(--btn-h-s)!important;font-size:var(--btn-fs-s)!important;padding-inline:var(--btn-pad-s)!important}
body.project-showcase-page .rp-view.nv-action--outline{border-color:rgba(255,106,51,.3)!important;color:var(--btn-orange)!important}
body.project-showcase-page .rp-estimate.nv-action--primary{background:rgba(255,255,255,.02)!important;border-color:var(--btn-line-quiet)!important;color:#c9cac6!important}
@media(hover:hover){body.project-showcase-page .rp-estimate.nv-action--primary:hover{color:#fff!important;border-color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.06)!important}}
