/* ============================================================
   DEVOL LEGAL — Magic Circle Rebrand
   Aesthetic: Freshfields-inspired. Near-black, restrained teal.
   Typography-led. Vast whitespace. Institutional confidence.
   Zero decoration. The text does the work.
   ============================================================ */

:root {
  --black: #0c0c0c;
  --near-black: #1a1a1a;
  --dark: #252525;
  --charcoal: #333;
  --mid: #666;
  --light: #999;
  --pale: #c8c8c8;
  --border: #e0e0e0;
  --bg: #f7f7f7;
  --white: #ffffff;
  --teal: #007a6e;
  --teal-light: #009e8e;
  --teal-pale: #e8f5f3;
  --serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans: 'Outfit', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth; font-size:16px }
body { font-family:var(--sans); color:var(--charcoal); background:var(--white); line-height:1.75; font-weight:300; overflow-x:hidden; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale }

/* ---- UTILITY ---- */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease }
.reveal.visible { opacity:1; transform:none }
.container { max-width:1200px; margin:0 auto; padding:0 3rem }
.content-narrow { max-width:740px }

/* ---- HEADER ---- */
header { position:fixed; top:0; left:0; right:0; z-index:1000; background:rgba(255,255,255,.95); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--border); transition:all .3s }
header.scrolled { box-shadow:0 1px 20px rgba(0,0,0,.04) }
nav { max-width:1200px; margin:0 auto; padding:1rem 3rem; display:flex; align-items:center; justify-content:space-between }
.logo { display:flex; align-items:center; gap:.65rem; text-decoration:none }
.logo-mark { width:32px; height:32px; background:var(--black); display:flex; align-items:center; justify-content:center; color:var(--white); font-family:var(--serif); font-size:.95rem; flex-shrink:0; letter-spacing:-.02em }
.logo-mark::after { display:none }
.logo-text { font-family:var(--serif); font-size:1.25rem; color:var(--black); letter-spacing:-.01em }
.logo-text span { color:var(--light) }
#nav-links { display:flex; align-items:center; gap:2.2rem; list-style:none }
#nav-links a { text-decoration:none; color:var(--mid); font-size:.75rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; transition:color .3s }
#nav-links a::after { display:none }
#nav-links a:hover { color:var(--black) }
.nav-cta { background:var(--black); color:var(--white)!important; padding:.5rem 1.1rem; font-size:.7rem!important; font-weight:400; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; transition:background .3s; white-space:nowrap }
.nav-cta:hover { background:var(--teal) }
#hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; z-index:1001 }
#hamburger span { width:22px; height:1.5px; background:var(--black); transition:all .3s }

/* ---- BUTTONS ---- */
.btn-primary { background:var(--black); color:var(--white); padding:.9rem 2.2rem; border:none; font-family:var(--sans); font-size:.78rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; transition:all .3s }
.btn-primary:hover { background:var(--teal) }
.btn-primary:disabled { background:var(--pale); cursor:not-allowed }
.btn-secondary { background:transparent; color:var(--black); padding:.9rem 2.2rem; border:1px solid var(--black); font-family:var(--sans); font-size:.78rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; text-decoration:none; transition:all .3s }
.btn-secondary:hover { background:var(--black); color:var(--white) }

