/* Approved local refinement: page-specific Waterloo imagery is defined in each source page. */
.hero-overlay { background: linear-gradient(90deg,rgba(31,40,57,.9),rgba(31,40,57,.35)); }
.hero-content { max-width:960px; }
.hero h1 { max-width:960px; }
.btn-gold, .btn-gold:hover { color:var(--navy); }
.why-desc { color:rgba(255,255,255,.8); }
.brand-panel { min-height:360px; padding:48px 32px; background:var(--navy); border:1px solid var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:36px; text-align:center; border-radius:4px; }
.brand-panel img { width:100%; max-width:340px; height:auto; object-fit:contain; }
.brand-panel span { color:var(--gold); font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.partner-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.partner-card { background:var(--white); border:1px solid var(--gray); border-top:3px solid var(--gold); padding:36px; scroll-margin-top:120px; }
.partner-mark { width:84px; height:84px; display:flex; justify-content:center; align-items:center; color:var(--gold); background:var(--navy); border:1px solid var(--gold); font-family:'Oswald',sans-serif; font-size:30px; letter-spacing:.06em; margin-bottom:24px; }
.partner-card h2,.partner-card h3 { font-family:'Oswald',sans-serif; color:var(--navy); font-size:28px; margin:8px 0 16px; }
.partner-card p { color:var(--text-lt); line-height:1.8; margin-bottom:18px; }
.partner-card a { color:var(--gold-dk); font-weight:600; }
.team-contact { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding-top:18px; border-top:1px solid var(--gray); color:var(--text-lt); font-size:14px; line-height:1.55; }
.team-contact a:hover { color:var(--gold); }
.team-heading { max-width:720px; margin:72px auto 32px; text-align:center; }
.team-heading h2 { font-family:'Oswald',sans-serif; color:var(--navy); font-size:clamp(28px,3vw,38px); text-transform:uppercase; letter-spacing:.02em; }
.staff-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.staff-card { padding:30px; }
.staff-card .partner-mark { width:68px; height:68px; font-size:24px; margin-bottom:20px; }
.staff-card h3 { font-size:24px; margin-bottom:20px; }
.hero ~ .prose-section { padding:72px 0; background:var(--white); }
.hero ~ .prose-section .prose { max-width:820px; margin:0 auto; }
.hero ~ .prose-section .prose-cta { background:var(--navy); padding:40px; border-top:3px solid var(--gold); }
.hero ~ .prose-section .prose-cta h3 { font-family:'Oswald',sans-serif; font-size:28px; text-transform:uppercase; color:var(--white); margin-bottom:16px; }
.hero ~ .prose-section .prose-cta p { color:rgba(255,255,255,.8); line-height:1.8; margin-bottom:24px; }
.map-fallback { padding:18px 24px; background:var(--navy); text-align:center; margin:0; }
.map-fallback a { color:var(--white); text-decoration:underline; line-height:1.6; }
.areas { text-align:center; }
.areas p { max-width:740px; margin:16px auto 0; }
@media(max-width:980px) { .staff-grid { grid-template-columns:1fr; } }
@media(max-width:768px) { .partner-grid { grid-template-columns:1fr; } .partner-card { padding:28px; } .brand-panel { min-height:260px; padding:32px 24px; } .team-heading { margin-top:56px; } }

/* Partner profile pages and homepage relationship-panel alignment. */
.about .about-inner { align-items:end; }
.page-hero.profile-hero { background-image:none; background-color:var(--navy); }
.profile-section { padding:80px 0 96px; background:var(--off-white); }
.profile-grid { display:grid; grid-template-columns:minmax(260px,340px) minmax(0,1fr); gap:64px; align-items:start; }
.profile-portrait { aspect-ratio:4/5; display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg,var(--navy),var(--navy-lt)); border:1px solid var(--gold); border-bottom:5px solid var(--gold); color:var(--gold); font-family:'Oswald',sans-serif; font-size:clamp(64px,9vw,112px); font-weight:600; letter-spacing:.08em; }
.profile-copy h2 { font-family:'Oswald',sans-serif; color:var(--navy); font-size:clamp(28px,4vw,42px); line-height:1.15; text-transform:uppercase; margin-bottom:22px; }
.profile-copy h3 { font-family:'Oswald',sans-serif; color:var(--navy); font-size:23px; text-transform:uppercase; margin:34px 0 14px; }
.profile-copy p { color:var(--text-lt); line-height:1.85; margin-bottom:18px; }
.profile-credentials { color:var(--navy); font-weight:600; margin-bottom:26px; }
.profile-practices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; list-style:none; margin:0 0 28px; }
.profile-practices li { border-bottom:1px solid var(--gray); padding:10px 0; color:var(--text-lt); }
.profile-contact { margin-top:34px; padding:26px; background:var(--navy); border-top:3px solid var(--gold); color:rgba(255,255,255,.8); display:flex; flex-wrap:wrap; gap:12px 28px; }
.profile-contact a { color:var(--white); font-weight:600; }
.profile-contact a:hover { color:var(--gold); }
@media(max-width:760px) { .profile-section { padding:56px 0 72px; } .profile-grid { grid-template-columns:1fr; gap:38px; } .profile-portrait { width:min(100%,340px); } .profile-practices { grid-template-columns:1fr; } }
