/* Agency public site. Each agency's brand colour arrives as --agency-color; the fallback is the platform brand. */
:root {
    --agency-color: var(--ie-brand-red);
    --text: var(--ie-charcoal);
    --bg: var(--ie-light-grey);
    --card: #fff;
    --muted: var(--ie-mid-grey);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: "Montserrat", "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
}

.site { min-height: 100vh; display: flex; flex-direction: column; }

.site-header {
    background: var(--agency-color);
    color: #fff;
    padding: 40px 16px 56px;
    text-align: center;
}
.site-header h1 { margin: 0; font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 700; }
.site-header p { margin: 8px 0 0; opacity: .9; }

.site-main { width: 100%; max-width: 640px; margin: -32px auto 32px; padding: 0 16px; flex: 1; }
.site-main.narrow { max-width: 420px; margin-top: 48px; }

.card { background: var(--card); border-radius: 10px; padding: 24px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.card h2 { margin-top: 0; font-size: 1.3rem; }

label { display: block; font-weight: 600; margin: 16px 0 6px; font-size: .95rem; }
input, select, textarea {
    width: 100%; padding: 10px 12px; border: 1px solid #ccc; border-radius: 6px;
    font: inherit; color: inherit; background: #fff;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--agency-color); outline-offset: 1px; border-color: transparent; }

button[type=submit] {
    margin-top: 20px; width: 100%; padding: 12px; border: 0; border-radius: 6px;
    background: var(--agency-color); color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
button[type=submit]:hover { filter: brightness(1.1); }

.errors, .validation-message { color: var(--ie-brand-red); font-size: .9rem; }
ul.errors { padding-left: 18px; }

.site-footer { text-align: center; color: var(--muted); font-size: .8rem; padding: 16px; }

.site-header.compact { padding: 24px 16px 48px; }
.contact-buttons { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
.btn-light {
    display: inline-block; padding: 8px 14px; border-radius: 6px; background: rgba(255,255,255,.15);
    color: #fff; text-decoration: none; font-weight: 600; border: 1px solid rgba(255,255,255,.4);
}
.btn-light:hover { background: rgba(255,255,255,.25); }

.services { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-bottom: 12px; }
.service { background: var(--card); border-radius: 8px; padding: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.05); display: flex; flex-direction: column; }
.service strong { color: var(--agency-color); }
.service span { font-size: .85rem; color: var(--muted); }

.agency-details { text-align: center; color: var(--muted); font-size: .85rem; margin-top: 20px; }
.agency-details p { margin: 4px 0; }
.agency-details a { color: inherit; }
.licence { font-size: .8rem; }

.quote-lines { width: 100%; border-collapse: collapse; margin: 12px 0; }
.quote-lines td { padding: 8px 0; border-bottom: 1px solid #eee; }
.quote-lines td:last-child { text-align: right; white-space: nowrap; }
.quote-lines tr.total td { font-weight: 700; border-bottom: 0; font-size: 1.1rem; }
.muted { color: var(--muted); font-size: .9rem; }
.ok { color: var(--ie-status-active); font-weight: 600; }
.sample-flag { background: #FFF4D6; color: #7a5b00; padding: 8px 12px; border-radius: 6px; font-weight: 600; font-size: .9rem; }

.preview-banner { background: #FFF4D6; color: #7a5b00; text-align: center; padding: 8px 16px; font-weight: 600; font-size: .9rem; }
