/* Approved September funnel review: postcode task first; report identity intact.
   Scope every selector to these components; shared navigation is untouched. */
.pf-postcode { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem 1.2rem;
    padding:.85rem 1rem; margin:0 0 1rem; border:1px solid #d7e3ed; border-radius:10px;
    background:#f1f6fa; color:#142e4b; box-sizing:border-box; }
.pf-postcode label { flex:1 1 200px; font-size:.85rem; font-weight:600; line-height:1.4; }
.pf-postcode-controls { display:flex; flex:0 1 320px; gap:.5rem; min-width:0; }
.pf-postcode input[type=text] { flex:1 1 130px; width:130px; min-width:0; min-height:46px;
    border:1px solid #9fb4c7; border-radius:7px; padding:.6rem .75rem; font:inherit;
    font-size:1rem; color:#142e4b; background:#fff; text-transform:uppercase; box-sizing:border-box; }
.pf-postcode input::placeholder { text-transform:none; }
.pf-postcode button { min-height:46px; border:0; border-radius:7px; padding:.6rem 1rem;
    font:inherit; font-size:.9rem; font-weight:700; cursor:pointer; background:#dce9f5; color:#20446c; }
.pf-postcode button:hover { background:#cbdff0; }
.pf-postcode :is(input,button):focus-visible, .pf-hero a:focus-visible {
    outline:3px solid #b9770e; outline-offset:3px; }
.pf-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);
    gap:2rem; align-items:start; margin:.5rem 0 1.5rem; }
.frr.frr--journey { max-width:1080px; }
.frr--journey .pf-hero h1 { font-size:clamp(1.8rem,4vw,2.7rem); line-height:1.12;
    letter-spacing:-.03em; color:#142e4b; margin:0 0 1rem; max-width:20ch; }
.frr--journey .pf-intro { color:#52677b; font-size:1.05rem; line-height:1.55; margin:0 0 1.2rem; max-width:48ch; }
.pf-hero .pf-postcode { display:block; padding:0; border:0; background:none; margin:0 0 .6rem; }
.pf-hero .pf-postcode label { display:block; margin-bottom:.45rem; }
.pf-hero .pf-postcode-controls { max-width:520px; }
.pf-hero .pf-postcode button { background:#2455a6; color:#fff; }
.pf-hero .pf-postcode button:hover { background:#1b4489; }
.pf-hero .pf-price-note { font-size:.85rem; color:#52677b; line-height:1.5; margin:0 0 .75rem; }
.pf-hero .pf-sample-link { display:inline-block; font-size:.88rem; font-weight:600;
    color:#2455a6; text-underline-offset:3px; margin:0 0 .5rem; }
.pf-report-excerpt { background:#fff; border:1px solid #d7e3ed; border-radius:8px;
    overflow:hidden; box-shadow:0 12px 32px #153e6212; }
.pf-report-excerpt header { background:#142e4b; color:#fff; padding:1.2rem 1.4rem; }
.pf-report-excerpt header p { color:#c5d8e8; margin:0 0 .45rem; font-size:.82rem; }
.pf-report-excerpt header strong { font-size:1.4rem; }
.pf-report-excerpt dl { margin:0; padding:.4rem 1.4rem; }
.pf-report-excerpt dl div { padding:.85rem 0; border-bottom:1px solid #d7e3ed; }
.pf-report-excerpt dl div:last-child { border:0; }
.pf-report-excerpt dt { font-size:.85rem; color:#52677b; }
.pf-report-excerpt dd { margin:.2rem 0 0; font-weight:600; font-size:.94rem; color:#142e4b; }
.pf-report-excerpt .pf-excerpt-note { margin:0; padding:.85rem 1.4rem; color:#245a67;
    background:#e8f3f6; font-size:.82rem; line-height:1.5; }
.frr--journey .pf-coverage { color:#52677b; font-size:.86rem; line-height:1.5; margin:0 0 1.5rem; }
.pf-guide-start { margin:1rem 0 1.5rem; }
.pf-guide-start .pf-postcode { margin-bottom:.6rem; }
.pf-guide-start p { font-size:.85rem; color:#52677b; margin:0; }
.prl2-more { margin-top:.6rem; }
.prl2-more summary { padding:.65rem 0; min-height:44px; box-sizing:border-box;
    font-weight:700; color:#2455a6; cursor:pointer; }
.prl2-more summary:focus-visible { outline:3px solid #b9770e; outline-offset:3px; }
@media (max-width:700px) {
    .pf-hero { grid-template-columns:1fr; gap:1.3rem; }
    .pf-postcode-controls { flex:1 1 100%; }
    .pf-hero .pf-postcode button { padding:.65rem .85rem; }
    .frr--journey .pf-hero h1 { max-width:22ch; }
}
@media print { .pf-postcode { display:none!important; } .prl2-more > * { display:block; } }