/* ---- HOMEPAGE HERO ---- */
.hero-center { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:8rem 3rem 5rem; text-align:center; background:var(--white) }
.hero-center::before, .hero-center::after { display:none }
.hero-grain { display:none }
.hero-inner { max-width:820px; margin:0 auto }
.hero-logo-big { display:flex; align-items:center; justify-content:center; gap:1rem; margin-bottom:3rem }
.hero-logo-mark { width:56px; height:56px; background:var(--black); display:flex; align-items:center; justify-content:center; color:var(--white); font-family:var(--serif); font-size:1.6rem; letter-spacing:-.02em; box-shadow:none }
.hero-logo-mark::after { display:none }
.hero-logo-name { font-family:var(--serif); font-size:clamp(2.2rem,4.5vw,3.2rem); color:var(--black); letter-spacing:-.02em }
.hero-logo-name span { color:var(--pale) }
.hero-rule { width:40px; height:1px; background:var(--teal); margin:0 auto 2.5rem }
.hero-center h1 { font-family:var(--serif); font-size:clamp(1.4rem,2.5vw,1.9rem); line-height:1.5; color:var(--charcoal); margin-bottom:1.5rem; max-width:700px; margin-left:auto; margin-right:auto; font-weight:400; letter-spacing:-.01em }
.hero-center h1 em { font-style:italic; color:var(--teal); font-family:var(--serif) }
.hero-sub { font-size:.95rem; color:var(--mid); max-width:620px; margin:0 auto 3rem; line-height:1.9 }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center }
.hero-trust { font-size:.82rem; color:var(--light); margin-top:2.5rem; font-style:normal; letter-spacing:.02em }
.hero-credentials { display:flex; justify-content:center; gap:1.5rem; margin-top:3rem; flex-wrap:wrap }
.hero-cred { padding:.5rem 0; border-top:1px solid var(--border) }
.hero-cred-num { font-size:.72rem; font-weight:400; color:var(--charcoal); letter-spacing:.06em; text-transform:uppercase }

/* ---- PAGE HERO (inner pages) ---- */
.page-hero { padding:9rem 3rem 3.5rem; background:var(--white); border-bottom:1px solid var(--border) }
.page-title { font-family:var(--serif); font-size:clamp(2rem,4vw,2.8rem); color:var(--black); line-height:1.2; margin-bottom:.8rem; font-weight:400; letter-spacing:-.02em }
.page-intro { font-size:1rem; color:var(--mid); line-height:1.85; max-width:680px; margin-top:.5rem }

/* ---- SECTIONS ---- */
section { padding:5rem 0 }
.content-section { padding:5rem 3rem }
.section-label { font-size:.68rem; text-transform:uppercase; letter-spacing:.2em; color:var(--teal); font-weight:400; margin-bottom:.6rem; display:block }
.section-label::before { display:none }
.section-title { font-family:var(--serif); font-size:clamp(1.6rem,2.5vw,2.2rem); color:var(--black); line-height:1.3; margin-bottom:1rem; font-weight:400; letter-spacing:-.02em }
.section-sub { font-size:.95rem; color:var(--mid); line-height:1.85; max-width:620px }
.section-header { max-width:680px; margin-bottom:3.5rem }
.section-divider { border:none; border-top:1px solid var(--border); margin:3.5rem 0 }

/* ---- CONTENT TYPOGRAPHY ---- */
.content-narrow h2 { font-family:var(--serif); font-size:1.4rem; color:var(--black); margin:3rem 0 1rem; line-height:1.3; font-weight:400 }
.content-narrow h3 { font-family:var(--serif); font-size:1.1rem; color:var(--charcoal); margin:2rem 0 .8rem; line-height:1.3; font-weight:400 }
.content-narrow p { margin-bottom:1.2rem; line-height:1.9; font-size:.95rem; color:var(--charcoal) }
.lead { font-size:1.05rem; color:var(--charcoal); line-height:1.9; margin-bottom:1.5rem }
.closing-statement { font-style:italic; color:var(--mid); border-left:2px solid var(--teal); padding-left:1.5rem; margin:2.5rem 0 }
.styled-list { list-style:none; margin:1rem 0 1.5rem; padding:0 }
.styled-list li { padding:.5rem 0 .5rem 1.5rem; position:relative; font-size:.95rem; line-height:1.75; color:var(--charcoal) }
.styled-list li::before { content:''; position:absolute; left:0; top:1rem; width:5px; height:1px; background:var(--teal) }
.page-cta { margin-top:3.5rem; display:flex; gap:1rem; flex-wrap:wrap }
.card-link { font-size:.78rem; color:var(--teal); text-decoration:none; font-weight:400; letter-spacing:.04em; text-transform:uppercase; margin-top:auto; display:block; padding-top:1rem }
.card-link:hover { color:var(--black) }

