/* ==========================================================================
   Galaxy Lawyer — shared stylesheet
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --navy: #0B1E3D;
  --navy-2: #122A52;
  --navy-3: #1B3868;
  --gold: #C89B3C;
  --gold-2: #E0B85B;
  --gold-dark: #9C7627;
  --cream: #FAF6EE;
  --cream-2: #F2EBDA;
  --paper: #FFFFFF;
  --ink: #1E2430;
  --ink-soft: #5B6272;
  --line: #E6DFCC;
  --line-navy: rgba(255,255,255,0.14);
  --radius: 14px;
  --shadow: 0 18px 40px -22px rgba(11,30,61,0.35);
  --maxw: 1180px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family:'Inter', sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  color: var(--navy);
  margin: 0 0 .5em 0;
  line-height:1.15;
  font-weight:600;
  letter-spacing:-0.01em;
}
p{ margin:0 0 1em 0; color: var(--ink-soft); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }

.wrap{ max-width: var(--maxw); margin:0 auto; padding: 0 32px; }
:focus-visible{ outline: 2.5px solid var(--gold); outline-offset:3px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 13px 26px;
  border-radius: 8px;
  font-weight:600;
  font-size:0.95rem;
  border: 1.5px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn:hover{ transform: translateY(-1px); }
.btn-gold{
  background: linear-gradient(180deg, var(--gold-2), var(--gold-dark));
  color: #fff;
  font-family:'Fraunces', serif;
  font-style: italic;
  font-weight: 500;
  border-radius: 10px;
}
.btn-gold:hover{ filter: brightness(1.06); box-shadow: 0 10px 24px -10px rgba(200,155,60,.6); }
.header-actions .btn-gold{ border-radius: 10px; }
.btn-navy{ background: var(--navy); color:#fff; }
.btn-navy:hover{ background: var(--navy-3); }
.btn-outline{ background: transparent; border-color: var(--navy); color: var(--navy); }
.btn-outline:hover{ background: var(--navy); color:#fff; }
.btn-outline-light{ background: transparent; border-color: rgba(255,255,255,.5); color:#fff; }
.btn-outline-light:hover{ background: rgba(255,255,255,.12); border-color:#fff; }
.btn-sm{ padding: 9px 16px; font-size:.85rem; border-radius:7px; }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
  position: sticky; top:0; z-index:100;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(11,30,61,.1);
  box-shadow: 0 8px 24px -20px rgba(11,30,61,.45);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  min-height: 78px;
  padding: 12px 32px;
  max-width: var(--maxw); margin:0 auto;
}
.brand{ display:flex; align-items:center; gap:12px; line-height:1; }
.brand-mark{ font-family:'Fraunces', serif; font-weight:600; font-size:1.45rem; color: var(--navy); letter-spacing:0.01em;}
.brand-mark .accent-letters{ color: var(--gold); }
.brand-sub{ font-size:.62rem; letter-spacing:.2em; color: var(--ink-soft); font-weight:700; }
.brand-rule{ width:1px; height:27px; background: var(--gold); border-radius:2px; }

.nav-links{ display:flex; align-items:center; gap:26px; }
.nav-links a{
  font-size:.93rem; font-weight:500; color: var(--navy); position:relative; padding: 4px 0;
  transition: color .15s ease;
}
.nav-links a.active{ color: var(--gold-dark); font-weight:600; }
.nav-links a.active::after{
  content:''; position:absolute; left:50%; right:50%; bottom:-9px; height:2px; background: var(--gold);
  transition: left .15s ease, right .15s ease;
}
.nav-links a.active::after, .nav-links a:hover::after{ left:0; right:0; }
.nav-links a:hover{ color: var(--gold-dark); }

.header-actions{ display:flex; align-items:center; gap:10px; }
.header-actions .btn-gold{ box-shadow: 0 8px 18px -12px rgba(156,118,39,.85); }
.nav-toggle{ display:none; background:none; border:none; padding:6px; }
.nav-toggle span{ display:block; width:22px; height:2px; background: var(--navy); margin:5px 0; border-radius:2px; }

.breadcrumb{ font-size:.82rem; color: var(--ink-soft); padding: 16px 0; }
.breadcrumb a{ color: var(--ink-soft); }
.breadcrumb a:hover{ color: var(--gold-dark); }
.breadcrumb span{ color: var(--navy); font-weight:600; }

/* ---------- Footer ---------- */
.site-footer{ background: var(--navy); color: rgba(255,255,255,.72); margin-top: 96px; }
.footer-top{ padding: 64px 32px 40px; max-width: var(--maxw); margin:0 auto; display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
.footer-brand .brand-mark{ color:#fff; }
.footer-brand p{ color: rgba(255,255,255,.6); margin: 16px 0 20px; max-width: 30ch; font-size:.92rem; }
.footer-col h4{ color:#fff; font-family:'Inter',sans-serif; font-size:.85rem; letter-spacing:.04em; margin-bottom:16px; font-weight:600; }
.footer-col li{ margin-bottom:10px; }
.footer-col a{ font-size:.9rem; color: rgba(255,255,255,.65); }
.footer-col a:hover{ color: var(--gold-2); }
.footer-contact li{ display:flex; gap:10px; align-items:flex-start; font-size:.88rem; color: rgba(255,255,255,.65); }
.footer-social{ display:flex; gap:10px; margin-top:18px; }
.footer-social a{ width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ background: var(--gold); border-color: var(--gold); color: var(--navy); }
.footer-bottom{ border-top: 1px solid rgba(255,255,255,.12); padding: 20px 32px; }
.footer-bottom .wrap{ display:flex; justify-content:space-between; align-items:center; font-size:.82rem; color: rgba(255,255,255,.5); flex-wrap:wrap; gap:10px; }
.footer-bottom a:hover{ color: var(--gold-2); }

/* ---------- Section basics ---------- */
.section{ padding: 88px 0; }
.section-tight{ padding: 56px 0; }
.section-head{ max-width: 620px; margin-bottom: 44px; }
.section-head p{ font-size:1.02rem; }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; color: var(--gold-dark); font-weight:600; font-size:.85rem; margin-bottom:10px; }
.eyebrow::before{ content:''; width:20px; height:1.5px; background: var(--gold-dark); display:inline-block; }
.section-navy{ background: var(--navy); color: rgba(255,255,255,.75); }
.section-navy h2, .section-navy h3{ color:#fff; }

/* ---------- Cards ---------- */
.card{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
}
.icon-box{
  width:48px; height:48px; border-radius:10px;
  background: linear-gradient(155deg, var(--cream-2), var(--paper));
  border: 1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 18px;
  color: var(--gold-dark);
}

.grid{ display:grid; gap: 24px; }
.grid-2{ grid-template-columns: repeat(2,1fr); }
.grid-3{ grid-template-columns: repeat(3,1fr); }
.grid-4{ grid-template-columns: repeat(4,1fr); }
.grid-6{ grid-template-columns: repeat(6,1fr); }

.service-card{ transition: box-shadow .18s ease, transform .18s ease; }
.service-card:hover{ box-shadow: var(--shadow); transform: translateY(-3px); }
.service-card h3{ font-size:1.14rem; margin-bottom:6px; }
.service-card p{ font-size:.92rem; margin-bottom: 14px; }
.service-link{ font-size:.86rem; font-weight:600; color: var(--gold-dark); display:inline-flex; gap:6px; align-items:center; }
.service-link svg{ transition: transform .15s ease; }
.service-card:hover .service-link svg{ transform: translateX(3px); }

/* ---------- Services page accents ---------- */
.services-page .page-hero{ position:relative; overflow:hidden; padding:34px 0 52px; background:linear-gradient(120deg, var(--cream), #fffdf8 58%, #edf3f1); }
.services-page .page-hero::after{ content:''; position:absolute; width:250px; height:250px; right:8%; top:-135px; border:1px solid rgba(200,155,60,.3); border-radius:50%; box-shadow:0 0 0 22px rgba(200,155,60,.06), 0 0 0 44px rgba(200,155,60,.04); }
.services-page .page-hero .wrap{ position:relative; z-index:1; }
.services-page .page-hero .eyebrow{ margin-bottom:12px; }
.services-page .section-tight{ padding-top:64px; background:linear-gradient(180deg, #fffdf8 0, var(--cream) 100%); }
.services-page .service-card{ position:relative; overflow:hidden; padding-top:31px; border-top:3px solid var(--gold); }
.services-page .service-card::after{ content:''; position:absolute; width:86px; height:86px; right:-38px; bottom:-42px; border-radius:50%; background:rgba(200,155,60,.1); }
.services-page .service-card:nth-child(2){ border-top-color:#3d8b86; }
.services-page .service-card:nth-child(2) .icon-box{ color:#28716d; background:#e4f1ef; border-color:#c5e0dc; }
.services-page .service-card:nth-child(3){ border-top-color:#b65c49; }
.services-page .service-card:nth-child(3) .icon-box{ color:#a14a39; background:#f7e9e4; border-color:#e9c8bf; }
.services-page .service-card:nth-child(4){ border-top-color:#54779b; }
.services-page .service-card:nth-child(4) .icon-box{ color:#3f6489; background:#e8eff6; border-color:#cad9e8; }
.services-page .service-card:nth-child(5){ border-top-color:#c58a2a; }
.services-page .service-card:nth-child(6){ border-top-color:#6d8060; }
.services-page .service-card:nth-child(6) .icon-box{ color:#5a704e; background:#e9f0e4; border-color:#d0dfc7; }

/* ---------- Banner CTA strip ---------- */
.cta-strip{
  background: var(--navy);
  border-radius: 16px;
  padding: 26px 34px;
  display:flex; align-items:center; justify-content:space-between; gap: 24px;
  color:#fff; flex-wrap:wrap;
}
.cta-strip-icon{ width:44px; height:44px; border-radius:10px; background: rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color: var(--gold-2); flex-shrink:0; }
.cta-strip-text{ display:flex; gap:16px; align-items:center; flex:1; min-width:240px; }
.cta-strip h4{ color:#fff; font-family:'Inter',sans-serif; font-size:1.02rem; margin:0 0 4px; font-weight:600; }
.cta-strip p{ margin:0; font-size:.88rem; color: rgba(255,255,255,.62); }

/* ---------- Hero ---------- */
.hero{ padding: 58px 0 42px; overflow:hidden; background:var(--cream); }
.hero-grid{ display:grid; grid-template-columns: .92fr 1.18fr; gap: 26px; align-items:center; }
.hero h1{ max-width:none; font-size: 3.05rem; margin-bottom: 20px; }
.hero .accent{ color: var(--gold-dark); }
.hero p.lead{ font-size:1.08rem; max-width: 46ch; margin-bottom: 30px; }
.hero-actions{ display:flex; gap:14px; margin-bottom:44px; flex-wrap:wrap; }
.hero-art{ position:relative; min-height:470px; display:flex; align-items:center; justify-content:flex-end; isolation:isolate; overflow:hidden; border-radius:50% 0 0 50%; background-image:url('https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?auto=format&amp;fit=crop&amp;w=1400&amp;q=85'); background-position:center bottom; background-size:cover; }
.hero-art::before{
  content:''; position:absolute; inset:0; background:var(--navy);
  clip-path:polygon(97% 0,100% 0,100% 100%,68% 100%,78% 87%,88% 68%,95% 40%);
  z-index:2; pointer-events:none;
}
.hero-art img{
  position:relative; width:calc(100% + 44px); height:470px; object-fit:cover;
  object-position:78% center; clip-path:none;
  opacity:.93; filter:saturate(1.04) sepia(.03) contrast(1.08); transform:scale(1.1) translateX(8%); z-index:1;
}
.hero-art::after{
  content:''; position:absolute; inset:18px 16px 24px 14px; border:1.5px solid var(--gold);
  border-right:0; border-radius:50% 0 0 50%; opacity:.7; pointer-events:none; z-index:3;
}

.trust-bar{ background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding: 22px 0; }
.trust-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 28px; }
.trust-item{ display:flex; gap:14px; align-items:flex-start; padding:18px 16px; border:1px solid rgba(224,184,91,.28); border-radius:10px; background:var(--navy-2); }
.trust-item .icon-box{ margin-bottom:0; flex-shrink:0; background:rgba(224,184,91,.1); border-color:rgba(224,184,91,.35); color:var(--gold-2); }
.trust-item h4{ font-family:'Inter',sans-serif; font-size:.95rem; color: #fff; margin:0 0 3px; font-weight:600;}
.trust-item p{ font-size:.82rem; margin:0; color:rgba(255,255,255,.68); }

/* ---------- Page hero (interior pages) ---------- */
.page-hero{ padding: 8px 0 40px; }
.page-hero h1{ font-size: 2.3rem; margin-bottom:8px; }
.page-hero p{ font-size:1rem; max-width:56ch; }

/* ---------- Practice area strip (home) ---------- */
.practice-section{ background:linear-gradient(180deg, #fffdf8 0%, var(--cream) 100%); }
.practice-grid{ grid-template-columns:repeat(3,1fr); }
.pa-strip-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:28px; flex-wrap:wrap; gap:18px;}
.pa-strip-head h2{ margin:0; font-size:1.8rem; }
.pa-strip-head .eyebrow{ margin-bottom:8px; }
.pa-strip-head a{ font-size:.88rem; font-weight:600; color: var(--gold-dark); }
.pa-card{ position:relative; overflow:hidden; min-height:270px; text-align:center; padding: 22px 22px 24px; border-top:3px solid var(--gold); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.pa-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--navy); }
.pa-card::after{ content:''; position:absolute; width:72px; height:72px; right:0; bottom:0; background:linear-gradient(135deg, transparent 48%, rgba(84,119,155,.24) 49%); clip-path:polygon(100% 0, 100% 100%, 0 100%); pointer-events:none; }
.pa-card::before{ content:''; position:absolute; width:120px; height:120px; left:-62px; top:-62px; border-radius:50%; background:rgba(224,184,91,.12); pointer-events:none; }
.pa-card-meta{ position:relative; display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; color:var(--ink-soft); font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.pa-card-meta span:first-child{ color:var(--gold-dark); font-family:'Fraunces',serif; font-size:1.05rem; letter-spacing:0; }
.pa-card .icon-box{ position:relative; margin: 0 auto 18px; border-radius:50%; }
.pa-card h4{ font-family:'Inter',sans-serif; font-size:.94rem; margin:0 0 6px; font-weight:600; color: var(--navy); }
.pa-card p{ position:relative; font-size:.82rem; line-height:1.55; margin:0 auto; max-width:24ch; }
.pa-card-link{ position:relative; display:inline-flex; align-items:center; gap:7px; margin-top:18px; color:var(--gold-dark); font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.pa-card-link span{ font-size:1rem; line-height:1; transition:transform .18s ease; }
.pa-card:hover .pa-card-link span{ transform:translate(3px, -3px); }
.pa-card:nth-child(2){ border-top-color:#3d8b86; }
.pa-card:nth-child(2) .icon-box{ color:#28716d; background:#e4f1ef; border-color:#c5e0dc; }
.pa-card:nth-child(3){ border-top-color:#b65c49; }
.pa-card:nth-child(3) .icon-box{ color:#a14a39; background:#f7e9e4; border-color:#e9c8bf; }
.pa-card:nth-child(4){ border-top-color:#54779b; }
.pa-card:nth-child(4) .icon-box{ color:#3f6489; background:#e8eff6; border-color:#cad9e8; }
.pa-card:nth-child(6){ border-top-color:#6d8060; }
.pa-card:nth-child(6) .icon-box{ color:#5a704e; background:#e9f0e4; border-color:#d0dfc7; }

/* ---------- Filter pills ---------- */
.pill-row{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 34px; }
.pill{ padding: 10px 18px; border-radius: 30px; border:1px solid var(--line); background:#fff; font-size:.87rem; font-weight:500; color: var(--ink-soft); transition: all .15s ease; }
.pill.active, .pill:hover{ background: var(--navy); color:#fff; border-color: var(--navy); }

/* ---------- Lawyer card ---------- */
.lawyer-card{ overflow:hidden; padding:0; }
.team-section{ background:#fffdf8; }
.team-section .section-head{ margin-bottom:34px; }
.team-section .section-head{ display:flex; align-items:flex-end; justify-content:space-between; max-width:none; gap:24px; border-bottom:1px solid var(--line); padding-bottom:18px; }
.team-section .section-head h2{ font-size:1.8rem; margin-bottom:0; }
.team-section .section-head p{ margin:0 0 2px; font-size:.86rem; }
.team-grid{ gap:14px; }
.team-grid .lawyer-card{ box-shadow:0 10px 28px -24px rgba(11,30,61,.7); transition:transform .2s ease, box-shadow .2s ease; }
.team-grid .lawyer-card:hover{ transform:translateY(-6px); box-shadow:0 22px 34px -24px rgba(11,30,61,.55); }
.lawyer-photo{ aspect-ratio: 4/4.4; overflow:hidden; background: var(--cream-2); }
.lawyer-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease, filter .35s ease; }
.team-grid .lawyer-card:hover .lawyer-photo img{ transform:scale(1.05); filter:saturate(1.08); }
.team-section .team-grid{ grid-template-columns:repeat(4, 1fr); }
.team-section .lawyer-card{ display:grid; grid-template-columns:76px 1fr; align-items:center; min-width:0; border-radius:8px; }
.team-section .lawyer-card::before{ content:''; position:absolute; top:0; bottom:0; left:0; width:3px; background:var(--gold); }
.team-section .lawyer-card:nth-child(2)::before{ background:#3d8b86; }
.team-section .lawyer-card:nth-child(3)::before{ background:#54779b; }
.team-section .lawyer-card:nth-child(4)::before{ background:#b65c49; }
.team-section .lawyer-photo{ width:76px; height:82px; aspect-ratio:auto; border-radius:0; background:#e9e4dc; }
.team-section .lawyer-photo img{ height:100%; object-fit:cover; object-position:center 18%; filter:saturate(.92) contrast(1.04); }
.team-section .lawyer-body{ padding:14px 12px; }
.team-section .lawyer-body h3{ font-size:.86rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.team-section .lawyer-role{ font-size:.7rem; margin-bottom:5px; }
.team-section .rating{ font-size:.7rem; margin:0; gap:4px; }
.team-section .rating .stars{ letter-spacing:0; }
.team-section .btn{ display:none; }
.lawyer-body{ padding: 20px 20px 22px; }
.lawyer-body h3{ font-size:1.08rem; margin-bottom:2px; }
.lawyer-role{ font-size:.85rem; color: var(--gold-dark); font-weight:600; margin-bottom:8px; }
.rating{ display:flex; align-items:center; gap:6px; font-size:.82rem; color: var(--ink-soft); margin-bottom:16px; }
.rating .stars{ color: var(--gold); letter-spacing:1px; }

/* ---------- Profile page ---------- */
.profile-grid{ display:grid; grid-template-columns: 350px 1fr; gap: 54px; align-items:start; }
.profile-photo{ position:relative; align-self:start; margin-top:18px; height:470px; overflow:visible; background:linear-gradient(var(--navy-3),var(--navy-3)) 12px 54px/32px 2px no-repeat, linear-gradient(var(--navy-3),var(--navy-3)) 12px 62px/20px 2px no-repeat; border-radius:0; display:flex; align-items:flex-end; justify-content:center; }
.profile-photo::before{ content:''; position:absolute; width:302px; height:414px; top:18px; right:-2px; background:var(--navy); border-radius:20px 20px 6px 6px; transform:translate(16px, 16px); box-shadow:18px 18px 0 rgba(27,56,104,.22); z-index:-1; }
.profile-photo::after{ content:''; position:absolute; width:92px; height:16px; right:-2px; bottom:0; background:var(--navy-3); border-radius:0 0 6px 0; box-shadow:-28px -22px 0 -6px var(--navy-3); pointer-events:none; z-index:-1; }
.profile-photo img{ width:94%; height:450px; object-fit:cover; object-position:center 22%; border-radius:20px 20px 6px 6px; filter:grayscale(100%) contrast(1.12) brightness(1.02); }
.profile-page .lawyer-photo{ position:relative; height:190px; aspect-ratio:auto; overflow:hidden; background:#e9e4dc; }
.profile-page .lawyer-photo::before{ content:''; position:absolute; width:150px; height:150px; left:50%; bottom:-32px; transform:translateX(-50%); border-radius:50%; background:#d9d2c7; }
.profile-page .lawyer-photo img{ position:relative; width:100%; height:115%; object-fit:cover; object-position:center 22%; filter:grayscale(100%) contrast(1.08); }
.more-lawyers-section{ background:linear-gradient(180deg, var(--cream) 0%, #fffdf8 100%); }
.more-lawyers-section .section-head{ display:flex; align-items:flex-end; justify-content:space-between; max-width:none; margin-bottom:30px; border-bottom:1px solid var(--line); padding-bottom:18px; }
.more-lawyers-section .section-head h2{ margin-bottom:0; font-size:1.8rem !important; }
.more-lawyers-section .section-head::after{ content:'Trusted legal professionals'; color:var(--ink-soft); font-size:.82rem; letter-spacing:.04em; }
.more-lawyers-section .lawyer-card{ position:relative; border:0; border-radius:4px; background:#fff; box-shadow:0 14px 30px -24px rgba(11,30,61,.65); transition:transform .2s ease, box-shadow .2s ease; }
.more-lawyers-section .lawyer-card::before{ content:''; position:absolute; left:20px; right:20px; top:0; height:3px; background:var(--navy); z-index:2; }
.more-lawyers-section .lawyer-card:hover{ transform:translateY(-6px); box-shadow:0 24px 38px -24px rgba(11,30,61,.55); }
.more-lawyers-section .lawyer-photo{ height:248px; aspect-ratio:auto; background:#e9e4dc; }
.more-lawyers-section .lawyer-photo::after{ content:''; position:absolute; left:16px; bottom:14px; width:26px; height:2px; background:var(--gold); }
.more-lawyers-section .lawyer-photo img{ height:112%; object-fit:cover; object-position:center 16%; filter:saturate(1.08) contrast(1.05) brightness(1.03); transition:transform .3s ease, filter .3s ease; }
.more-lawyers-section .lawyer-card:hover .lawyer-photo img{ transform:scale(1.045); }
.more-lawyers-section .lawyer-body{ padding:22px 20px 24px; }
.more-lawyers-section .lawyer-body h3{ font-size:1.12rem; }
.more-lawyers-section .lawyer-role{ display:inline-block; padding:5px 10px; margin-bottom:10px; border-radius:4px; background:var(--navy); color:#fff; font-size:.74rem; letter-spacing:.03em; }
.more-lawyers-section .rating{ padding-top:10px; border-top:1px solid var(--line); }
.more-lawyers-section .btn-outline{ width:100%; }
.profile-name{ font-size:2.4rem; margin-bottom:4px; }
.profile-role{ color: var(--gold-dark); margin-bottom: 12px; font-size:1.02rem; font-weight:600; }
.profile-content{ position:relative; padding:18px 0 0 34px; }
.profile-content::before{ content:''; position:absolute; left:0; top:18px; bottom:158px; width:3px; background:linear-gradient(var(--gold), var(--navy)); border-radius:3px; opacity:.9; }
.profile-content::after{ content:''; position:absolute; left:-5px; top:14px; width:13px; height:13px; border:2px solid var(--gold); background:var(--cream); border-radius:50%; }
.profile-rating{ display:inline-flex; align-items:center; gap:10px; margin-bottom:22px; padding:8px 13px; border:1px solid var(--line); border-radius:8px; background:#fffdf8; box-shadow:0 8px 18px -18px rgba(11,30,61,.8); }
.profile-bio{ position:relative; padding:18px 20px; margin:0 0 20px; border-left:3px solid var(--gold); background:linear-gradient(105deg, #fffdf8, rgba(242,235,218,.45)); border-radius:0 10px 10px 0; }
.profile-columns{ display:grid; grid-template-columns: 1fr 1fr; gap: 30px; margin: 30px 0; }
.profile-columns > div{ padding:18px 18px 8px; border-top:2px solid var(--navy); background:rgba(255,255,255,.52); border-radius:8px; }
.check-list li{ display:flex; gap:10px; align-items:flex-start; font-size:.94rem; margin-bottom:10px; color: var(--ink); }
.check-list li svg{ flex-shrink:0; margin-top:3px; color: var(--gold-dark); }
.edu-item{ margin-bottom:14px; }
.edu-item strong{ display:block; color: var(--navy); font-size:.95rem; }
.edu-item span{ font-size:.85rem; color: var(--ink-soft); }
.contact-strip{ display:flex; gap: 26px; flex-wrap:wrap; margin: 22px 0 30px; font-size:.92rem; }
.contact-strip li{ display:flex; gap:8px; align-items:center; color: var(--ink); }

/* ---------- Service detail ---------- */
.detail-hero-img{ border-radius: var(--radius); overflow:hidden; aspect-ratio: 16/8; margin: 26px 0 50px; background: var(--navy-2); }
.detail-hero-img img{ width:100%; height:100%; object-fit:cover; }
.sub-service{ display:flex; gap:16px; padding: 22px; border:1px solid var(--line); border-radius: 12px; background:#fff; }
.sub-service .icon-box{ margin-bottom:0; flex-shrink:0; }
.sub-service h4{ font-family:'Inter',sans-serif; font-size:1rem; margin:0 0 4px; color: var(--navy); font-weight:600; }
.sub-service p{ font-size:.86rem; margin:0; }

/* ---------- Booking ---------- */
.stepper{ display:flex; align-items:center; justify-content:space-between; margin: 34px 0 46px; }
.step{ display:flex; flex-direction:column; align-items:center; gap:8px; position:relative; flex:1; }
.step-circle{ width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.85rem; font-weight:700; background:#fff; border:2px solid var(--line); color: var(--ink-soft); z-index:2; }
.step.done .step-circle{ background: var(--navy); border-color: var(--navy); color:#fff; }
.step.current .step-circle{ background: var(--gold); border-color: var(--gold); color: var(--navy); }
.step span.label{ font-size:.78rem; color: var(--ink-soft); text-align:center; }
.step.current span.label{ color: var(--navy); font-weight:600; }
.step::after{ content:''; position:absolute; top:17px; left:50%; width:100%; height:2px; background: var(--line); z-index:1; }
.step:last-child::after{ display:none; }
.step.done::after{ background: var(--navy); }

.booking-grid{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
.booking-col h3{ font-size:1rem; margin-bottom: 16px; }
.option-row{ display:flex; gap:12px; align-items:flex-start; padding: 14px; border:1px solid var(--line); border-radius:10px; margin-bottom:10px; cursor:pointer; background:#fff; transition: border-color .15s ease, background .15s ease; }
.option-row:hover{ border-color: var(--gold); }
.option-row.selected{ border-color: var(--gold); background: #FBF3E1; }
.option-row input{ margin-top:3px; accent-color: var(--gold-dark); }
.option-row strong{ display:block; font-size:.92rem; color: var(--navy); }
.option-row span{ font-size:.78rem; color: var(--ink-soft); }

.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.cal-head button{ background:none; border:1px solid var(--line); width:28px; height:28px; border-radius:6px; }
.cal-grid{ display:grid; grid-template-columns: repeat(7,1fr); gap:6px; text-align:center; }
.cal-grid span{ font-size:.72rem; color: var(--ink-soft); padding-bottom:4px; }
.cal-day{ font-size:.82rem; padding: 8px 0; border-radius:8px; cursor:pointer; }
.cal-day:hover{ background: var(--cream-2); }
.cal-day.selected{ background: var(--navy); color:#fff; font-weight:700; }
.cal-day.muted{ color: #C7C1AE; cursor:default; }

.time-slot{ padding: 12px; border:1px solid var(--line); border-radius:10px; margin-bottom:10px; font-size:.88rem; text-align:center; background:#fff; cursor:pointer; }
.time-slot:hover{ border-color: var(--gold); }
.time-slot.selected{ background: var(--navy); color:#fff; border-color: var(--navy); }

.booking-form-panel{ margin-top: 30px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:.85rem; font-weight:600; color: var(--navy); margin-bottom:6px; }
.field input, .field select, .field textarea{
  width:100%; padding: 12px 14px; border-radius:8px; border:1px solid var(--line); background:#fff;
  font-family:inherit; font-size:.92rem; color: var(--ink);
}
.field textarea{ min-height:110px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(200,155,60,.18); }
.booking-actions{ display:flex; justify-content:space-between; margin-top: 30px; }
.confirm-box{ text-align:center; padding: 60px 20px; }
.confirm-tick{ width:64px; height:64px; border-radius:50%; background: #E8F3E9; color:#2F8F46; display:flex; align-items:center; justify-content:center; margin: 0 auto 20px; }
.summary-card{ max-width:420px; margin: 26px auto 0; text-align:left; }
.summary-card li{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dashed var(--line); font-size:.9rem; }
.summary-card li:last-child{ border-bottom:none; }
.summary-card li span:first-child{ color: var(--ink-soft); }
.summary-card li span:last-child{ font-weight:600; color: var(--navy); }
.booking-step{ display:none; }
.booking-step.active{ display:block; animation: fadein .25s ease; }
@keyframes fadein{ from{ opacity:0; transform: translateY(6px);} to{ opacity:1; transform:translateY(0);} }

/* ---------- Articles ---------- */
.article-feature{ display:grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items:center; margin-bottom: 50px; }
.article-feature-img{ border-radius: var(--radius); overflow:hidden; aspect-ratio:16/11; background: var(--navy-2); }
.article-feature-img img{ width:100%; height:100%; object-fit:cover; }
.tag{ display:inline-block; padding:5px 12px; border-radius:20px; background: var(--cream-2); color: var(--gold-dark); font-size:.75rem; font-weight:700; margin-bottom:12px; }
.article-meta{ font-size:.8rem; color: var(--ink-soft); margin-bottom:14px; }
.article-list-item{ display:flex; gap:18px; padding: 18px 0; border-bottom:1px solid var(--line); }
.article-thumb{ width:110px; height:82px; border-radius:10px; overflow:hidden; flex-shrink:0; background: var(--cream-2); }
.article-thumb img{ width:100%; height:100%; object-fit:cover; }
.article-list-item h4{ font-family:'Inter',sans-serif; font-size:.98rem; margin:0 0 6px; color: var(--navy); font-weight:600; }
.article-list-item .article-meta{ margin:0; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns: 1fr 1.15fr 0.95fr; gap: 24px; align-items:stretch; }
.contact-info{ background:var(--navy); border-radius:var(--radius); padding:30px 26px 12px; color:#fff; }
.contact-info .eyebrow{ color:var(--gold-2); margin-bottom:14px; }
.contact-info .eyebrow::before{ background:var(--gold-2); }
.contact-info h2{ color:#fff; font-size:1.55rem; margin-bottom:12px; }
.contact-intro{ color:rgba(255,255,255,.68); font-size:.9rem; margin-bottom:28px; }
.info-list li{ display:flex; gap:14px; margin-bottom:22px; }
.info-list .icon-box{ width:40px; height:40px; margin-bottom:0; flex-shrink:0; background:rgba(224,184,91,.1); border-color:rgba(224,184,91,.35); color:var(--gold-2); }
.info-list h4{ font-family:'Inter',sans-serif; font-size:.9rem; margin:0 0 4px; color:#fff; font-weight:600; }
.info-list p{ margin:0; font-size:.82rem; color:rgba(255,255,255,.65); }
.contact-form-card{ padding:30px; box-shadow:var(--shadow); border-top:3px solid var(--gold); }
.contact-form-card h3{ font-size:1.35rem; }
.form-intro{ font-size:.88rem; margin:-8px 0 22px; }
.map-box{ position:relative; border-radius:var(--radius); overflow:hidden; height:100%; min-height:360px; box-shadow:var(--shadow); }
.map-caption{ position:absolute; left:18px; right:18px; bottom:18px; padding:14px 16px; border-radius:10px; background:rgba(11,30,61,.92); color:#fff; box-shadow:0 10px 24px -16px rgba(11,30,61,.8); }
.map-caption strong, .map-caption span{ display:block; }
.map-caption strong{ font-size:.9rem; }
.map-caption span{ color:rgba(255,255,255,.68); font-size:.78rem; margin-top:2px; }

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.small{ font-size:.82rem; }
.divider{ height:1px; background: var(--line); margin: 46px 0; }

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ order:-1; min-height:380px; }
  .hero-art img{ height:380px; transform:scale(1.08) translateX(3%); object-position:74% center; }
  .trust-grid{ grid-template-columns: repeat(2,1fr); }
  .grid-4{ grid-template-columns: repeat(2,1fr); }
  .grid-6{ grid-template-columns: repeat(3,1fr); }
  .grid-3{ grid-template-columns: repeat(2,1fr); }
  .footer-top{ grid-template-columns: 1fr 1fr; }
  .profile-grid{ grid-template-columns:1fr; }
  .profile-columns{ grid-template-columns:1fr; }
  .article-feature{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .booking-grid{ grid-template-columns:1fr; }
}
@media (max-width: 1020px){
  .nav-links, .header-actions .btn{ display:none; }
  .trust-grid{ grid-template-columns:1fr; gap:12px; }
  .nav-toggle{ display:block; }
  .site-header.open .nav-links{
    display:flex; position:absolute; top:100%; left:0; right:0; background:#fff;
    flex-direction:column; align-items:stretch; padding:14px 20px 18px; gap:4px;
    border-bottom:1px solid var(--line); box-shadow:0 14px 24px -22px rgba(11,30,61,.5);
  }
  .site-header.open .nav-links a{
    padding:11px 4px; border-bottom:1px solid rgba(11,30,61,.07);
  }
  .site-header.open .nav-links a:last-child{ border-bottom:0; }
  .site-header.open .nav-links a.active::after{ display:none; }
  .site-header.open .nav-toggle span:first-child{ transform:translateY(7px) rotate(45deg); }
  .site-header.open .nav-toggle span:nth-child(2){ opacity:0; }
  .site-header.open .nav-toggle span:last-child{ transform:translateY(-7px) rotate(-45deg); }
  .nav-toggle span{ transition:transform .15s ease, opacity .15s ease; }
  .brand-sub{ font-size:.56rem; }
  .brand-mark{ font-size:1.28rem; }
  .brand-rule{ height:24px; }
  .hero h1{ font-size:2.2rem; }
  .grid-2, .grid-3, .grid-4{ grid-template-columns: 1fr; }
  .grid-6{ grid-template-columns: repeat(2,1fr); }
  .footer-top{ grid-template-columns:1fr; padding: 48px 24px 30px; }
  .cta-strip{ flex-direction:column; align-items:flex-start; }
  .form-row{ grid-template-columns:1fr; }
  .wrap{ padding:0 20px; }
  .header-inner{ padding:16px 20px; }
}
