/* THE PAGES A CLIENT SEES, DRESSED AS THE WEBSITE (8 October 2026).

   Adam Deane, after looking at the new website: "the font on same pages is clearly not correct ... The form needs an
   audit and fixing, the logo in the black is hard to see". The enquiry form, the thank-you page, the terms, and the
   single-use links a client is sent (an estimate, the intake, the activity area) were still in the dark shell from
   September - the logo on a small white card against near-black, in the app's own type - while the website a client
   arrives from is light, in Fraunces and Inter, with the logo large on white. Same practice, two looks, a minute apart.

   Loaded only by PublicPortalLayout and ExternalPortalLayout, after the app's own sheets, so everything here wins over
   archex-intake.css for these pages and touches nothing a signed-in person sees. */

.public-portal,
.external-portal {
    --pub-ink: #16191C;
    --pub-soft: #565D63;
    --pub-line: #E3DCD2;
    --pub-stone: #F4EEE6;
    --pub-night: #14181B;
    --pub-burnt: #C4520F;
    --pub-burnt-dark: #A8450B;
    --pub-ochre: #B04A0E;
    --pub-peach: #FFB68C;
    --pub-serif: Fraunces, Georgia, "Times New Roman", serif;
    --pub-sans: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;

    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--pub-stone);
    color: var(--pub-ink);
    font-family: var(--pub-sans);
    font-synthesis: none;
}

