/* Public form pages (node /contact, /school-contact, /feedback).
   Brand tokens: gold #c9a14a action, cream #f7f4ee, warm brown #6b6256. */

.pubform-page {
    max-width: 760px;
    margin: 0 auto;
    /* fixed 50px nav → ~74px top offset (house rule for node pages) */
    padding: 90px 16px 48px;
}

.pubform-page, .pubform-page * { box-sizing: border-box; }

.pubform-hero { text-align: center; margin-bottom: 1.5rem; }
.pubform-hero h1 { font-size: 1.9rem; margin: 0 0 .4rem; color: #4a4238; }
.pubform-hero p { color: #6b6256; margin: 0; }

.pubform-card {
    background: #fff;
    border: 1px solid #ece5d6;
    border-radius: 14px;
    padding: 26px 24px;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .05);
}

.pubform-label { display: block; font-weight: 600; margin: 0 0 .3rem; color: #4a4238; font-size: .92rem; }
.pubform-hint { font-size: .8rem; color: #8a8073; margin: -0.2rem 0 .6rem; }

.pubform-input,
.pubform-select,
.pubform-textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1.5px solid #ece5d6;
    border-radius: 8px;
    font: inherit;
    margin-bottom: .9rem;
    background: #fffdf8;
}

.pubform-input:focus, .pubform-select:focus, .pubform-textarea:focus {
    border-color: #c9a14a;
}

.pubform-textarea { min-height: 130px; resize: vertical; }

.pubform-submit {
    display: inline-block;
    width: 100%;
    padding: 12px 24px;
    background: #c9a14a;
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
}

.pubform-submit:hover { background: #b8913c; }
.pubform-submit:disabled { opacity: .7; cursor: default; }

.pubform-error {
    background: #fdecea;
    color: #8a2f28;
    border: 1px solid #f2c7c3;
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 1rem;
    font-size: .92rem;
}

.pubform-success {
    background: #eef7ee;
    color: #2e5b2e;
    border: 1px solid #cfe6cf;
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 1rem;
}

/* Radio/checkbox option rows */
.pubform-options { display: flex; flex-direction: column; gap: 8px; margin-bottom: 1rem; }
.pubform-option {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 12px;
    border: 1.5px solid #ece5d6;
    border-radius: 10px;
    background: #fffdf8;
    cursor: pointer;
}
.pubform-option:has(input:checked) { border-color: #c9a14a; background: #fdf7ea; }
.pubform-option input { margin-top: 3px; flex: none; }
.pubform-option .opt-title { font-weight: 600; color: #4a4238; }
.pubform-option .opt-desc { font-size: .83rem; color: #8a8073; }

/* Type-choice cards side by side where room allows */
.pubform-options--row { flex-direction: row; flex-wrap: wrap; }
.pubform-options--row .pubform-option { flex: 1 1 180px; }

/* Honeypot — visually gone but present for bots */
.pubform-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.cf-turnstile { margin-bottom: 1rem; }

/* --- School-contact price calculator --- */
.calc-box {
    background: linear-gradient(135deg, #fdf7ea, #fff);
    border: 2px solid #c9a14a;
    border-radius: 14px;
    padding: 22px 24px;
    margin-bottom: 1.25rem;
    text-align: center;
}
.calc-box .calc-title { font-weight: 700; font-size: 1.15rem; color: #4a4238; margin: 0 0 .25rem; }
.calc-box .calc-sub { color: #8a8073; font-size: .85rem; margin: 0 0 1rem; }
.calc-input-row { display: flex; gap: 10px; justify-content: center; align-items: center; margin-bottom: .8rem; }
.calc-input-row input {
    width: 120px;
    text-align: center;
    font-size: 1.2rem;
    padding: 8px;
    border: 1.5px solid #ece5d6;
    border-radius: 8px;
}
.calc-result .per-user { font-size: 1.7rem; font-weight: 800; color: #c9a14a; }
.calc-result .total { color: #6b6256; margin-top: .2rem; }
.calc-result .savings { color: #2e7d32; font-size: .85rem; margin-top: .2rem; }
.calc-special {
    margin-top: .9rem;
    font-size: .85rem;
    color: #6b6256;
    background: #f7f4ee;
    border-radius: 8px;
    padding: 10px 12px;
}

.pubform-section[hidden] { display: none; }
