/* Shared components: card, buttons, form fields, status messages */
.form-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:clamp(28px,4vw,48px);box-shadow:0 1px 2px rgba(36,60,48,.05),0 12px 32px -8px rgba(36,60,48,.12),0 32px 64px -24px rgba(36,60,48,.14)}
h2{font-family:var(--serif);font-weight:500;margin:0 0 8px;font-size:clamp(28px,2.8vw,34px);line-height:1.15;letter-spacing:-.015em;color:var(--pine)}
.form-intro{color:var(--muted);margin:0;font-size:16.5px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:12px;background:var(--pine);color:#fff;font-weight:600;font-size:16px;letter-spacing:.01em;padding:15px 26px;box-shadow:0 1px 2px rgba(36,60,48,.25);transition:background .2s,box-shadow .2s}
.btn:hover{background:var(--pine-2);box-shadow:0 6px 16px -4px rgba(36,60,48,.35)}
.btn:focus-visible{outline:3px solid rgba(51,82,63,.4);outline-offset:3px}
.btn.big{width:100%;font-size:17px;padding:18px 26px}
.btn.ghost{background:transparent;color:var(--pine);border:1px solid var(--field);box-shadow:none}
.btn.ghost:hover{background:var(--sage)}
.btn svg{width:18px;height:18px;transition:transform .2s}
.btn:hover svg.arrow{transform:translateX(3px)}
label{display:block;font-weight:600;font-size:14.5px;color:var(--pine);margin:22px 0 7px}
input,select,textarea{width:100%;font:inherit;font-size:16px;padding:14px 16px;border:1px solid var(--field);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
input::placeholder,textarea::placeholder{color:#9b968a}
input:hover,select:hover,textarea:hover{border-color:#b9b4a5}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--pine-2);box-shadow:0 0 0 3px rgba(51,82,63,.15)}
input.invalid,select.invalid{border-color:var(--err);box-shadow:0 0 0 3px rgba(163,64,42,.1)}
textarea{min-height:120px;resize:vertical}
.err{display:none;color:var(--err);font-size:13.5px;font-weight:600;margin-top:6px}
.err.show{display:block}
.small{font-size:13.5px;color:var(--muted);margin:16px 0 0}
.status{display:none;margin-top:18px;padding:14px 16px;border-radius:10px;background:var(--sage);color:var(--pine);font-size:15px}
@media(max-width:860px){.form-card{padding:26px 20px;border-radius:18px}}
form select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:44px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23243c30' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center}

/* hover colors: list rows, buttons and text buttons */
.listing{transition:background .18s}
.listing:hover{background:var(--sage)}
@media(min-width:701px){.listing{padding-left:14px;padding-right:14px;border-radius:8px}}
.btn:hover{background:var(--pine-2)}
.btn.ghost:hover{background:var(--sage);border-color:var(--pine-2)}
.nav-link,button.nav-link{border-radius:6px;padding:6px 8px;transition:background .18s,color .18s,border-color .2s}
.nav-link:hover,button.nav-link:hover{background:var(--sage);color:var(--pine-2)}
.nav-cta:hover{background:var(--pine-2)}
.tab{transition:transform .2s,background .2s,color .2s}
.tab:not(.on):hover{color:var(--pine-2);filter:brightness(.95)}
.chip:hover:not(.on){background:var(--sage);border-color:var(--pine-2)}
.chip.on:hover{background:var(--pine-2)}
.pg:hover:not(:disabled):not(.on){border-color:var(--pine-2)}
.linkbtn{transition:color .18s}
.linkbtn:hover,.more:hover,.l-contact a:hover{color:var(--brass-ink)}
.opt:hover{background:var(--sage)}
