/* Devol Legal aesthetic refinement — July 2026
   Editorial public-law practice: midnight, bone and restrained oxblood. */

:root {
  --midnight-2:#0b0b0b;
  --bone-bright:#ffffff;
  --paper:#f5f5f5;
  --oxblood-soft:#ffffff;
  --shadow-editorial:0 24px 80px rgba(0,0,0,.24);
  --shadow-float:0 14px 38px rgba(0,0,0,.2);
}

body {
  background:var(--bone-bright);
  text-rendering:optimizeLegibility;
}

.site-main { overflow:hidden; }

/* Refined navigation */
header {
  background:rgba(251,248,241,.94);
  border-bottom-color:rgba(10,10,10,.09);
}
header.scrolled { box-shadow:0 12px 35px rgba(7,7,7,.07); }
nav { max-width:1360px; padding:.82rem 2.25rem; }
.logo-lockup { gap:.72rem; }
.logo-lockup .bm-mono {
  width:48px;
  height:48px;
  font-size:1.48rem;
  border-left-width:3px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
}
.logo-lockup .bm-name { font-size:1.28rem; letter-spacing:.13em; }
.logo-lockup .bm-tag { font-size:.49rem; letter-spacing:.19em; }
#nav-links { gap:1.25rem; }
#nav-links a { font-size:.655rem; letter-spacing:.105em; }
#nav-links a:hover,
#nav-links a[aria-current="page"] { color:var(--oxblood); }
.nav-cta {
  padding:.72rem 1.18rem;
  border-radius:999px;
  box-shadow:0 8px 24px rgba(255,255,255,.08);
}

/* Regulatory status */
.regulatory-badge {
  display:inline-flex;
  align-items:center;
  gap:.72rem;
  padding:.58rem .86rem;
  border:1px solid rgba(255,255,255,.26);
  color:rgba(255,255,255,.86);
  text-decoration:none;
  font-size:.67rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(8px);
}
.regulatory-badge span {
  display:inline-grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border:1px solid var(--oxblood-soft);
  color:var(--bone);
  font-family:var(--serif);
  font-size:.8rem;
  letter-spacing:.04em;
}
.regulatory-badge:hover { background:rgba(255,255,255,.10); color:var(--bone); }
.page-regulatory {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin-top:1.55rem;
  color:var(--slate);
  font-size:.72rem;
  letter-spacing:.095em;
  text-transform:uppercase;
  text-decoration:none;
}
.page-regulatory::before {
  content:'BSB';
  display:inline-grid;
  place-items:center;
  width:2rem;
  height:2rem;
  color:var(--bone);
  background:var(--oxblood);
  font-family:var(--serif);
  letter-spacing:.04em;
}
.page-regulatory:hover { color:var(--oxblood); }

