/* WordPress-only additions on top of site.css (which is copied from the static site unchanged). */

/* site.css styles every <form>, <label> and <input>; keep that away from the admin bar. */
#wpadminbar form{background:none;border:0;border-radius:0;padding:0}
#wpadminbar label{display:inline;font-size:inherit;color:inherit}
#wpadminbar input{width:auto;border-radius:0}

/* Contact Form 7 inside the callback form (the plugin's own stylesheet is not loaded). */
.wpcf7-form .wpcf7-form-control-wrap{display:block;position:relative}
.wpcf7-form .hidden-fields-container{display:none}
/* site.css makes every <input> full width with a border; the submit button is an <input> here. */
.wpcf7-form input.wpcf7-submit{width:auto;border:0;cursor:pointer}
.wpcf7-form.submitting input.wpcf7-submit{opacity:.6;pointer-events:none}
.wpcf7-form .wpcf7-spinner{display:none}
.wpcf7-form .wpcf7-not-valid{border-color:var(--red)}
.wpcf7-form .wpcf7-not-valid-tip{display:block;margin-top:4px;color:var(--red);font-size:var(--fs-meta)}
.wpcf7-form .wpcf7-response-output{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--navy)}
.wpcf7-form.init .wpcf7-response-output,.wpcf7-form.resetting .wpcf7-response-output,.wpcf7-form.submitting .wpcf7-response-output{display:none}
.wpcf7-form.invalid .wpcf7-response-output,.wpcf7-form.unaccepted .wpcf7-response-output,.wpcf7-form.failed .wpcf7-response-output,.wpcf7-form.aborted .wpcf7-response-output,.wpcf7-form.spam .wpcf7-response-output{color:var(--red)}
.wpcf7 .screen-reader-response{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;padding:0;border:0;word-wrap:normal}

/* 404 page */
.not-found{padding-bottom:64px}

/* Spam trap field: off screen for people, still in the form for bots. */
.cb-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Privacy Policy and Thank You pages */
/* heading in the same column as the text below it */
.legal-head{max-width:780px}
.page-updated{padding:8px 0 24px;font-size:var(--fs-meta);color:#5a6b85}
.thanks{padding-bottom:96px}

/* Blog: article list */
.blog-grid .service-grid{grid-template-columns:repeat(3,1fr)}
.post-card>img{height:170px}
.hub-grid .post-card h2,.related .post-card h3{min-height:0;font-size:20px;line-height:1.2;letter-spacing:-.3px;margin-bottom:8px}
.hub-grid .post-card p,.related .post-card p{padding-right:0}
.post-card>div{padding:14px 17px 18px}
@media(max-width:1050px){.blog-grid .service-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.blog-grid .service-grid,.related .service-grid:has(.post-card){grid-template-columns:1fr}.post-card>img{height:150px}}

/* Blog: one article */
.post-hero{padding-bottom:8px}
.post-date{margin-top:10px;font-size:var(--fs-meta);color:#5a6b85}
.post-picture{display:block;width:100%;height:auto;margin-top:22px;border-radius:12px}
.post-content{padding-top:20px}
.post-content h2{font-size:30px;line-height:1.15;margin:34px 0 14px;text-wrap:balance}
.post-content h3{font-size:22px;line-height:1.2;margin:26px 0 10px}
.post-content h4{font-size:18px;margin:20px 0 8px}
.post-content p,.post-content li{font-size:17px;line-height:1.65;color:#334563}
.post-content p{margin-bottom:14px;max-width:68ch}
.post-content ul,.post-content ol{margin:6px 0 16px;padding-left:22px;max-width:68ch}
.post-content li{margin-bottom:8px}
.post-content a:not(.button){color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.post-content .page-callout{margin-top:30px}
.post-content .page-callout p{font-size:24px;line-height:1.2;color:#fff;margin:0}
@media(max-width:760px){.post-content h2{font-size:24px}.post-content h3{font-size:20px}.post-content p,.post-content li{font-size:16px}}
.post-services{margin-top:30px}.post-content .post-services h2{font-size:22px;margin:0 0 10px}