/* ---- PRACTICE CARDS ---- */
.practice { background:var(--bg); padding:5rem 0 }
.practice-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border) }
.practice-card { background:var(--white); padding:3rem; display:flex; flex-direction:column; transition:background .3s }
.practice-card::before { display:none }
.practice-card:hover { background:var(--bg) }
.practice-icon { width:40px; height:40px; background:var(--black); display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem }
.practice-icon svg { width:18px; height:18px; stroke:var(--white); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round }
.practice-card h3 { font-family:var(--serif); font-size:1.15rem; color:var(--black); margin-bottom:.8rem; line-height:1.35; font-weight:400 }
.practice-card p { color:var(--mid); font-size:.9rem; line-height:1.8 }

/* ---- WHY SECTION ---- */
.why-section { background:var(--white); padding:5rem 0 }
.why-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:3rem }
.why-card { padding:0; background:none; border-left:2px solid var(--teal); padding-left:1.5rem; border-radius:0 }
.why-card h3 { font-family:var(--serif); font-size:1.05rem; color:var(--black); margin-bottom:.5rem; line-height:1.35; font-weight:400 }
.why-card p { font-size:.9rem; color:var(--mid); line-height:1.8 }
.why-closing { text-align:left; font-style:normal; color:var(--charcoal); margin-top:3rem; font-size:.95rem; font-family:var(--serif); letter-spacing:-.01em }

/* ---- CASE STUDIES (preview) ---- */
.cases-preview { background:var(--bg); padding:5rem 0 }
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border) }
.case-card { background:var(--white); display:flex; flex-direction:column; border-radius:0; border:none; transition:background .3s }
.case-card:hover { background:var(--bg); transform:none; box-shadow:none }
.case-header { padding:2.5rem 2rem; min-height:150px; display:flex; flex-direction:column; justify-content:flex-end }
.case-header::before { display:none }
.case-nhs { background:var(--black); color:var(--white) }
.case-mcc { background:var(--near-black); color:var(--white) }
.case-ho { background:var(--dark); color:var(--white) }
.case-org { font-size:.65rem; text-transform:uppercase; letter-spacing:.15em; opacity:.5; margin-bottom:.4rem; font-weight:400 }
.case-header h3 { font-family:var(--serif); font-size:1.05rem; line-height:1.35; font-weight:400 }
.case-body { padding:2rem; flex:1; display:flex; flex-direction:column }
.case-body p { font-size:.88rem; color:var(--mid); line-height:1.8 }

/* ---- CASE STUDIES (full page) ---- */
.case-study-full { margin-bottom:2.5rem }
.case-study-full h2 { font-family:var(--serif); font-size:1.5rem; color:var(--black); margin-bottom:.3rem; font-weight:400 }
.case-meta { font-size:.75rem; color:var(--teal); font-weight:400; margin-bottom:1.5rem; text-transform:uppercase; letter-spacing:.08em }
.case-study-full h3 { font-family:var(--serif); font-size:1.05rem; color:var(--charcoal); margin:2rem 0 .6rem; font-weight:400 }
.case-study-full p { font-size:.95rem; line-height:1.9; margin-bottom:.8rem }
.case-why { font-style:italic; color:var(--mid); border-left:2px solid var(--teal); padding-left:1.2rem; margin-top:2rem }