/* Homepage hero: stronger, quieter and more distinctive */
.home-page .hero-center {
  min-height:92vh;
  padding:9.5rem 3rem 6.5rem;
  background:
    linear-gradient(135deg, rgba(255,255,255,.035) 0, transparent 34%),
    radial-gradient(circle at 84% 20%, rgba(255,255,255,.025), transparent 32%),
    var(--midnight-2);
  text-align:left;
}
.home-page .hero-center::before {
  display:block;
  content:'';
  position:absolute;
  inset:7.7rem 2rem 2rem;
  border:1px solid rgba(255,255,255,.09);
  pointer-events:none;
}
.home-page .hero-center::after {
  display:block;
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:34%;
  height:5px;
  background:var(--oxblood);
}
.home-page .hero-inner {
  width:100%;
  max-width:1260px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.55fr);
  grid-template-areas:
    "lockup badge"
    "rule badge"
    "title badge"
    "sub badge"
    "actions badge"
    "trust badge"
    "creds creds";
  column-gap:5rem;
  align-items:center;
  position:relative;
  z-index:1;
}
.home-page .hero-lockup { grid-area:lockup; align-items:flex-start; margin-bottom:1.55rem; }
.home-page .hero-wordmark {
  color:var(--bone);
  font-size:clamp(3.6rem,7vw,7rem);
  letter-spacing:.065em;
}
.home-page .hero-strapline { color:rgba(255,255,255,.58); text-align:left; letter-spacing:.31em; }
.home-page .hero-rule { grid-area:rule; margin:0 0 2.2rem; width:72px; }
.home-page .hero-center h1 {
  grid-area:title;
  max-width:860px;
  margin:0 0 1.65rem;
  color:var(--bone);
  font-size:clamp(2.05rem,3.7vw,4.05rem);
  line-height:1.08;
  font-weight:500;
  letter-spacing:-.025em;
}
.home-page .hero-center h1 em { color:#ffffff; }
.home-page .hero-sub {
  grid-area:sub;
  max-width:760px;
  margin:0 0 2.5rem;
  color:rgba(255,255,255,.70);
  font-size:1.05rem;
  line-height:1.82;
}
.home-page .hero-actions { grid-area:actions; justify-content:flex-start; }
.home-page .hero-actions .btn-primary { background:var(--bone); border-color:var(--bone); color:var(--midnight); }
.home-page .hero-actions .btn-primary:hover { background:var(--oxblood); border-color:var(--oxblood); color:var(--bone); }
.home-page .hero-actions .btn-secondary { color:var(--bone); border-color:rgba(255,255,255,.45); }
.home-page .hero-actions .btn-secondary:hover { background:var(--bone); color:var(--midnight); }
.home-page .hero-trust { grid-area:trust; margin:1.8rem 0 0; color:rgba(255,255,255,.48); }
.home-page .hero-credentials {
  grid-area:creds;
  justify-content:flex-start;
  margin-top:4rem;
  gap:0;
  border-top:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.home-page .hero-cred {
  flex:1 1 180px;
  padding:1.1rem 1.4rem;
  border-top:0;
  border-right:1px solid rgba(255,255,255,.12);
}
.home-page .hero-cred:first-child { padding-left:0; }
.home-page .hero-cred:last-child { border-right:0; }
.home-page .hero-cred-num { color:rgba(255,255,255,.78); }
.home-page .hero-bsb-panel {
  grid-area:badge;
  align-self:center;
  border-left:1px solid rgba(255,255,255,.14);
  padding-left:2.5rem;
}
.home-page .hero-bsb-panel p {
  margin:1.5rem 0 0;
  color:rgba(255,255,255,.54);
  font-size:.86rem;
  line-height:1.75;
  max-width:300px;
}
.home-page .hero-bsb-panel strong { color:var(--bone); font-weight:500; }

/* Stronger section rhythm */
.home-page section:not(.hero-center) { position:relative; }
.home-page .stat-strip { background:var(--paper); border-bottom:1px solid var(--rule-bone); }
.home-page .practice,
.home-page .comparison-section,
.home-page .cases-preview,
.home-page .approach { padding:7rem 0; }
.home-page .why-section,
.home-page .policy-unit-section,
.home-page .diagnostic-feature { padding:7.5rem 0; }
.section-label { color:var(--oxblood); font-weight:600; }
.section-title { font-size:clamp(2.15rem,3.8vw,3.7rem); line-height:1.08; }
.section-header { max-width:820px; margin-bottom:4.5rem; }
.section-sub { font-size:1rem; max-width:720px; }

.practice-grid,
.case-grid,
.comparison-grid { gap:1rem; background:transparent; }
.practice-card,
.case-card,
.comparison-card,
.service-hub-card {
  border:1px solid rgba(10,10,10,.11);
  box-shadow:none;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease, background .3s ease;
}
.practice-card:hover,
.case-card:hover,
.comparison-card:hover,
.service-hub-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-float);
  border-color:rgba(255,255,255,.26);
  background:var(--bone-bright);
}
.practice-card { padding:2.65rem; }
.practice-icon { width:48px; height:48px; background:var(--midnight); }
.practice-card h3 { font-size:1.5rem; }
.card-link { margin-top:1.3rem; }

.comparison-section { background:var(--midnight); }
.comparison-section .section-title,
.comparison-section .section-sub { color:var(--bone); }
.comparison-section .section-label { color:#ffffff; }
.comparison-card { background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.12); }
.comparison-card h3 { color:var(--bone); }
.comparison-card p { color:rgba(255,255,255,.62); }
.comparison-card.highlight { background:var(--bone); }
.comparison-card.highlight h3 { color:var(--midnight); }
.comparison-card.highlight p { color:var(--slate); }

.cases-preview .case-card { overflow:hidden; }
.case-header { min-height:170px; }
.case-body { padding:2.35rem; }
.case-body h3 { font-size:1.5rem; }

/* Inner pages */
.page-hero {
  padding:10.5rem 3rem 5.3rem;
  background:
    linear-gradient(110deg, rgba(255,255,255,.035), transparent 35%),
    var(--paper);
}
.page-hero::after {
  content:'';
  position:absolute;
  right:-6rem;
  bottom:-10rem;
  width:24rem;
  height:24rem;
  border:1px solid rgba(255,255,255,.10);
  transform:rotate(45deg);
}
.page-title { font-size:clamp(3rem,6vw,5.3rem); max-width:930px; line-height:.98; }
.page-intro { max-width:820px; font-size:1.08rem; }
.content-section { padding:7rem 3rem; }
.content-narrow { max-width:820px; }
.content-narrow p,
.case-study-full p,
.team-member p { font-size:1rem; line-height:1.9; }

