
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=Inter:wght@300;400;500;600&family=Raleway:wght@400;500;600;700&display=swap');

@font-face { font-family:'SiteSerif';   src:url('../images/font-2.woff2') format('woff2'); font-weight:700; }
@font-face { font-family:'SiteBody';    src:url('../images/font-3.woff2') format('woff2'); font-weight:400; }
@font-face { font-family:'AvenirLight'; src:url('../images/avenir-light.woff2') format('woff2'); font-weight:300; }

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
:root {
  --ink:       #0a0f1e;
  --navy:      #1a2e4e;
  --navy-mid:  #243d62;
  --gold:      #c4a35a;
  --gold-lt:   #e8d5a3;
  --cream:     #f8f6f1;
  --grey-bg:   #eef0f4;
  --grey-mid:  #8c9ab0;
  --white:     #ffffff;
  --ease:      cubic-bezier(0.16,1,0.3,1);
}
html { scroll-behavior:smooth; }
body { font-family:'Inter','SiteBody',Arial,sans-serif; color:var(--navy); background:var(--cream); line-height:1.7; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }

/* Progress bar */
#progress-bar { position:fixed; top:0; left:0; height:2px; width:0; background:var(--gold); z-index:9999; transition:width .1s linear; pointer-events:none; }

/* Header */
header { position:fixed; top:0; left:0; right:0; z-index:100; transition:background .4s var(--ease),box-shadow .4s var(--ease); }
header.at-top  { background:rgba(10,15,30,.15); backdrop-filter:blur(12px); }
header.scrolled{ background:rgba(255,255,255,.97); box-shadow:0 1px 30px rgba(0,0,0,.08); backdrop-filter:blur(20px); }
.nav-inner { max-width:1400px; margin:0 auto; padding:0 48px; height:80px; display:flex; align-items:center; justify-content:space-between; }
.logo { display:block; text-decoration:none; position:relative; height:44px; width:127px; flex-shrink:0; }
.logo img { height:44px; width:127px; display:block; object-fit:contain; }
.logo-light { position:absolute; top:0; left:0; opacity:0; transition:opacity .3s; }
.logo-dark  { position:absolute; top:0; left:0; opacity:1; transition:opacity .3s; }
/* Header at-top (over dark hero) shows light letters; scrolled (white bg) shows dark letters */
header.at-top   .logo .logo-light { opacity:1; }
header.at-top   .logo .logo-dark  { opacity:0; }
header.scrolled .logo .logo-light { opacity:0; }
header.scrolled .logo .logo-dark  { opacity:1; }
/* Footer — always on dark background, always light letters */
.footer-logo { height:48px; width:139px; }
.footer-logo img { height:48px; width:139px; }
.footer-logo .logo-dark { display:none; }
.footer-logo .logo-light { position:static; opacity:1; }
nav { display:flex; align-items:center; gap:2px; }
.nav-link { font-family:'Raleway',Arial,sans-serif; font-size:11.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:0 16px; position:relative; transition:color .25s; }
.nav-link::after { content:''; position:absolute; bottom:-4px; left:16px; right:16px; height:1px; background:var(--gold); transform:scaleX(0); transition:transform .3s var(--ease); transform-origin:left; }
.nav-link:hover::after { transform:scaleX(1); }
header.at-top   .nav-link { color:rgba(255,255,255,.85); }
header.at-top   .nav-link:hover { color:#fff; }
header.scrolled .nav-link { color:var(--navy); }
header.scrolled .nav-link:hover { color:var(--gold); }
.nav-cta { margin-left:20px; padding:11px 24px; font-family:'Raleway',Arial,sans-serif; font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; border:1.5px solid; transition:all .3s var(--ease); }
header.at-top   .nav-cta { border-color:rgba(255,255,255,.6); color:#fff; }
header.at-top   .nav-cta:hover { background:#fff; color:var(--navy); border-color:#fff; }
header.scrolled .nav-cta { border-color:var(--gold); color:var(--gold); }
header.scrolled .nav-cta:hover { background:var(--gold); color:#fff; }
.mobile-btn { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.mobile-btn span { display:block; width:26px; height:1.5px; background:currentColor; transition:transform .3s,opacity .3s; }
header.at-top   .mobile-btn { color:#fff; }
header.scrolled .mobile-btn { color:var(--navy); }
.mobile-btn.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.mobile-btn.open span:nth-child(2) { opacity:0; }
.mobile-btn.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
.mobile-nav { display:none; position:fixed; top:80px; left:0; right:0; bottom:0; background:var(--ink); flex-direction:column; align-items:center; justify-content:center; gap:32px; z-index:99; }
.mobile-nav.open { display:flex; }
.mobile-nav a { font-family:'Raleway',Arial,sans-serif; font-size:14px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.8); transition:color .25s; }
.mobile-nav a:hover { color:var(--gold); }

/* Reveal animations */
[data-reveal] { opacity:0; transform:translateY(32px); transition:opacity .9s var(--ease),transform .9s var(--ease); }
[data-reveal].visible { opacity:1; transform:none; }
[data-reveal][data-d="1"]{transition-delay:.1s}[data-reveal][data-d="2"]{transition-delay:.2s}
[data-reveal][data-d="3"]{transition-delay:.3s}[data-reveal][data-d="4"]{transition-delay:.4s}
[data-reveal][data-d="5"]{transition-delay:.5s}[data-reveal][data-d="6"]{transition-delay:.6s}

/* Hero */
.hero { min-height:100vh; position:relative; display:flex; align-items:center;
  background:linear-gradient(to right,rgba(10,15,30,.93) 0%,rgba(10,15,30,.76) 42%,rgba(10,15,30,.18) 100%), url('../images/hero-circle.png') center/cover no-repeat; }
.hero-content { max-width:1400px; margin:0 auto; padding:140px 48px 100px; width:100%; }
.hero-label { font-family:'Raleway',Arial,sans-serif; font-size:11px; font-weight:600; letter-spacing:.35em; text-transform:uppercase; color:var(--gold); margin-bottom:28px; display:flex; align-items:center; gap:14px; }
.hero-label::before { content:''; display:block; width:40px; height:1px; background:var(--gold); }
.hero h1 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:clamp(3rem,7vw,5.8rem); color:#fff; line-height:1.1; max-width:700px; margin-bottom:12px; }
.hero h1 strong { font-style:normal; font-weight:600; display:block; }
.hero-sub { font-size:clamp(1rem,2vw,1.15rem); color:rgba(255,255,255,.6); max-width:480px; margin:24px 0 48px; font-weight:300; line-height:1.75; }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.btn-gold { display:inline-flex; align-items:center; gap:10px; padding:16px 36px; background:var(--gold); color:var(--ink); font-family:'Raleway',Arial,sans-serif; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; transition:all .3s var(--ease); }
.btn-gold:hover { background:var(--gold-lt); transform:translateY(-2px); box-shadow:0 16px 48px rgba(196,163,90,.35); }
.btn-ghost { display:inline-flex; align-items:center; gap:10px; padding:16px 36px; border:1px solid rgba(255,255,255,.35); color:#fff; font-family:'Raleway',Arial,sans-serif; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; transition:all .3s var(--ease); }
.btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); }
.hero-scroll { position:absolute; bottom:48px; left:48px; display:flex; align-items:center; gap:14px; font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.4); }
.hero-scroll::after { content:''; display:block; width:60px; height:1px; background:rgba(255,255,255,.25); animation:hpulse 2s ease-in-out infinite; }
@keyframes hpulse { 0%,100%{opacity:.3}50%{opacity:1} }

/* Trust bar */
.trust-bar { background:var(--ink); padding:0 48px; }
.trust-inner { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.04); }
.trust-item { padding:48px 40px; text-align:center; background:var(--ink); transition:background .3s; }
.trust-item:hover { background:#111827; }
.trust-num { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(2.8rem,4vw,3.8rem); font-weight:300; color:var(--gold); line-height:1; margin-bottom:10px; }
.trust-label { font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:600; letter-spacing:.25em; text-transform:uppercase; color:rgba(255,255,255,.38); }

/* Shared section */
.section { padding:110px 48px; }
.section-inner { max-width:1200px; margin:0 auto; }
.section-wide  { max-width:1400px; margin:0 auto; }
.eyebrow { font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:700; letter-spacing:.35em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; display:flex; align-items:center; gap:14px; }
.eyebrow::before { content:''; display:block; width:32px; height:1px; background:var(--gold); }
.section-h { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:clamp(2.2rem,4vw,3.4rem); color:var(--navy); line-height:1.15; }
.section-h strong { font-style:normal; font-weight:600; }

/* LBS */
.lbs-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:100px; align-items:center; }
.lbs-heading { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-size:clamp(3rem,5vw,5rem); line-height:1.05; color:var(--navy); margin-top:20px; }
.lbs-heading em { font-style:italic; color:var(--gold); }
.lbs-divider { width:48px; height:2px; background:var(--gold); margin:36px 0; }
.lbs-body p { font-size:16.5px; color:var(--grey-mid); line-height:1.9; margin-bottom:18px; }
.lbs-body p strong { color:var(--navy); font-weight:500; }

/* What sets us apart */
.apart-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--grey-bg); margin-top:60px; }
.apart-card { background:var(--white); padding:44px 36px; transition:background .35s var(--ease); position:relative; overflow:hidden; }
.apart-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transition:transform .4s var(--ease); }
.apart-card:hover { background:var(--cream); }
.apart-card:hover::after { transform:scaleX(1); }
.apart-icon { width:44px; height:44px; color:var(--gold); margin-bottom:28px; }
.apart-card h3 { font-family:'Raleway',Arial,sans-serif; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--navy); margin-bottom:14px; }
.apart-card p { font-size:14px; color:var(--grey-mid); line-height:1.75; }

