body.modal-open{overflow:hidden}
.directory-section{background:#fff}
.directory-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:end}
.directory-heading>p{max-width:520px;margin-bottom:4px;color:var(--muted);font-size:18px;line-height:1.7}
.directory-heading h2 em{display:inline;color:var(--orange)}
.directory-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-top:55px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.member-search{display:grid;gap:8px;width:min(100%,390px);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.member-search input{width:100%;height:48px;padding:0 16px;border:1px solid var(--line);outline:0;background:var(--ivory);color:var(--ink);font-size:15px}
.member-search input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(230,91,22,.1)}
.member-filters{display:flex;flex-wrap:wrap;gap:8px}
.member-filters button{padding:12px 15px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.member-filters button:hover,.member-filters button.active{border-color:var(--navy);background:var(--navy);color:#fff}
.directory-meta{display:flex;justify-content:space-between;padding:22px 0;color:var(--muted);font-size:12px}
.directory-meta p{margin:0}.directory-meta strong{color:var(--orange)}
.member-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.member-card{min-width:0;min-height:330px;display:flex;flex-direction:column;padding:26px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;text-align:left;color:var(--ink);cursor:pointer;transition:.25s;overflow:hidden}
.member-card:hover{z-index:1;background:var(--ivory);box-shadow:inset 0 -4px var(--orange)}
.member-logo{height:112px;display:flex;flex:none;align-items:center;justify-content:center;margin-bottom:22px;padding:16px;background:#fff;overflow:hidden}
.member-logo img{display:block;width:auto;height:auto;max-width:100%;max-height:78px;object-fit:contain}
.member-category{min-height:16px;margin-bottom:10px;color:var(--orange);font-size:9px;font-weight:800;line-height:1.4;letter-spacing:.15em;text-transform:uppercase}
.member-card h3{min-height:58px;margin:0 0 10px;color:var(--navy);font-size:22px;line-height:1.18;overflow-wrap:anywhere}
.member-card-footer{min-height:38px;display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-top:auto;padding-top:14px}
.member-card-footer span{color:var(--muted);font-size:11px}.member-card-footer b{color:var(--navy);font-size:18px}
.directory-empty{padding:60px;border:1px solid var(--line);text-align:center;color:var(--muted)}
.member-modal{position:fixed;z-index:1000;inset:0}.member-modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(2,18,31,.82);backdrop-filter:blur(4px)}
.modal-panel{position:absolute;inset:50% auto auto 50%;width:min(calc(100% - 32px),1000px);max-height:calc(100vh - 40px);display:grid;grid-template-columns:.9fr 1.1fr;overflow:auto;transform:translate(-50%,-50%);background:#fff;box-shadow:0 30px 100px rgba(0,0,0,.3)}
.modal-close{position:absolute;z-index:2;top:14px;right:18px;width:42px;height:42px;border:0;background:var(--navy);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.modal-profile{padding:55px;background:var(--ivory)}
.modal-logo{height:130px;display:grid;place-items:center;padding:18px;background:#fff;border:1px solid var(--line)}
.modal-logo img{width:100%;height:100%;object-fit:contain}
.modal-category{margin:30px 0 12px;color:var(--orange);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.modal-profile h2{margin:0;color:var(--navy);font-size:43px;line-height:1}
.modal-sector{margin:14px 0;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.modal-description{color:var(--muted);line-height:1.7}
.company-site{display:inline-block;margin-top:15px;padding-bottom:5px;border-bottom:1px solid var(--navy);color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.enquiry-form{display:grid;gap:15px;padding:55px}.enquiry-form .kicker{margin:0}
.enquiry-form h3{margin:0 0 10px;color:var(--navy);font-size:36px}
.enquiry-form label{display:grid;gap:7px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;padding:13px 14px;border:1px solid var(--line);outline:0;background:#fff;color:var(--ink);font:14px Arial,sans-serif}
.enquiry-form textarea{resize:vertical}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-color:var(--orange)}
.enquiry-form button{border:0;cursor:pointer}.enquiry-form small{color:var(--muted);font-size:11px;line-height:1.5;text-transform:none;letter-spacing:0}
@media(max-width:1120px){.member-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.directory-heading{grid-template-columns:1fr;gap:25px}.directory-toolbar{align-items:stretch;flex-direction:column}.member-search{width:100%}.member-grid{grid-template-columns:repeat(2,1fr)}.member-card{min-height:310px;padding:18px}.member-logo{height:100px;margin-bottom:18px}.member-logo img{max-height:70px}.member-card h3{min-height:52px;font-size:20px}.modal-panel{grid-template-columns:1fr}.modal-profile,.enquiry-form{padding:34px 24px}.modal-profile h2{font-size:36px}}
@media(max-width:480px){.member-grid{grid-template-columns:1fr}.directory-meta p:last-child{display:none}}