/* Services as editorial dossiers */
.services-page .service-pillar {
  padding:3.2rem 0;
  display:grid;
  grid-template-columns:minmax(220px,.52fr) minmax(0,1fr);
  gap:4.2rem;
  align-items:start;
}
.services-page .service-pillar > h3,
.services-page .service-pillar > h2 { position:sticky; top:8rem; }
.services-page .service-hub-card { background:var(--bone-bright); padding:2.4rem; }
.services-page .service-hub-card h2 { font-size:1.55rem; }

/* Case studies: formal, numbered case files */
.case-studies-page .case-index {
  border:1px solid var(--rule-bone);
  background:var(--paper);
  padding:.75rem;
  margin-bottom:3.25rem;
}
.case-studies-page .case-index a { border-bottom:0; }
.case-studies-page .case-study-full {
  position:relative;
  padding:2.65rem 0 3.1rem 6rem;
  margin:0;
  border-bottom:1px solid var(--rule-bone);
}
.case-studies-page .case-study-full::before {
  content:attr(data-case-number);
  position:absolute;
  left:0;
  top:2.75rem;
  color:rgba(255,255,255,.19);
  font-family:var(--serif);
  font-size:4.1rem;
  line-height:1;
}
.case-studies-page .case-study-full h2 { font-size:clamp(1.85rem,2.8vw,2.65rem); }
.case-studies-page .case-study-full h3 { margin:1.35rem 0 .45rem; }
.case-studies-page .case-study-full p { line-height:1.78; margin-bottom:.65rem; }
.case-studies-page .case-deliverables {
  background:var(--midnight);
  border-left:5px solid var(--oxblood);
  color:var(--bone);
  padding:1.5rem 1.8rem;
  margin:1.25rem 0;
}
.case-studies-page .case-deliverables h4 { color:var(--bone); margin-bottom:.7rem; }
.case-studies-page .case-deliverables li { color:rgba(255,255,255,.75); }
.case-studies-page .case-why {
  background:var(--paper);
  border-left-color:var(--oxblood);
  margin-top:1.25rem;
  padding:1.1rem 1.3rem;
}

.case-studies-page .content-section { padding-block:3.5rem; }

/* Keep the Insights cards close to their text instead of filling tall rows. */
.insights-grid {
  align-items:start;
  gap:.75rem;
  background:transparent;
}
.insight-card {
  align-self:start;
  padding:2rem 2.1rem;
  border:1px solid var(--rule-night);
}
.insight-card p { margin-bottom:.65rem; }

/* Sole-practice profile */
.team-page .team-full { max-width:1100px; }
.team-page .team-member {
  border:0;
  background:transparent;
  padding:0;
}
.team-page .team-member-header {
  display:grid;
  grid-template-columns:minmax(280px,.62fr) minmax(0,1fr);
  gap:4rem;
  align-items:center;
  padding-bottom:3.6rem;
  border-bottom:1px solid var(--rule-bone);
}
.team-page .team-headshot {
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  border-radius:0;
  box-shadow:var(--shadow-editorial);
}
.team-page .team-headshot::after {
  inset:auto -1.1rem -1.1rem 1.1rem;
  height:45%;
  border:1px solid rgba(255,255,255,.35);
  border-top:0;
  background:transparent;
  z-index:-1;
}
.team-page .team-member h2 { font-size:clamp(3rem,6vw,5rem); line-height:.95; }
.team-page .team-role-lg { font-size:.78rem; letter-spacing:.18em; }
.team-page .team-member-intro { font-size:1.18rem; max-width:620px; }
.team-page .profile-body {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(260px,.62fr);
  gap:5rem;
  padding-top:4.5rem;
}
.team-page .profile-aside {
  border-top:3px solid var(--oxblood);
  padding-top:1.5rem;
}
.team-page .profile-aside h3 { margin-top:0; }
.team-page .team-tags { margin-top:1.8rem; }
.team-page .practice-note {
  margin-top:4.5rem;
  padding:3rem;
  background:var(--midnight);
  color:var(--bone);
}
.team-page .practice-note h2 { color:var(--bone); }
.team-page .practice-note p { color:rgba(255,255,255,.72); }

/* About/contact/regulatory panels */
.about-page .content-narrow,
.regulatory-page .content-narrow { max-width:900px; }
.regulatory-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:2.5rem 0;
}
.regulatory-card {
  padding:2.2rem;
  border:1px solid var(--rule-bone);
  background:var(--paper);
}
.regulatory-card h2 { margin-top:0; font-size:1.5rem; }
.regulatory-card a { color:var(--oxblood); }
.contact-page .contact-grid { gap:5rem; }
.contact-page .contact-form { box-shadow:var(--shadow-editorial); border:1px solid rgba(10,10,10,.10); }