/* Services */
.services-wrap { display:flex; min-height:640px; }
.services-left { width:38%; background:var(--navy); display:flex; flex-direction:column; justify-content:center; padding:80px 64px; }
.services-left .eyebrow::before { background:var(--gold); }
.services-title { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-size:clamp(2.2rem,3.5vw,3.2rem); line-height:1.12; color:#fff; margin-top:16px; font-style:italic; }
.services-title strong { font-style:normal; }
.services-divider { width:40px; height:1px; background:var(--gold); margin:32px 0; }
.services-desc { font-size:14px; color:rgba(255,255,255,.45); line-height:1.85; }
.services-right { flex:1; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--grey-bg); }
.service-card { background:var(--cream); padding:52px 44px; position:relative; transition:background .35s var(--ease); }
.service-card::before { content:''; position:absolute; top:0; left:0; width:3px; height:0; background:var(--gold); transition:height .4s var(--ease); }
.service-card:hover { background:var(--white); }
.service-card:hover::before { height:100%; }
.service-icon { width:36px; height:36px; color:var(--gold); margin-bottom:24px; }
.service-card h3 { font-family:'Raleway',Arial,sans-serif; font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid rgba(26,46,78,.1); }
.service-card ul { list-style:none; padding:0; }
.service-card li { font-size:13.5px; color:var(--grey-mid); padding:7px 0; border-bottom:1px solid rgba(26,46,78,.05); display:flex; align-items:baseline; gap:10px; }
.service-card li::before { content:'—'; color:var(--gold); font-size:10px; flex-shrink:0; }