/* ---- TESTIMONIALS ---- */
.testimonials { background:var(--black); color:var(--white); padding:5rem 0 }
.testimonials::before { display:none }
.testimonials .section-label { color:var(--teal-light) }
.testimonials .section-title { color:var(--white) }
.testimonials .section-sub { color:rgba(255,255,255,.4) }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.08) }
.testimonial-card { background:var(--black); padding:2.5rem; transition:background .3s; display:flex; flex-direction:column; border-radius:0; border:none }
.testimonial-card:hover { background:var(--near-black); transform:none }
.testimonial-quote { font-size:3rem; line-height:.8; color:var(--teal); font-family:var(--serif); opacity:.4; margin-bottom:.5rem }
.testimonial-text { font-size:.9rem; line-height:1.9; color:rgba(255,255,255,.65); margin-bottom:1.5rem; font-style:italic; flex:1 }
.testimonial-divider { width:20px; height:1px; background:var(--teal); margin-bottom:1rem }
.testimonial-author { font-weight:400; font-size:.85rem; color:var(--white) }
.testimonial-role { font-size:.75rem; color:rgba(255,255,255,.35); margin-top:.15rem }

/* ---- APPROACH ---- */
.approach { background:var(--bg); padding:5rem 0 }
.approach-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border) }
.approach-step { text-align:left; padding:2.5rem 2rem; background:var(--white); border-radius:0; transition:background .3s }
.approach-step:hover { background:var(--bg); transform:none }
.step-num { font-family:var(--serif); font-size:2rem; color:var(--pale); margin-bottom:.5rem }
.approach-step h4 { font-family:var(--serif); font-size:1rem; color:var(--black); margin-bottom:.5rem; font-weight:400 }
.approach-step p { font-size:.85rem; color:var(--mid); line-height:1.75 }
.approach-closing { text-align:left; font-style:normal; color:var(--mid); margin-top:2.5rem; font-size:.95rem }

/* ---- CTA BLOCK ---- */
.cta-block { background:var(--black); padding:5rem 0; color:var(--white); text-align:center }
.cta-block h2 { font-family:var(--serif); font-size:clamp(1.4rem,2.2vw,1.8rem); color:var(--white); margin-bottom:1.2rem; font-weight:400; letter-spacing:-.01em }
.cta-block p { color:rgba(255,255,255,.5); max-width:560px; margin:0 auto 2rem; line-height:1.85; font-size:.95rem }
.cta-points { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 2rem; margin-bottom:2.5rem; padding:0 }
.cta-points li { font-size:.82rem; color:rgba(255,255,255,.45); display:flex; align-items:center; gap:.5rem }
.cta-points li::before { content:''; width:4px; height:1px; background:var(--teal-light) }
.cta-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap }
.cta-block .btn-primary { background:var(--teal) }
.cta-block .btn-primary:hover { background:var(--teal-light) }
.cta-block .btn-secondary { border-color:rgba(255,255,255,.2); color:var(--white) }
.cta-block .btn-secondary:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.35) }

/* ---- TEAM (full page) ---- */
.team-full { display:flex; flex-direction:column; gap:0; border-top:1px solid var(--border) }
.team-member { background:var(--white); padding:3rem 0; border-bottom:1px solid var(--border); border-radius:0; border-left:none; border-right:none }
.team-member-header { display:flex; align-items:center; gap:1.5rem; margin-bottom:1.5rem }
.team-avatar-lg { width:56px; height:56px; background:var(--black); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.2rem; color:var(--white); flex-shrink:0; border-radius:0 }
.team-member h2 { font-family:var(--serif); font-size:1.3rem; color:var(--black); margin-bottom:.15rem; font-weight:400 }
.team-role-lg { font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:var(--teal); font-weight:400 }
.team-member p { font-size:.92rem; color:var(--charcoal); line-height:1.85; margin-bottom:.8rem }
.team-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem }
.team-tag { font-size:.65rem; padding:.3rem .8rem; background:var(--bg); color:var(--mid); font-weight:400; letter-spacing:.04em; text-transform:uppercase; border-radius:0 }

/* ---- SERVICES HUB ---- */
.services-hub-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border) }
.service-hub-card { display:block; background:var(--white); padding:3rem; text-decoration:none; transition:background .3s; border-left:none; border-radius:0; border:none }
.service-hub-card:hover { background:var(--bg); transform:none; box-shadow:none }
.service-hub-card h2 { font-family:var(--serif); font-size:1.2rem; color:var(--black); margin-bottom:.8rem; font-weight:400 }
.service-hub-card p { color:var(--mid); font-size:.9rem; line-height:1.8; margin-bottom:1rem }

