/* PDF readiness checker (/pdf-check). Mobile first; extends Bootstrap 4. */

.pc-section { padding: 2rem 0 4rem; }
.pc { max-width: 44rem; margin: 0 auto; }
.pc[hidden], .pc [hidden] { display: none !important; }

.pc-logo { text-align: center; margin: 0 0 1.75rem; }
.pc-logo img { max-width: 100%; height: auto; }

.pc-h1 { font-size: 1.6rem; line-height: 1.25; font-weight: 700; margin-bottom: 1rem; }
.pc-h2 { font-size: 1.2rem; font-weight: 700; margin: 1.75rem 0 .75rem; }
.pc-intro { font-size: 1.1rem; margin-bottom: 1.5rem; }
.pc-verdict:focus { outline: none; }
.pc-summary { color: #52606d; margin-bottom: 1.5rem; overflow-wrap: anywhere; }
.pc-summary em { font-style: italic; }

/* Drop zone: the whole label is the target and shows the focus ring. */
.pc-zone {
    display: flex; align-items: center; justify-content: center; text-align: center;
    min-height: 11rem; padding: 1.5rem; margin: 0 0 1rem;
    border: 3px dashed #8834fd; border-radius: .75rem; background: #faf7ff;
    color: #3d1a78; font-weight: 600; font-size: 1.15rem; cursor: pointer;
}
.pc-zone:hover, .pc-zone.pc-dragging { background: #efe8fb; border-style: solid; }
.pc-zone:focus-within { outline: 3px solid #1f2933; outline-offset: 3px; }

.pc-privacy { color: #52606d; margin-bottom: 0; }
.pc-checks { padding-left: 1.25rem; }
.pc-checks li { margin-bottom: .35rem; }

.pc-progress { font-size: 1.25rem; padding: 3rem 0; text-align: center; }
.pc-error {
    padding: .75rem 1rem; margin-bottom: 1rem; border-left: 4px solid #b3261e;
    background: #fdecea; color: #7a1712; font-weight: 600;
}

/* Result rows. Status is always a text label as well as a colour. */
.pc-rows { list-style: none; padding: 0; margin: 0 0 2rem; }
.pc-row {
    display: flex; flex-wrap: wrap; gap: .5rem .9rem; padding: 1rem;
    margin-bottom: .75rem; border: 1px solid #cbd2d9; border-left-width: 6px; border-radius: .5rem; background: #fff;
}
.pc-row-body { flex: 1 1 14rem; min-width: 0; }
.pc-row-body p { margin: .25rem 0 0; overflow-wrap: anywhere; }
.pc-row-title { display: block; color: #52606d; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }
/* Every pill is as wide as the widest one: each carries invisible copies of all
   the labels in the same grid cell, so the left column stays aligned without
   measuring anything or hard-coding a width. */
.pc-badge {
    display: inline-grid; justify-items: center; align-items: center; align-self: flex-start;
    padding: .15rem .6rem; border-radius: 1rem; font-size: .85rem; font-weight: 700;
    border: 2px solid currentColor; white-space: nowrap;
}
.pc-badge > span { grid-area: 1 / 1; }
.pc-badge-spacer { visibility: hidden; height: 0; overflow: hidden; }
.pc-red { border-left-color: #b3261e; }   .pc-red .pc-badge { color: #8c1d18; background: #fdecea; }
.pc-amber { border-left-color: #b25e09; } .pc-amber .pc-badge { color: #7a4100; background: #fff4e0; }
.pc-green { border-left-color: #1e7a46; } .pc-green .pc-badge { color: #14532d; background: #e6f6ec; }

.pc-plan { padding: 1.25rem; border: 1px solid #cbd2d9; border-radius: .5rem; background: #faf7ff; margin-bottom: 1.5rem; }
.pc-plan .pc-h2 { margin-top: 0; }
.pc-plan-line { margin-bottom: 1rem; }
.pc-options { border: 0; padding: 0; margin: 0 0 1rem; }
.pc-options .custom-control, .pc-tools .custom-control { margin-bottom: .6rem; min-height: 1.75rem; }
.pc .custom-control-label { cursor: pointer; }
.pc .custom-control-input:focus ~ .custom-control-label::before { box-shadow: 0 0 0 3px #1f2933; }
.pc-charity { margin: 0; font-weight: 600; }

.pc-actions { display: grid; gap: .75rem; margin-bottom: 1.5rem; }
.pc-primary, .pc-secondary { display: block; width: 100%; text-align: center; white-space: normal; }
.pc-primary-title { display: block; font-weight: 700; }
.pc-primary-sub { display: block; font-size: .95rem; font-weight: 400; }

.pc-gate { padding: 1.25rem; border: 1px solid #cbd2d9; border-radius: .5rem; margin-bottom: 1.5rem; }
.pc-gate .pc-h2 { margin-top: 0; }
.pc-label { display: block; font-size: 1rem; font-weight: 700; margin-bottom: .4rem; }
.pc-tools { border: 0; padding: 0; margin: 0 0 1rem; }
.pc-small { color: #52606d; font-size: .9rem; margin: .75rem 0 0; }

.pc-sent { padding: 1.25rem; border: 2px solid #1e7a46; border-radius: .5rem; background: #e6f6ec; margin-bottom: 1.5rem; }
.pc-sent:focus { outline: 3px solid #1f2933; outline-offset: 2px; }
.pc-sent-text { font-size: 1.1rem; }
.pc-again { text-align: center; }

@media (min-width: 576px) {
    .pc-h1 { font-size: 2rem; }
    .pc-actions { grid-template-columns: 1fr; }
}

/* The "Something else" box: slides down rather than popping in. */
.pc-reveal {
    display: grid; grid-template-rows: 0fr; visibility: hidden;
    transition: grid-template-rows .3s ease, visibility 0s linear .3s;
}
.pc-reveal.is-open { grid-template-rows: 1fr; visibility: visible; transition-delay: 0s; }
.pc-reveal-inner { overflow: hidden; min-height: 0; }
@media (prefers-reduced-motion: reduce) { .pc-reveal { transition: none; } }

/* Addresses in a result row: Link (75%) | Page # (25%). */
.pc-links { width: 100%; table-layout: fixed; border-collapse: collapse; margin: .5rem 0 .75rem; font-size: .9rem; }
.pc-links .pc-links-link { width: 75%; }
.pc-links .pc-links-page { width: 25%; }
.pc-links th {
    padding: .35rem .5rem; text-align: left; font-size: .75rem; text-transform: uppercase;
    letter-spacing: .03em; color: #52606d; border-bottom: 2px solid #cbd2d9;
}
.pc-links td { padding: .45rem .5rem; vertical-align: top; border-bottom: 1px solid #e4e7eb; overflow-wrap: anywhere; word-break: break-word; }
.pc-links tbody tr:last-child td { border-bottom: 0; }
