:root {
  --ca-primary: #173f61;
  --ca-secondary: #167987;
  --ca-success: #16794b;
  --ca-danger: #b42318;
  --ca-border: #d7e0e5;
  --ca-text: #1f2933;
  --ca-muted: #667784;
}

html.ca-modal-open,
html.ca-modal-open body { overflow: hidden; }

.price,
.woocommerce-Price-amount,
.widget_shopping_cart,
.site-header-cart,
.cart-contents,
.elementor-menu-cart__toggle,
.wc-block-mini-cart { display: none !important; }

.ca-availability { color: var(--ca-success); font-weight: 600; }
.ca-quote-button { width: auto; cursor: pointer; }
.ca-quote-button--single { min-width: 240px; }
.ca-single-quote-wrap { margin: 22px 0; }

.ca-modal { position: fixed; inset: 0; z-index: 999999; display: none; align-items: center; justify-content: center; padding: 20px; }
.ca-modal[aria-hidden="false"] { display: flex; }
.ca-modal__backdrop { position: absolute; inset: 0; background: rgba(7, 23, 36, .7); backdrop-filter: blur(3px); }
.ca-modal__dialog { position: relative; width: min(780px, 100%); max-height: calc(100vh - 32px); overflow: auto; background: #fff; border-radius: 16px; box-shadow: 0 24px 80px rgba(0, 0, 0, .28); color: var(--ca-text); }
.ca-modal__close { position: absolute; right: 14px; top: 12px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: #12202a; font-size: 28px; line-height: 1; cursor: pointer; }
.ca-modal__header { display: flex; gap: 18px; align-items: center; padding: 24px 62px 24px 24px; background: linear-gradient(135deg, var(--ca-primary), #0e6470); color: #fff; }
.ca-modal__product-image-wrap { width: 92px; height: 92px; flex: 0 0 92px; background: #fff; border-radius: 12px; overflow: hidden; }
.ca-modal__product-image { width: 100%; height: 100%; object-fit: contain; }
.ca-modal__eyebrow { margin: 0 0 3px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }
.ca-modal__header h2 { margin: 0; color: #fff; font-size: clamp(24px, 4vw, 32px); }
.ca-modal__product-name { margin: 5px 0 0; color: #eaf5f6; }
.ca-form { padding: 24px; }
.ca-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ca-field { display: flex; flex-direction: column; gap: 7px; font-weight: 600; font-size: 14px; }
.ca-field--full { grid-column: 1 / -1; }
.ca-field input,
.ca-field textarea,
.ca-phone { width: 100%; border: 1px solid var(--ca-border); border-radius: 8px; background: #fff; box-sizing: border-box; }
.ca-field input,
.ca-field textarea { padding: 11px 12px; min-height: 44px; color: var(--ca-text); font: inherit; font-weight: 400; }
.ca-field textarea { resize: vertical; }
.ca-field input:focus,
.ca-field textarea:focus { outline: 3px solid rgba(22, 121, 135, .18); border-color: var(--ca-secondary); }
.ca-phone { display: flex; align-items: stretch; overflow: hidden; }
.ca-phone__prefix { display: flex; align-items: center; padding: 0 10px; background: #f0f4f6; border-right: 1px solid var(--ca-border); color: #43545f; }
.ca-phone input { border: 0; border-radius: 0; min-width: 0; }
.ca-consent { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0 14px; font-size: 13px; color: #42535e; }
.ca-consent input[type="checkbox"] {
  display: block !important;
  position: static !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex: 0 0 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  transform: none !important;
  clip: auto !important;
  clip-path: none !important;
  pointer-events: auto !important;
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  accent-color: var(--ca-primary);
}
.ca-consent a { color: var(--ca-secondary); }
.ca-form__actions { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; margin-top: 16px; }
.ca-button { min-height: 46px; padding: 12px 20px !important; border: 1px solid transparent; border-radius: 8px !important; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font: inherit; font-weight: 600; line-height: 1.2; text-decoration: none; appearance: none; -webkit-appearance: none; }
.ca-button--whatsapp { background: #1f9d58 !important; border-color: #1f9d58 !important; color: #fff !important; }
.ca-button--email { background: var(--ca-primary) !important; border-color: var(--ca-primary) !important; color: #fff !important; }
.ca-button[disabled] { opacity: .6; cursor: wait; }
.ca-form__message { display: none; margin-top: 15px; padding: 12px 14px; border-radius: 8px; font-size: 14px; }
.ca-form__message:not(:empty) { display: block; }
.ca-form__message--info { background: #eaf4f7; color: #174b56; }
.ca-form__message--success { background: #e9f7ef; color: #12633c; }
.ca-form__message--error { background: #fff0ef; color: var(--ca-danger); }
.ca-hp { position: absolute !important; left: -99999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

@media (max-width: 640px) {
  .ca-modal { padding: 0; align-items: flex-end; }
  .ca-modal__dialog { max-height: 94vh; border-radius: 16px 16px 0 0; }
  .ca-modal__header { padding: 20px 54px 20px 18px; }
  .ca-modal__product-image-wrap { width: 72px; height: 72px; flex-basis: 72px; }
  .ca-form { padding: 18px; }
  .ca-form__grid { grid-template-columns: 1fr; }
  .ca-field--full { grid-column: auto; }
  .ca-form__actions { flex-direction: column-reverse; }
  .ca-button { width: 100%; }
}

@media (prefers-reduced-motion: no-preference) {
  .ca-modal[aria-hidden="false"] .ca-modal__dialog { animation: caModalIn .2s ease-out; }
  @keyframes caModalIn { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: none; } }
}