/* ---- INSIGHTS ---- */
.insights-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--border) }
.insight-card { background:var(--white); padding:2.5rem; transition:background .3s; border:none; border-radius:0 }
.insight-card:hover { background:var(--bg); transform:none; box-shadow:none }
.insight-date { font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; color:var(--teal); font-weight:400; margin-bottom:.6rem }
.insight-card h2 { font-family:var(--serif); font-size:1.05rem; color:var(--black); margin-bottom:.6rem; line-height:1.35; font-weight:400 }
.insight-card p { font-size:.88rem; color:var(--mid); line-height:1.75; margin-bottom:.8rem }

/* ---- CONTACT ---- */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:5rem }
.contact-info h2 { font-family:var(--serif); font-size:1.5rem; color:var(--black); margin-bottom:1rem; font-weight:400 }
.contact-info > p { color:var(--mid); margin-bottom:2rem; line-height:1.85 }
.contact-details { display:flex; flex-direction:column; gap:1.2rem }
.contact-detail { display:flex; align-items:flex-start; gap:1rem }
.contact-detail-icon { width:36px; height:36px; background:var(--bg); display:flex; align-items:center; justify-content:center; flex-shrink:0 }
.contact-detail-icon svg { width:16px; height:16px; stroke:var(--teal); fill:none; stroke-width:1.5 }
.contact-detail-text strong { display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--black); margin-bottom:.1rem; font-weight:500 }
.contact-detail-text span, .contact-detail-text a { font-size:.88rem; color:var(--mid); text-decoration:none }
.contact-detail-text a:hover { color:var(--teal) }
.contact-form { background:var(--bg); padding:3rem; border:1px solid var(--border) }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem }
.form-group { margin-bottom:1rem }
.form-group label { display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:var(--charcoal); font-weight:400; margin-bottom:.4rem }
.form-group input, .form-group textarea, .form-group select { width:100%; padding:.8rem 1rem; border:1px solid var(--border); font-family:var(--sans); font-size:.9rem; color:var(--charcoal); background:var(--white); transition:border-color .3s; outline:none }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color:var(--teal) }
.form-group textarea { resize:vertical; min-height:110px }
.form-note { font-size:.75rem; color:var(--light); line-height:1.7; margin-bottom:1.5rem }

/* ---- PAYMENTS ---- */
.payments-section { background:var(--black); padding:5rem 3rem; color:var(--white) }
.payment-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.08); max-width:1200px; margin:0 auto }
.payment-card { background:var(--black); padding:2.5rem; text-align:center; transition:background .3s; display:flex; flex-direction:column; align-items:center; border-radius:0; border:none }
.payment-card:hover { background:var(--near-black); transform:none }
.payment-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; border-radius:0 }
.payment-icon svg { width:24px; height:24px }
.payment-icon.stripe-icon { background:rgba(255,255,255,.06) }
.payment-icon.paypal-icon { background:rgba(255,255,255,.06) }
.payment-icon.bank-icon { background:rgba(255,255,255,.06) }
.payment-card h3 { font-family:var(--serif); font-size:1.05rem; color:var(--white); margin-bottom:.5rem; font-weight:400 }
.payment-card p { font-size:.85rem; color:rgba(255,255,255,.4); line-height:1.75; margin-bottom:1.5rem; flex:1 }
.pay-btn { display:inline-flex; align-items:center; justify-content:center; padding:.7rem 1.5rem; font-family:var(--sans); font-size:.75rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; transition:all .3s; cursor:pointer; border:none; width:100%; max-width:200px }
.pay-btn.stripe-btn { background:var(--teal); color:var(--white) }
.pay-btn.stripe-btn:hover { background:var(--teal-light); transform:none }
.bank-details { text-align:left; width:100%; margin-top:.5rem }
.bank-row { display:flex; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid rgba(255,255,255,.06); font-size:.82rem }
.bank-row:last-child { border-bottom:none }
.bank-label { color:rgba(255,255,255,.3); text-transform:uppercase; letter-spacing:.08em; font-size:.68rem }
.bank-value { color:var(--white); font-family:'Courier New',monospace; letter-spacing:.03em }
.payment-note { text-align:center; margin-top:2.5rem; font-size:.8rem; color:rgba(255,255,255,.25); max-width:560px; margin-left:auto; margin-right:auto; line-height:1.75 }
.payment-note a { color:var(--teal-light) }