/* Pen parallax */
.pen-section { height:420px; position:relative; background:url('../images/pen.png') center/cover no-repeat fixed; display:flex; align-items:center; justify-content:center; }
.pen-section::before { content:''; position:absolute; inset:0; background:rgba(10,15,30,.55); }
.pen-text { position:relative; z-index:1; text-align:center; padding:0 48px; }
.pen-text blockquote { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:clamp(1.6rem,3.5vw,2.6rem); color:#fff; line-height:1.45; max-width:800px; margin:0 auto; }
.pen-text blockquote::before { content:'“'; color:var(--gold); }
.pen-text blockquote::after  { content:'”'; color:var(--gold); }
.pen-text cite { display:block; margin-top:20px; font-style:normal; font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); }

/* Attorneys */
.attorneys-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:60px; }
.atty-card { background:var(--white); cursor:pointer; }
.atty-photo-wrap { overflow:hidden; aspect-ratio:3/4; }
.atty-photo { width:100%; height:100%; object-fit:cover; object-position:top center; filter:grayscale(30%); transition:transform .6s var(--ease),filter .5s ease; display:block; }
.atty-card:hover .atty-photo { transform:scale(1.06); filter:grayscale(0%); }
.atty-placeholder { width:100%; aspect-ratio:3/4; display:flex; align-items:center; justify-content:center; background:repeating-linear-gradient(-45deg,transparent,transparent 18px,rgba(255,255,255,.03) 18px,rgba(255,255,255,.03) 19px),linear-gradient(160deg,var(--navy) 0%,var(--navy-mid) 100%); }
.atty-placeholder span { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:5rem; color:rgba(255,255,255,.12); user-select:none; }
.atty-info { padding:22px 20px 26px; }
.atty-name { font-family:'Raleway',Arial,sans-serif; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--navy); line-height:1.3; margin-bottom:5px; }
.atty-role { font-size:12px; color:var(--grey-mid); line-height:1.4; margin-bottom:14px; }
.atty-btn { font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:8px; transition:gap .3s var(--ease); }
.atty-btn::after { content:'→'; transition:transform .3s var(--ease); }
.atty-card:hover .atty-btn { gap:14px; }
.atty-card:hover .atty-btn::after { transform:translateX(4px); }