/* Footer with visible regulatory identity */
footer { background:var(--midnight-2); border-top:5px solid var(--oxblood); }
.footer-top { grid-template-columns:1.45fr .8fr .8fr .9fr; gap:3.4rem; }
.footer-brand p { max-width:360px; }
.footer-regulatory {
  margin-top:1.4rem;
  padding-top:1.25rem;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.68);
  font-size:.78rem;
  line-height:1.7;
}
.footer-regulatory strong { color:var(--bone); font-weight:500; }
.footer-regulatory a { color:#ffffff; }
.footer-legal-block {
  display:grid;
  grid-template-columns:1fr auto;
  gap:2rem;
  align-items:end;
}
.footer-reg-links { display:flex; flex-wrap:wrap; gap:.55rem 1.4rem; justify-content:flex-end; }
.footer-reg-links a { color:rgba(255,255,255,.62); font-size:.72rem; text-decoration:none; }
.footer-reg-links a:hover { color:var(--bone); }

/* Motion: subtle and professional */
@media (prefers-reduced-motion:no-preference) {
  .hero-wordmark { animation:dl-wordmark 1s cubic-bezier(.2,.75,.2,1) both; }
  @keyframes dl-wordmark { from { opacity:0; transform:translateY(12px); letter-spacing:.11em; } to { opacity:1; transform:none; } }
}

@media(max-width:1100px) {
  .home-page .hero-inner { grid-template-columns:1fr; grid-template-areas:"lockup" "rule" "title" "sub" "actions" "trust" "badge" "creds"; }
  .home-page .hero-bsb-panel { margin-top:3rem; padding:2rem 0 0; border-left:0; border-top:1px solid rgba(255,255,255,.14); }
  .home-page .hero-bsb-panel p { max-width:620px; }
  #nav-links { gap:.85rem; }
  #nav-links a { font-size:.61rem; }
  .footer-top { grid-template-columns:1.2fr 1fr 1fr; }
  .footer-top .footer-col:last-child { grid-column:2 / 4; }
}

@media(max-width:900px) {
  .services-page .service-pillar { grid-template-columns:1fr; gap:1.5rem; }
  .services-page .service-pillar > h3,
  .services-page .service-pillar > h2 { position:static; }
  .team-page .team-member-header,
  .team-page .profile-body { grid-template-columns:1fr; gap:2.5rem; }
  .team-page .team-headshot { max-width:500px; }
  .case-studies-page .case-study-full { padding-left:4.5rem; }
  .case-studies-page .case-study-full::before { font-size:3rem; }
  .regulatory-grid { grid-template-columns:1fr; }
  .footer-legal-block { grid-template-columns:1fr; }
  .footer-reg-links { justify-content:flex-start; }
}

@media(max-width:768px) {
  nav { padding:.7rem 1.2rem; }
  .logo-lockup .bm-mono { width:42px; height:42px; font-size:1.3rem; }
  .logo-lockup .bm-name { font-size:1.08rem; }
  .logo-lockup .bm-tag { display:none; }
  .home-page .hero-center { min-height:auto; padding:8.5rem 1.5rem 4.5rem; }
  .home-page .hero-center::before { inset:6.3rem .75rem .75rem; }
  .home-page .hero-wordmark { font-size:clamp(2.7rem,15vw,4.3rem); }
  .home-page .hero-center h1 { font-size:clamp(2rem,9vw,3rem); }
  .home-page .hero-credentials { display:grid; grid-template-columns:1fr 1fr; }
  .home-page .hero-cred { padding:1rem; border-bottom:1px solid rgba(255,255,255,.12); }
  .home-page .hero-cred:first-child { padding-left:1rem; }
  .page-hero { padding:8.5rem 1.5rem 4rem; }
  .page-title { font-size:clamp(2.7rem,14vw,4.2rem); }
  .content-section { padding:5rem 1.5rem; }
  .case-studies-page .content-section { padding-block:3rem; }
  .case-studies-page .case-index { margin-bottom:2.5rem; }
  .case-studies-page .case-study-full { padding:2.5rem 0; }
  .case-studies-page .case-study-full::before { position:static; display:block; margin-bottom:1rem; }
  .team-page .practice-note { padding:2rem; }
  .footer-top { grid-template-columns:1fr; }
  .footer-top .footer-col:last-child { grid-column:auto; }
}

@media print {
  .reveal { opacity:1!important; transform:none!important; }
  .home-page .hero-center { min-height:auto; padding:4rem 2rem; }
  .home-page .hero-center::before { display:none; }
  .site-main { overflow:visible; }
}