/* ---- LEGAL PAGES ---- */
.legal-content h2 { font-family:var(--serif); font-size:1.15rem; color:var(--black); margin:2.5rem 0 .8rem; font-weight:400 }
.legal-content p { font-size:.92rem; line-height:1.85; margin-bottom:1rem; color:var(--charcoal) }
.legal-content a { color:var(--teal) }

/* ---- FOOTER ---- */
footer { background:var(--black); color:rgba(255,255,255,.35); padding:4rem 3rem 2rem }
.footer-inner { max-width:1200px; margin:0 auto }
.footer-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.06) }
.footer-brand .logo-text { color:var(--white); font-size:1.2rem; margin-bottom:.8rem }
.footer-brand .logo-text span { color:rgba(255,255,255,.25) }
.footer-brand p { font-size:.82rem; line-height:1.75; max-width:300px; color:rgba(255,255,255,.3) }
.footer-col h4 { color:rgba(255,255,255,.5); font-size:.65rem; text-transform:uppercase; letter-spacing:.15em; margin-bottom:1rem; font-weight:400 }
.footer-col ul { list-style:none }
.footer-col li { margin-bottom:.5rem }
.footer-col a { color:rgba(255,255,255,.35); text-decoration:none; font-size:.82rem; transition:color .3s }
.footer-col a:hover { color:var(--teal-light) }
.footer-legal-block { padding:2rem 0; font-size:.75rem; line-height:1.8; color:rgba(255,255,255,.25) }
.footer-legal-block strong { color:rgba(255,255,255,.4) }
.footer-bottom { padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.06); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-size:.72rem }
.footer-legal { display:flex; gap:2.5rem }
.footer-legal a { color:rgba(255,255,255,.25); text-decoration:none }
.footer-legal a:hover { color:rgba(255,255,255,.5) }

/* ---- RESPONSIVE ---- */
@media(max-width:1100px) {
  .practice-grid, .why-grid, .services-hub-grid, .insights-grid { grid-template-columns:1fr; background:none; gap:1px }
  .testimonial-grid, .case-grid, .payment-grid { grid-template-columns:1fr; background:none; gap:1px }
  .approach-grid { grid-template-columns:repeat(2,1fr) }
  .contact-grid { grid-template-columns:1fr }
  .footer-top { grid-template-columns:1fr 1fr }
}
@media(max-width:768px) {
  nav { padding:1rem 1.5rem }
  .container { padding:0 1.5rem }
  .content-section { padding:3.5rem 1.5rem }
  .page-hero { padding:7rem 1.5rem 2.5rem }
  #nav-links { display:none; position:fixed; inset:0; background:var(--white); flex-direction:column; justify-content:center; align-items:center; gap:2rem; z-index:999 }
  #nav-links.open { display:flex }
  #nav-links a { font-size:1rem; letter-spacing:.06em }
  .nav-cta { display:none }
  #hamburger { display:flex }
  .hero-center { padding:7rem 1.5rem 4rem; min-height:auto }
  .hero-logo-mark { width:44px; height:44px; font-size:1.3rem }
  .hero-logo-name { font-size:2rem }
  .hero-credentials { gap:1rem }
  .approach-grid { grid-template-columns:1fr; background:none }
  .form-row { grid-template-columns:1fr }
  .footer-top { grid-template-columns:1fr; gap:2rem }
  .footer-bottom { flex-direction:column; text-align:center }
  .footer-legal { justify-content:center }
}