/* Footer */
footer { position:relative; background:var(--ink); }
footer::before { content:''; position:absolute; inset:0; background:url('../images/hero-bg.jpg') center/cover no-repeat; opacity:.08; }
.footer-inner { position:relative; max-width:1400px; margin:0 auto; padding:100px 48px 60px; display:grid; grid-template-columns:1.2fr 1fr 1.4fr; gap:80px; }
.footer-tagline { font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-size:1.1rem; color:rgba(255,255,255,.35); margin-top:20px; line-height:1.65; }
.footer-logos { display:flex; align-items:center; gap:20px; margin-top:36px; }
.footer-logos img { height:32px; width:auto; filter:brightness(0) invert(1); opacity:.45; transition:opacity .3s; }
.footer-logos img:hover { opacity:.9; }
.footer-col h4 { font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:700; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:24px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.07); }
.footer-addr { font-size:13.5px; color:rgba(255,255,255,.48); line-height:2; }
.footer-addr strong { color:rgba(255,255,255,.75); font-weight:500; display:block; margin-top:14px; }
.footer-addr a { color:rgba(255,255,255,.48); transition:color .25s; }
.footer-addr a:hover { color:var(--gold); }
.footer-form input,.footer-form textarea { width:100%; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); padding:13px 16px; color:#fff; font-family:'Inter',Arial,sans-serif; font-size:13px; outline:none; transition:border-color .25s; margin-bottom:10px; }
.footer-form input::placeholder,.footer-form textarea::placeholder { color:rgba(255,255,255,.28); }
.footer-form input:focus,.footer-form textarea:focus { border-color:var(--gold); }
.footer-form .row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.footer-form textarea { height:100px; resize:none; }
.footer-form button { background:var(--gold); color:var(--ink); border:none; cursor:pointer; padding:13px 32px; font-family:'Raleway',Arial,sans-serif; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; transition:all .3s var(--ease); }
.footer-form button:hover { background:var(--gold-lt); transform:translateY(-2px); }
.footer-form button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.form-msg { margin-top:12px; font-size:13px; font-family:'Raleway',Arial,sans-serif; letter-spacing:.05em; }
.form-msg.ok  { color:#6fcf97; }
.form-msg.err { color:#eb5757; }
.footer-bottom { position:relative; max-width:1400px; margin:0 auto; padding:24px 48px; border-top:1px solid rgba(255,255,255,.07); display:flex; justify-content:space-between; align-items:center; font-family:'Raleway',Arial,sans-serif; font-size:10.5px; letter-spacing:.1em; color:rgba(255,255,255,.22); }
.footer-bottom a { color:rgba(255,255,255,.22); transition:color .25s; }
.footer-bottom a:hover { color:var(--gold); }

/* Back to top */
#back-top { position:fixed; bottom:36px; right:36px; width:48px; height:48px; background:var(--gold); color:var(--ink); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:20px; opacity:0; pointer-events:none; transition:opacity .3s,transform .3s var(--ease); z-index:500; }
#back-top.show { opacity:1; pointer-events:all; }
#back-top:hover { transform:translateY(-4px); }

/* Profile pages */
.profile-hero { padding:140px 48px 80px; background:var(--white); }
.profile-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:400px 1fr; gap:80px; align-items:start; }
.profile-photo { width:100%; display:block; box-shadow:0 32px 80px rgba(10,15,30,.12); }
.profile-placeholder { width:100%; aspect-ratio:3/4; display:flex; align-items:center; justify-content:center; background:repeating-linear-gradient(-45deg,transparent,transparent 18px,rgba(255,255,255,.03) 18px,rgba(255,255,255,.03) 19px),linear-gradient(160deg,var(--navy) 0%,var(--navy-mid) 100%); box-shadow:0 32px 80px rgba(10,15,30,.12); }
.profile-placeholder span { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:7rem; color:rgba(255,255,255,.1); user-select:none; }
.profile-info { padding-top:12px; }
.profile-tag { display:inline-block; padding:6px 16px; background:var(--gold); color:var(--ink); font-family:'Raleway',Arial,sans-serif; font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; margin-bottom:24px; }
.profile-tag.counsel { background:var(--navy); color:#fff; }
.profile-name { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:clamp(2.2rem,4vw,3.2rem); color:var(--navy); line-height:1.15; margin-bottom:24px; }
.profile-intro { font-size:15.5px; color:var(--grey-mid); line-height:1.85; margin-bottom:10px; }
.lawmind-logo { height:44px; width:auto; margin-top:20px; }
.profile-bio { background:var(--cream); padding:80px 48px; }
.profile-bio-inner { max-width:900px; margin:0 auto; }
.profile-bio h2 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:300; font-style:italic; font-size:2.4rem; color:var(--navy); margin-bottom:48px; }
.profile-bio h3 { font-family:'Raleway',Arial,sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); margin:36px 0 16px; padding-bottom:10px; border-bottom:1px solid rgba(26,46,78,.1); }
.profile-bio ul { list-style:none; padding:0; }
.profile-bio li { font-size:14.5px; color:var(--grey-mid); padding:8px 0 8px 20px; position:relative; border-bottom:1px solid rgba(26,46,78,.05); line-height:1.7; }
.profile-bio li::before { content:'—'; position:absolute; left:0; color:var(--gold); font-size:11px; }
.profile-bio p { font-size:14.5px; color:var(--grey-mid); line-height:1.9; margin-bottom:12px; }
.pub p { padding:6px 0; border-bottom:1px solid rgba(26,46,78,.05); font-size:13.5px; }

/* Responsive */
@media(max-width:1100px){
  .lbs-grid{grid-template-columns:1fr;gap:48px}
  .services-wrap{flex-direction:column}
  .services-left{width:100%}
  .apart-cards{grid-template-columns:1fr 1fr}
  .attorneys-grid{grid-template-columns:repeat(3,1fr)}
  .footer-inner{grid-template-columns:1fr 1fr;gap:48px}
}
@media(max-width:768px){
  .section{padding:72px 24px}
  .nav-inner{padding:0 24px}
  nav{display:none}
  .mobile-btn{display:flex}
  .hero-content{padding:120px 24px 80px}
  .trust-inner{grid-template-columns:1fr 1fr}
  .apart-cards{grid-template-columns:1fr}
  .services-right{grid-template-columns:1fr}
  .attorneys-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .footer-inner{grid-template-columns:1fr;gap:40px}
  .footer-form .row{grid-template-columns:1fr}
  .profile-inner{grid-template-columns:1fr}
  .pen-section{background-attachment:scroll;height:280px}
}
@media(max-width:480px){
  .attorneys-grid{grid-template-columns:1fr}
  .trust-inner{grid-template-columns:1fr}
}
