/*
Theme Name: Professional Structures
Theme URI: https://pstructures.com
Author: Pixlwrk
Description: Bespoke WordPress theme for Professional Structures. Three concept presentation variants during local design review.
Version: 0.2.0
Requires at least: 6.5
Requires PHP: 8.2
Text Domain: professional-structures
*/
:root{--ps-purple:#430166;--ps-pink:#fa0594}
.ps-form-section{background:#faf8fb;color:#21172b;padding:clamp(48px,7vw,110px) 20px;font-family:system-ui,Arial,sans-serif}
.ps-form-inner{max-width:1040px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.ps-form-inner h2{font-size:clamp(32px,4vw,56px);line-height:1.06;letter-spacing:-.045em;margin:.3em 0;color:#2d093b}
.ps-form-inner p{line-height:1.65;color:#63576b}
.ps-form-label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ps-purple);font-weight:750}
.ps-enquiry-form{padding:28px;background:#fff;border:1px solid #eee6f0;box-shadow:0 20px 50px rgba(67,1,102,.06);border-radius:4px;display:grid;gap:14px}
.ps-enquiry-form label{font-size:13px;color:#392a42;display:block;font-weight:700}
.ps-enquiry-form input:not([type=checkbox]),.ps-enquiry-form select,.ps-enquiry-form textarea{display:block;width:100%;border:1px solid #d7cadb;background:#fff;border-radius:2px;font:inherit;margin-top:6px;padding:12px 11px;color:#261b2d}
.ps-enquiry-form input:focus,.ps-enquiry-form textarea:focus,.ps-enquiry-form select:focus{outline:2px solid var(--ps-pink);outline-offset:1px}
.ps-enquiry-form textarea{min-height:100px;resize:vertical}
.ps-enquiry-form .ps-check{display:flex;gap:10px;font-weight:400;align-items:flex-start;line-height:1.5}
.ps-enquiry-form button{background:var(--ps-purple);color:#fff;border:0;padding:15px 24px;font:inherit;font-weight:750;cursor:pointer}
.ps-enquiry-form button:hover,.ps-enquiry-form button:focus-visible{background:var(--ps-pink)}
.ps-notice{background:#ebf9f1;border-left:4px solid #16824c;padding:15px}
.ps-enquiry-form .ps-trap{position:absolute;left:-10000px;opacity:0}
.ps-standard{font-family:system-ui,Arial,sans-serif;color:#201728;margin:0}
.ps-standard-header,.ps-standard-footer{padding:24px max(24px,calc((100vw - 1150px)/2));background:#fff;border-bottom:1px solid #ece5ef}
.ps-standard-header a{color:var(--ps-purple);text-decoration:none;font-weight:bold}
.ps-standard-header img{width:230px;max-width:100%;height:auto}
.ps-standard-main{max-width:1150px;padding:60px 24px;margin:auto;min-height:50vh}
.ps-standard-main h1{color:var(--ps-purple);font-size:clamp(38px,6vw,70px);line-height:1}
.ps-standard-footer{background:#2d073f;color:white}
@media(max-width:760px){.ps-form-inner{grid-template-columns:1fr;gap:24px}.ps-enquiry-form{padding:20px}}

/* Original Professional Structures typography, locally hosted under the OFL. */
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url('./assets/fonts/poppins-400-latin.woff2') format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url('./assets/fonts/poppins-500-latin.woff2') format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url('./assets/fonts/poppins-600-latin.woff2') format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url('./assets/fonts/poppins-700-latin.woff2') format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url('./assets/fonts/poppins-800-latin.woff2') format('woff2')}

body.ps-standard{margin:0;font-family:Poppins,Arial,sans-serif;font-weight:400;color:#201528;background:#fff;line-height:1.65}
.ps-standard *,.ps-standard *:before,.ps-standard *:after{box-sizing:border-box}
.ps-standard h1,.ps-standard h2,.ps-standard h3{font-family:Poppins,Arial,sans-serif;font-weight:700;letter-spacing:-.042em;line-height:1.16}
.ps-standard h1,.ps-standard h2,.ps-standard h3,.ps-standard p{margin-top:0}
.ps-standard a{color:var(--ps-purple)}
.ps-standard a:hover{color:var(--ps-pink)}
.ps-container{width:min(1160px,calc(100% - 40px));margin:0 auto}
.ps-site-header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #e5deea}
.ps-site-nav{display:flex;align-items:center;gap:22px;min-height:82px}
.ps-site-logo{display:block;flex:0 0 auto}
.ps-site-logo img{display:block;width:184px;max-width:100%;height:auto}
.ps-site-links{display:flex;align-items:center;gap:21px;margin-left:auto}
.ps-site-links a{color:#5c4b66;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
.ps-header-book{display:inline-flex;align-items:center;justify-content:center;background:var(--ps-purple);padding:14px 19px;color:#fff!important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.025em;text-decoration:none;border-radius:5px;min-height:46px;white-space:nowrap}
.ps-header-book:hover,.ps-header-book:focus-visible{background:var(--ps-pink)}
.ps-page-main{min-height:50vh}
.ps-page-hero{background:#f7f3f9;border-bottom:1px solid #e7daeb;padding:85px 0 80px}
.ps-page-hero h1{font-size:clamp(43px,5.8vw,72px);max-width:850px;margin:15px 0 19px;line-height:1.1;color:#2c093d}
.ps-page-hero p{color:#645a6a;max-width:780px;font-size:clamp(16px,1.6vw,19px);line-height:1.65;margin-bottom:22px}
.ps-kicker{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:var(--ps-pink)}
.ps-editor-content{padding:65px 0 85px;max-width:min(800px,calc(100% - 40px));color:#453a4b}
.ps-editor-content h2{font-size:clamp(27px,3vw,38px);margin:40px 0 16px;color:#2b0a3a}
.ps-editor-content h3{font-size:24px;margin:32px 0 12px;color:#350d47}
.ps-editor-content p,.ps-editor-content li{font-size:16px;line-height:1.85}
.ps-editor-content ul,.ps-editor-content ol{padding-left:23px}
.ps-editor-content li{margin-bottom:10px}
.ps-editor-content a{text-decoration:underline;text-underline-offset:4px}
.ps-page-cta{background:#430166;color:#fff;padding:68px 0;text-align:left}
.ps-page-cta h2{color:#fff;font-size:clamp(30px,3.8vw,48px);max-width:750px;line-height:1.15}
.ps-page-cta p{max-width:630px;color:#f0e2f4;margin:0 0 26px;font-size:15px}
.ps-standard .ps-action-link{display:inline-flex;align-items:center;justify-content:center;background:#fa0594;color:#fff!important;padding:15px 23px;min-height:52px;border-radius:4px;font-size:12px;letter-spacing:.035em;text-transform:uppercase;font-weight:800;text-decoration:none}
.ps-standard .ps-action-link:hover,.ps-standard .ps-action-link:focus-visible{background:#b5006a}
.ps-site-footer{background:#240034;color:#eee0f5;padding:46px 0 22px;font-size:13px}
.ps-footer-main{display:flex;gap:35px;justify-content:space-between}
.ps-footer-main strong{font-size:20px;color:#fff}
.ps-footer-main p{max-width:370px;color:#d4c5dd;margin:8px 0}
.ps-footer-links{display:flex;flex-wrap:wrap;gap:12px 22px;align-content:start;max-width:480px}
.ps-footer-links a{font-size:12px;color:#eee0f5!important}
.ps-footer-base{border-top:1px solid #4a205b;padding-top:22px;margin-top:35px;font-size:11px;color:#d2c6d8}
.ps-book-top{padding:63px 0 54px;background:#faf7fc;border-bottom:1px solid #e8dceb}
.ps-book-top h1{font-size:clamp(37px,4.8vw,64px);color:#290e36;line-height:1.1;max-width:940px;margin:13px 0 16px}
.ps-book-top p{font-size:16px;color:#5a5161;max-width:850px;line-height:1.75;margin:0}
.ps-book-layout{display:grid;grid-template-columns:0.85fr 1.15fr;gap:80px;padding-top:72px;padding-bottom:100px;align-items:start}
.ps-book-aside{position:sticky;top:120px}
.ps-book-aside h2{font-size:clamp(27px,3.3vw,40px);color:#2d103c;margin:0 0 32px}
.ps-book-aside ol{list-style:none;counter-reset:step;margin:0;padding:0}
.ps-book-aside li{counter-increment:step;position:relative;padding:0 0 29px 53px}
.ps-book-aside li:before{content:'0' counter(step);position:absolute;top:1px;left:0;font-size:13px;font-weight:800;color:var(--ps-pink)}
.ps-book-aside li strong{font-weight:700;font-size:15px;line-height:1.5;color:#302339}
.ps-book-aside li p{font-size:13px;line-height:1.7;color:#69606f;margin:6px 0 0}
.ps-book-reassurance{background:#f7f0f9;border-left:4px solid var(--ps-pink);padding:20px 24px;margin-top:10px}
.ps-book-reassurance strong{font-size:14px;color:#3a1948}
.ps-book-reassurance p{font-size:13px;line-height:1.6;color:#63556b;margin:5px 0 0}
.ps-book-form-panel{background:#fff;border:1px solid #e5dcea;box-shadow:0 24px 65px rgba(61,8,79,.08);padding:37px;border-radius:5px}
.ps-book-form-panel h2{font-size:clamp(29px,3vw,40px);color:#280e36;margin:8px 0 9px}
.ps-book-form-panel>p{font-size:13px;color:#675c6d;line-height:1.7;margin-bottom:26px}
.ps-appointment-form{display:grid;gap:19px}
.ps-appointment-form label{font-size:12px;font-weight:700;line-height:1.55;color:#382b40;display:block}
.ps-appointment-form label>span:not(.ps-optional){color:#b2006b}
.ps-appointment-form input:not([type=checkbox]),.ps-appointment-form textarea,.ps-appointment-form select{display:block;box-sizing:border-box;width:100%;max-width:100%;margin-top:8px;min-height:48px;border:1px solid #d2c6d6;border-radius:3px;padding:11px 12px;background:#fff;color:#281c31;font-family:Poppins,Arial,sans-serif;font-weight:400;font-size:13px}
.ps-appointment-form textarea{min-height:128px;resize:vertical}
.ps-appointment-form input:focus,.ps-appointment-form select:focus,.ps-appointment-form textarea:focus{outline:2px solid var(--ps-pink);outline-offset:2px}
.ps-two-field{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ps-appointment-form .ps-optional{color:#807687;font-size:10px;font-weight:400}
.ps-appointment-form .ps-check{display:flex;gap:11px;align-items:flex-start;font-size:11px;font-weight:400;line-height:1.65;color:#625568}
.ps-appointment-form .ps-check input{margin:3px 0 0;accent-color:var(--ps-purple);height:17px;width:17px;flex:0 0 auto}
.ps-appointment-form .ps-check span{color:inherit!important}
.ps-appointment-form .ps-check a{text-decoration:underline}
.ps-appointment-form .ps-trap,.ps-trap{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}
.ps-submit-button{border:0;background:var(--ps-pink);color:#fff;min-height:54px;padding:14px 24px;font-family:Poppins,Arial,sans-serif;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.025em;cursor:pointer;border-radius:4px}
.ps-submit-button:hover,.ps-submit-button:focus-visible{background:var(--ps-purple)}
.ps-form-footnote{font-size:11px;line-height:1.65;color:#7f7484;margin:0}
.ps-form-error{font-size:13px;background:#fff2f4;color:#81162e;border-left:3px solid #bd2448;padding:15px;margin-bottom:20px}
.ps-booking-result{background:#f3faf6;border-left:4px solid #24875b;padding:24px}
.ps-booking-result h2{font-size:28px;color:#17462f}
.ps-booking-result p{font-size:14px}
.ps-booking-online{background:#faf4ff;padding:19px;margin:0 0 26px}
.ps-booking-online p{font-size:13px}
.ps-booking-online .ps-action-link{margin-top:9px}
.ps-service-archive{padding:74px 0 90px}
.ps-service-archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ps-service-tile{border:1px solid #e1d7e5;background:#fff;padding:28px;min-height:310px;display:flex;flex-direction:column}
.ps-service-tile h2{font-size:23px;margin:17px 0 14px;line-height:1.3}
.ps-service-tile h2 a{text-decoration:none;color:#32133f}
.ps-service-tile p{font-size:14px;color:#695d70;line-height:1.75;flex:1}
.ps-service-tile .ps-inline-link{font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.ps-back{display:inline-block;margin-bottom:26px;color:var(--ps-purple);font-size:12px;text-decoration:underline;text-underline-offset:4px}
.ps-back:before{content:'← ';color:var(--ps-pink)}
@media(max-width:1020px){
.ps-site-links{gap:12px}.ps-site-logo img{width:155px}
.ps-book-layout{gap:38px}
.ps-service-archive-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
.ps-container{width:calc(100% - 28px)}
.ps-site-nav{min-height:70px;gap:10px}
.ps-site-links{display:none}
.ps-site-logo img{width:143px}
.ps-header-book{margin-left:auto;padding:10px 11px;font-size:9px;min-height:40px}
.ps-book-top{padding:48px 0}
.ps-book-layout{grid-template-columns:1fr;gap:37px;padding:47px 0 65px}
.ps-book-aside{position:static}
.ps-book-aside h2{margin-bottom:23px}
.ps-book-aside li{padding-bottom:18px}
.ps-book-form-panel{padding:23px 19px}
.ps-page-hero{padding:55px 0}
.ps-editor-content{padding:48px 0 60px}
.ps-page-cta{padding:53px 0}
.ps-service-archive-grid{grid-template-columns:1fr}
.ps-service-archive{padding:49px 0}
.ps-service-tile{min-height:0}
.ps-footer-main{flex-direction:column;gap:22px}
}
@media(max-width:480px){
.ps-two-field{grid-template-columns:1fr;gap:18px}
.ps-site-logo img{width:133px}
.ps-header-book{max-width:177px;white-space:normal;text-align:center}
}

.ps-footer-base{line-height:1.75}
.ps-footer-base a{color:#f0ddea!important;text-decoration:underline;text-underline-offset:3px}
.ps-form-privacy,.ps-enquiry-form .ps-form-privacy{font-size:12px;color:#675a6e;line-height:1.65;background:#f8f3fa;border-left:3px solid var(--ps-pink);padding:12px;margin:2px 0}
.ps-form-privacy a{color:var(--ps-purple);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* Shared navigation and properly proportioned high-resolution Professional Structures logo. */
.ps-site-header{position:sticky;top:0;z-index:90;background:#fff;border-bottom:1px solid #ece5ef}
.ps-container{width:min(1160px,calc(100% - 40px));margin:0 auto}
.ps-site-nav{display:flex;align-items:center;gap:24px;min-height:96px}
.ps-site-logo{display:flex;align-items:center;flex:0 0 180px;width:180px;text-decoration:none}
.ps-site-logo img{display:block;width:180px;height:auto;max-width:100%;object-fit:contain;image-rendering:auto}
.ps-site-links{display:flex;align-items:center;gap:27px;margin-left:auto}
.ps-site-links a{color:#4b3b53!important;font-size:12px;line-height:1.5;font-weight:650;text-decoration:none;white-space:nowrap}
.ps-site-links a:hover,.ps-site-links a:focus-visible{color:#fa0594!important;text-decoration:underline;text-underline-offset:6px}
.ps-header-book{background:#430166;color:#fff!important;display:inline-flex;justify-content:center;align-items:center;text-align:center;padding:13px 19px;min-height:44px;border-radius:6px;font-size:11px;line-height:1.4;font-weight:800;text-transform:uppercase;letter-spacing:.025em;text-decoration:none;white-space:nowrap}
.ps-header-book:hover,.ps-header-book:focus-visible{background:#fa0594;color:#fff!important}
.ps-menu-toggle{display:none;align-items:center;justify-content:center;gap:9px;color:#430166;background:#fff;border:1px solid #b69bc2;border-radius:5px;padding:10px 13px;min-height:44px;font:700 12px Poppins,Arial,sans-serif;cursor:pointer}
.ps-menu-toggle:focus-visible,.ps-header-book:focus-visible,.ps-board-next:focus-visible{outline:3px solid #fa0594;outline-offset:3px}
.ps-menu-icon{width:19px;display:grid;gap:4px}
.ps-menu-icon i{display:block;width:19px;height:2px;background:#430166;border-radius:2px}
.ps-menu-toggle[aria-expanded="true"] .ps-menu-icon i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.ps-menu-toggle[aria-expanded="true"] .ps-menu-icon i:nth-child(2){opacity:0}
.ps-menu-toggle[aria-expanded="true"] .ps-menu-icon i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1060px){
 .ps-site-nav{gap:12px;position:relative}
 .ps-menu-toggle{display:inline-flex;margin-left:auto}
 .ps-site-links{display:none;position:absolute;z-index:100;left:0;right:0;top:calc(100% - 1px);margin:0;background:white;border:1px solid #e6d9eb;border-top:2px solid #fa0594;box-shadow:0 18px 30px rgba(38,9,53,.14);padding:10px 16px;flex-direction:column;align-items:stretch;gap:0}
 .ps-site-links.is-open{display:flex}
 .ps-site-links a{display:block;padding:13px 8px;border-bottom:1px solid #f0e8f2;font-size:14px}
 .ps-site-links a:last-child{border-bottom:0}
 .ps-header-book{margin-left:0}
}
@media(max-width:650px){
 .ps-container{width:calc(100% - 28px)}
 .ps-site-nav{min-height:85px;gap:9px}
 .ps-site-logo{flex:0 1 155px;width:155px}
 .ps-site-logo img{width:155px;max-width:100%;height:auto}
 .ps-menu-toggle{margin-left:auto;min-height:43px;padding:9px}
 .ps-menu-label{font-size:11px}
 .ps-header-book{padding:9px 11px;max-width:175px;white-space:normal;min-height:44px;font-size:10px}
}
@media(max-width:390px){
 .ps-site-nav{gap:7px}
 .ps-site-logo{flex:0 1 125px;min-width:115px;width:125px}
 .ps-site-logo img{width:125px}
 .ps-menu-toggle{padding:8px;min-width:43px}
 .ps-menu-label{display:none}
 .ps-header-book{max-width:124px;padding:8px 7px;font-size:9px;letter-spacing:0;line-height:1.3;flex:0 1 124px}
}

/* Board now produces a meaningful, portable consultation brief. */
.centre{min-height:252px}
.centre h2{font-size:clamp(23px,2.1vw,29px);line-height:1.17;margin:13px 0 10px}
.centre .ps-board-focus{margin:11px 0 10px;font-size:11px;font-weight:600;line-height:1.5;color:#55445c;overflow-wrap:anywhere}
.ps-board-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:11px}
.ps-board-next{display:inline-flex;align-items:center;justify-content:center;min-height:41px;padding:10px 12px;border-radius:5px;background:#430166;color:#fff!important;font-size:10px;font-weight:800;line-height:1.4;text-decoration:none;text-align:center}
.ps-board-next:hover{background:#fa0594}
.ps-board-reset{border:0;background:transparent;color:#430166;font-family:Poppins,Arial,sans-serif;font-size:10px;font-weight:700;text-decoration:underline;cursor:pointer;padding:8px 0}
.ps-board-reset[hidden]{display:none!important}
@media(max-width:650px){
 .workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;min-height:0;gap:10px;padding:54px 12px 12px;overflow:visible}
 .workspace .connector{display:none}
 .workspace .note{position:static!important;transform:none!important;width:100%!important;min-height:82px!important;margin:0;padding:11px 10px;z-index:2}
 .workspace .note b{font-size:16px;line-height:1.16;overflow-wrap:anywhere}
 .workspace .note small{font-size:9px;line-height:1.45}
 .workspace .centre{position:static!important;left:auto!important;top:auto!important;transform:none!important;grid-column:1/-1;min-height:0;width:100%!important;max-width:100%;padding:20px;z-index:3;box-shadow:0 6px 18px rgba(67,1,102,.1)}
 .workspace .centre h2{font-size:24px}
 .workspace .tip{top:10px;left:12px;right:12px;bottom:auto;transform:none;text-align:center;z-index:4;font-size:9px}
 .ps-board-actions{gap:12px}
 .ps-board-next{font-size:11px}
}

/* Single compact legal footer on the homepage and every internal page. */
.ps-site-footer{background:#240034;color:#e9dfed;padding:29px 0 23px;font-size:12px}
.ps-site-footer .ps-footer-main{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:23px}
.ps-site-footer .ps-copyright{color:#fff;font-size:12px;font-weight:600;line-height:1.6;margin:0;max-width:none}
.ps-site-footer .ps-footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;max-width:none}
.ps-site-footer .ps-footer-links a{color:#fff!important;font-size:12px;text-decoration:none}
.ps-site-footer .ps-footer-links a:hover,.ps-site-footer .ps-footer-links a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.ps-site-footer .ps-site-credit{color:#d9c9df;font-size:12px}
.ps-site-footer .ps-site-credit a{font-weight:800;text-decoration:underline;text-underline-offset:4px}
.ps-site-footer .ps-footer-base{margin-top:0;padding-top:17px;border-top:1px solid #523260;color:#d7c9dd;font-size:10px;line-height:1.65}
@media(max-width:650px){
 .ps-site-footer .ps-footer-main{flex-direction:column;align-items:flex-start;gap:15px}
 .ps-site-footer .ps-footer-links{gap:12px 20px}
}

/* The Blueprint brief travels from the home board into the booking request. */
.ps-selected-brief{background:#f7f0fa;border-left:4px solid #fa0594;padding:20px 22px;margin:0 0 24px;color:#49344f}
.ps-selected-brief .ps-kicker{color:#8c1263;font-size:10px}
.ps-selected-brief h3{font-size:19px;line-height:1.35;color:#350a49;margin:10px 0 12px}
.ps-selected-brief .ps-selected-areas{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 14px}
.ps-selected-brief .ps-selected-areas li{display:inline-flex;align-items:center;padding:5px 9px;background:#fff;border:1px solid #decfe4;border-radius:5px;color:#430166;font-size:12px;font-weight:700}
.ps-selected-brief p{font-size:12px;line-height:1.6;margin:0 0 10px;color:#5e4d64}
.ps-selected-brief a{font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px;color:#430166}

.workspace{scroll-margin-top:115px}