/* ---- the header: the logo on pure white, large enough to read (it was 190 px on a card on black) ---- */
.pub-header { background: #FFFFFF; border-bottom: 1px solid var(--pub-line); }
.pub-header-inner { max-width: 1240px; margin: 0 auto; padding: 0 28px; height: 84px; display: flex; align-items: center; gap: 20px; }
.pub-logo { display: block; }
.pub-logo img { display: block; height: 56px; width: auto; }
.pub-header-right { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.pub-phone { font: 700 15px/1 var(--pub-sans); color: var(--pub-ink); text-decoration: none; white-space: nowrap; }
.pub-phone:hover { color: var(--pub-burnt); }
.pub-tag { font: 700 11.5px/1.2 var(--pub-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--pub-soft); }

/* ---- the body and the card ---- */
.pub-body { flex: 1; display: flex; justify-content: center; align-items: flex-start; padding: 40px 18px 64px; }
.public-portal .external-card,
.external-portal .external-card {
    background: #FFFFFF;
    color: var(--pub-ink);
    border: 1px solid var(--pub-line);
    border-radius: 6px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .03), 0 14px 40px rgba(22, 25, 28, .06);
    padding: 40px 44px 44px;
    font-family: var(--pub-sans);
}
.public-portal .external-card h1,
.external-portal .external-card h1 { font: 600 38px/1.08 var(--pub-serif); letter-spacing: -.015em; margin: 4px 0 14px; color: var(--pub-ink); }
.public-portal .external-card h2,
.external-portal .external-card h2 { font-family: var(--pub-serif); font-weight: 600; letter-spacing: -.01em; color: var(--pub-ink); }
.public-portal .enquiry-card .enquiry-part { font-size: 24px; margin-top: 34px; padding-top: 24px; border-top-color: var(--pub-line); }
.public-portal .external-eyebrow,
.external-portal .external-eyebrow { color: var(--pub-ochre); letter-spacing: .16em; }
.public-portal .external-lede,
.external-portal .external-lede { color: var(--pub-soft); font-size: 18px; line-height: 1.55; }
.public-portal .external-hint,
.external-portal .external-hint { color: var(--pub-soft); }

/* links and the "required" note in the burnt orange that passes against white */
.public-portal .external-card a,
.external-portal .external-card a,
.public-portal .addr-link { color: var(--pub-burnt); }
.public-portal .external-field em,
.public-portal .external-form label em,
.external-portal .external-form label em { color: var(--pub-ochre); }

/* the boxes */
.public-portal .external-form label,
.public-portal .external-field,
.public-portal .external-choice > legend,
.external-portal .external-form label { color: #3A4046; }
.public-portal .external-form input,
.public-portal .external-form select,
.public-portal .external-form textarea,
.public-portal .external-field > input:not([type=file]),
.public-portal .external-field > textarea,
.public-portal .addr-box > input,
.external-portal .external-form input,
.external-portal .external-form select,
.external-portal .external-form textarea {
    border: 1px solid #D5CCBE;
    border-radius: 4px;
    background: #FFFFFF;
    color: var(--pub-ink);
    font-family: var(--pub-sans);
}
/* EVERY BOX FITS THE CARD (8 October 2026). A grid item will not shrink below its content by default, and a select
   is as wide as its longest option - "A Preliminary Aboriginal Heritage Test (PAHT, Victoria)" pushed the select and
   the two boxes beside it past the card's edge on a phone. */
.public-portal .external-form,
.external-portal .external-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.public-portal .external-form > label,
.external-portal .external-form > label { min-width: 0; }
.public-portal .external-form input:not([type=checkbox]):not([type=radio]),
.public-portal .external-form select,
.public-portal .external-form textarea,
.external-portal .external-form input:not([type=checkbox]):not([type=radio]),
.external-portal .external-form select,
.external-portal .external-form textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
.public-portal .external-field > input,
.public-portal .external-field > textarea { max-width: 100%; box-sizing: border-box; }

.public-portal input:focus-visible,
.public-portal select:focus-visible,
.public-portal textarea:focus-visible,
.external-portal input:focus-visible,
.external-portal select:focus-visible,
.external-portal textarea:focus-visible { outline: 2px solid var(--pub-burnt); outline-offset: 1px; border-color: var(--pub-burnt); }

.public-portal .external-radio { border-radius: 999px; border-color: #D5CCBE; }
.public-portal .external-radio:has(input:checked) { border-color: var(--pub-burnt); background: #FFF4EC; box-shadow: inset 0 0 0 1px var(--pub-burnt); }
.public-portal .external-radio input { accent-color: var(--pub-burnt); }
.public-portal .external-field > input[type=file] { border-radius: 6px; }
.public-portal .external-field > input[type=file]::file-selector-button { border-radius: 4px; }

/* the buttons: the website's burnt orange; the brand orange with white words did not pass for reading */
.public-portal .external-primary,
.external-portal .external-primary,
.public-portal .addr-confirm {
    background: var(--pub-burnt);
    color: #FFFFFF;
    border-radius: 3px;
    font: 700 16px/1 var(--pub-sans);
    min-height: 52px;
    padding: 0 28px;
}
.public-portal .external-primary:hover,
.external-portal .external-primary:hover,
.public-portal .addr-confirm:hover { background: var(--pub-burnt-dark); }
.external-portal .external-secondary { border-radius: 3px; min-height: 52px; font-family: var(--pub-sans); }
.public-portal .enquiry-send { display: inline-flex; align-items: center; justify-content: center; }

.public-portal .external-note,
.external-portal .external-note { background: #FFF4EC; border-color: #F1C9A9; border-radius: 6px; }
.external-portal .completion-fill { background: var(--pub-burnt); }

/* ---- the footer: the website's ---- */
.pub-footer { background: var(--pub-night); color: rgba(255, 255, 255, .78); font-size: 14.5px; line-height: 1.6; }
.pub-footer-inner { max-width: 1240px; margin: 0 auto; padding: 34px 28px 30px; }
.pub-footer b { color: #FFFFFF; font: 600 17px/1.3 var(--pub-serif); }
.pub-footer a { color: rgba(255, 255, 255, .86); text-decoration: none; }
.pub-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.pub-footer .pub-ack { margin-top: 16px; padding-top: 16px; border-top: 1px solid #343B42; font-size: 13.5px; color: rgba(255, 255, 255, .66); }
.pub-footer .pub-legal { margin-top: 8px; font-size: 12.5px; color: rgba(255, 255, 255, .5); }

@media (max-width: 640px) {
    .pub-header-inner { height: 72px; padding: 0 18px; }
    .pub-logo img { height: 44px; }
    .pub-phone { display: none; }
    .pub-body { padding: 22px 12px 44px; }
    .public-portal .external-card,
    .external-portal .external-card { padding: 28px 20px 30px; }
    .public-portal .external-card h1,
    .external-portal .external-card h1 { font-size: 32px; }
    .public-portal .enquiry-card .enquiry-part { font-size: 21px; }
    .public-portal .enquiry-send { display: flex; width: 100%; }
    .public-portal .external-form,
    .external-portal .external-form { grid-template-columns: minmax(0, 1fr); }
    .pub-footer-inner { padding: 28px 18px 26px; }
}
