/* Forms share the typography and red accent of the print studio. */
.wrapper.pf-contact-page { width: calc(100% - 40px); max-width: 990px; margin: 0 auto; padding: 28px 0 40px; box-sizing: border-box; }
.pf-contact-page__intro { margin: 0 0 26px; }
.pf-contact-page__intro h1 { color: #252525; font-size: 34px; line-height: 1.2; letter-spacing: -.7px; margin: 0 0 10px; font-weight: 700; }
.pf-contact-page__intro p { color: #62605b; font-size: 15px; line-height: 1.65; max-width: 620px; margin: 0; }
.pf-contact-page__layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(240px, 1fr); align-items: start; gap: 44px; }
.pf-contact-page__form { background: #fff; border: 1px solid #dedbd6; border-top: 3px solid #d51232; padding: 28px; min-width: 0; }
.pf-contact-page__aside { padding: 20px 0; color: #252525; }
.pf-contact-page__aside h2 { font-size: 17px; margin: 0 0 21px; font-weight: 600; }
.pf-contact-page__aside a { text-decoration: none; color: #252525; }
.pf-contact-page__aside a:hover { color: #d51232; }
.pf-contact-page__phone { display: block; font-size: 23px; font-weight: 700; white-space: nowrap; letter-spacing: -.5px; }
.pf-contact-page__email { display: inline-block; font-size: 14px; margin-top: 9px; }
.pf-contact-page__address { margin: 26px 0 20px; padding-left: 15px; border-left: 2px solid #d51232; }
.pf-contact-page__address p { color: #62605b; font-size: 13px; line-height: 1.6; margin: 0 0 3px; }
.pf-contact-page__directions { font-size: 13px; border-bottom: 1px solid #c9c3ba; padding-bottom: 4px; }
.pf-contact-page__directions span { margin-left: 12px; }
.pf-form, .pf-form *, .pf-form *:before, .pf-form *:after { box-sizing: border-box; }
.pf-form { font-size: 14px; line-height: 1.5; color: #252525; font-weight: 400; }
.pf-form p { margin: 0; }
.pf-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 18px; }
.pf-form__field { display: block; margin: 0; font-size: 13px; line-height: 1.4; font-weight: 600; min-width: 0; }
.pf-form__field--wide { grid-column: 1 / -1; }
.pf-form .wpcf7-form-control-wrap { display: block; margin-top: 7px; }
.pf-form input[type=text], .pf-form input[type=email], .pf-form input[type=tel], .pf-form textarea, .pf-form select {
    display: block; width: 100%; min-width: 0; height: 43px; padding: 10px 11px; margin: 0; border: 1px solid #c9c6c0; border-radius: 3px; background: #fff; color: #252525; box-shadow: none; font: 400 14px/1.45 'Open Sans', sans-serif; transition: border-color .14s, box-shadow .14s;
}
.pf-form input::placeholder, .pf-form textarea::placeholder { color: #77736d; opacity: 1; }
.pf-form textarea { min-height: 125px; height: 125px; resize: vertical; }
.pf-form input:focus, .pf-form textarea:focus, .pf-form select:focus { outline: none; border-color: #a80f27; box-shadow: 0 0 0 3px rgba(213,18,50,.1); }
.pf-form .wpcf7-not-valid { border-color: #bc1530; }
.pf-form .wpcf7-not-valid-tip { display: block; margin-top: 5px; color: #a80f27; font-size: 11px; font-weight: 400; line-height: 1.4; }
.pf-form__captcha { margin-top: 22px; }
.pf-form__captcha label { font-size: 12px; font-weight: 600; }
.pf-form__captcha-line { display: flex; align-items: center; gap: 15px; margin-top: 7px; }
.pf-form__captcha-line img { display: block; width: 84px; height: 28px; object-fit: contain; }
.pf-form__captcha-line .wpcf7-form-control-wrap { width: 126px; margin: 0; }
.pf-form__captcha-line input { letter-spacing: 2px; text-transform: uppercase; }
.pf-form .pf-form__submit { display: inline-block; width: auto; min-width: 190px; min-height: 44px; margin: 22px 0 0; padding: 11px 21px; border: 1px solid #d51232; border-radius: 3px; background: #d51232; color: #fff; font: 600 14px/1.4 'Open Sans', sans-serif; cursor: pointer; box-shadow: none; text-shadow: none; }
.pf-form .pf-form__submit:hover { background: #b5102b; border-color: #b5102b; }
.pf-form .pf-form__submit:disabled { cursor: wait; opacity: .65; }
.pf-form .pf-form__submit:focus-visible, .pf-contact-page__aside a:focus-visible { outline: 2px solid #d51232; outline-offset: 4px; }
.pf-contact-page .wpcf7-response-output, .popup:has(.pf-form) .wpcf7-response-output { font-size: 13px; font-weight: 400; line-height: 1.5; margin: 20px 0 0; padding: 11px 13px; }
.pf-form__heading { margin: 0 34px 7px 0; font-size: 24px; letter-spacing: -.4px; line-height: 1.25; font-weight: 700; }
.pf-form__lead { margin: 0 0 22px !important; color: #62605b; font-size: 13px; line-height: 1.6; }
.popup.reg_form:has(.pf-form) { left: 50%; top: 18px; transform: translateX(-50%); margin: 0; padding: 0; width: min(560px, calc(100vw - 36px)); max-height: calc(100vh - 36px); overflow: auto; border-radius: 10px; box-shadow: 0 18px 65px rgba(0,0,0,.22); }
.popup .form-wrapper:has(.pf-form) { width: 100%; height: auto; min-height: 0; padding: 29px; border-radius: 10px; box-shadow: none; font-weight: 400; }
.popup .pf-form textarea { height: 92px; min-height: 92px; }
.popup .pf-form__captcha { margin-top: 17px; }
.popup .pf-form .pf-form__submit { width: 100%; margin-top: 19px; }
.popup .pf-form__close { display: flex; justify-content: center; align-items: center; position: absolute; width: 30px; height: 30px; right: 15px; top: 14px; color: #62605b; font: 400 27px/1 sans-serif; background: none; text-decoration: none; }
.popup .pf-form__close:hover { color: #d51232; }
.popup .pf-form__close:focus-visible { outline: 2px solid #d51232; outline-offset: 2px; }
@media (max-width: 720px) {
    .pf-contact-page__layout { grid-template-columns: minmax(0,1fr); gap: 12px; }
    .pf-contact-page__aside { padding: 22px 0 0; }
    .pf-contact-page__intro h1 { font-size: 29px; }
}
@media (max-width: 480px) {
    .pf-form input[type=text], .pf-form input[type=email], .pf-form input[type=tel], .pf-form textarea, .pf-form select { font-size: 16px; }
    .wrapper.pf-contact-page { width: calc(100% - 32px); padding-top: 22px; }
    .pf-contact-page__form { padding: 21px 18px; }
    .pf-form__grid { grid-template-columns: minmax(0,1fr); gap: 16px; }
    .pf-form__field--wide { grid-column: auto; }
    .pf-form .pf-form__submit { width: 100%; }
    .popup .form-wrapper:has(.pf-form) { padding: 26px 20px; }
    .pf-form__heading { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { .pf-form input, .pf-form textarea, .pf-form select { transition: none; } }

/* Separate personal-data consent and document links. */
.pf-form__legal{margin-top:20px;font-size:12px;line-height:1.6;color:#55514c}
.pf-form__legal .wpcf7-list-item{margin:0;display:block}
.pf-form__legal .wpcf7-list-item label{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:start;font-weight:400}
.pf-form__legal input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;position:static;opacity:1;display:block;width:17px;height:17px;margin:3px 0 0;accent-color:#d51232;cursor:pointer}
.pf-form__legal a,.pf-legal-page a{color:#a80f27;text-decoration:underline;text-underline-offset:3px}
.pf-form__legal a:focus-visible{outline:2px solid #d51232;outline-offset:3px}
.pf-form__documents{margin:9px 0 0 27px!important;font-size:11px;line-height:1.7}
.pf-form .pf-form__submit:disabled{cursor:not-allowed}
.wrapper.pf-legal-page{width:calc(100% - 40px);max-width:900px;margin:0 auto;padding:28px 0 42px;box-sizing:border-box}
.pf-legal-page article{background:#fff;padding:30px 38px;border:1px solid #dedbd6;border-top:3px solid #d51232;color:#363330;font-size:14px;line-height:1.8}
.pf-legal-page h1{font-size:29px;line-height:1.3;margin:16px 0 26px;font-weight:700;letter-spacing:-.5px}
.pf-legal-page h2{font-size:19px;font-weight:600;line-height:1.4;margin:28px 0 12px}
.pf-legal-page p{margin:0 0 15px}.pf-legal-page .legal-nav{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12px;margin-bottom:22px}
.pf-legal-page .legal-notice{background:#f6f1e5;border-left:3px solid #a67c30;padding:14px 17px;font-size:12px;line-height:1.7;margin-bottom:22px}
.pf-footer__utility{flex-wrap:wrap}
@media(max-width:600px){.wrapper.pf-legal-page{width:calc(100% - 28px)}.pf-legal-page article{padding:22px 19px}.pf-legal-page h1{font-size:25px}}
