/* Reusable Components */
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; font-family: var(--font-body); font-weight: 600; border-radius: 4px; border: 2px solid transparent; cursor: pointer; transition: all var(--transition-fast); text-decoration: none; }
.btn:focus-visible { outline: 2px solid var(--psm-deep-navy); outline-offset: 2px; }
.btn-primary { background-color: var(--psm-performance-amber); color: var(--psm-deep-navy); }
.btn-primary:hover { background-color: #e6a200; color: var(--psm-deep-navy); }
.btn-secondary { background-color: var(--psm-industrial-blue); color: var(--psm-white); }
.btn-secondary:hover { background-color: var(--psm-deep-navy); color: var(--psm-white); }
.btn-ghost { background-color: transparent; border-color: var(--psm-industrial-blue); color: var(--psm-industrial-blue); }
.btn-ghost:hover { background-color: var(--psm-industrial-blue); color: var(--psm-white); }

.psm-floating-whatsapp { position: fixed; bottom: 24px; right: 24px; width: 60px; height: 60px; background-color: #25D366; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 900; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
.psm-floating-whatsapp:hover { transform: scale(1.05); box-shadow: 0 6px 16px rgba(0,0,0,0.2); color: #fff; }

/* ---------- Modal de cotización ---------- */
.psm-modal { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.psm-modal[hidden] { display: none; }
.psm-modal-overlay { position: absolute; inset: 0; background: rgba(14,27,45,.6); }
.psm-modal-dialog { position: relative; width: 100%; max-width: 620px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; background: #fff; border-radius: 8px; padding: 28px; box-shadow: 0 20px 50px rgba(14,27,45,.3); }
.psm-modal-close { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; background: transparent; font-size: 1.75rem; line-height: 1; color: var(--psm-technical-gray); cursor: pointer; }
.psm-modal-title { font-size: 1.375rem; margin: 0 0 4px; }
.psm-modal-ref { margin: 0 0 18px; color: var(--psm-technical-gray); font-size: .9375rem; overflow-wrap: anywhere; }
.psm-modal-ref strong { color: var(--psm-deep-navy); }
body.psm-modal-open { overflow: hidden; }

body.psm-modal-open .psm-floating-whatsapp { display: none; }
@media (max-width: 767px) {
    .psm-modal { padding: 0; align-items: flex-end; }
    .psm-modal-dialog { max-width: none; border-radius: 12px 12px 0 0; padding: 22px 18px; max-height: 92vh; max-height: 92dvh; }
}

/* Breadcrumb global (template-parts/global/breadcrumb.php) */
.psm-breadcrumb ol { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; font-size: .875rem; }
.psm-breadcrumb li + li::before { content: "›"; margin: 0 12px; }
.psm-breadcrumb--light { color: rgba(255,255,255,.85); }
.psm-breadcrumb--light li + li::before { color: rgba(255,255,255,.6); }
.psm-breadcrumb--light a { color: rgba(255,255,255,.85); }
.psm-breadcrumb--light a:hover, .psm-breadcrumb--light [aria-current] { color: #fff; }
.psm-breadcrumb--dark { color: var(--psm-technical-gray); }
.psm-breadcrumb--dark a { color: var(--psm-technical-gray); }
.psm-breadcrumb--dark [aria-current] { color: var(--psm-deep-navy); }
.psm-breadcrumb a:hover { text-decoration: underline; }
