/* ============================================================
   LANGBEIN ADR — HOMEPAGE CSS (FIXED)
   All sections properly constrained with .lh-inner wrapper
   ============================================================ */

.lhome{
  --navy:#0B3C5D;
  --navy-deep:#072a42;
  --navy-ink:#0F1B2A;
  --teal:#1FA199;
  --teal-deep:#0f7a73;
  --bronze:#A47148;
  --paper:#F7F4EE;
  --paper-2:#EFEAE0;
  --line:rgba(11,60,93,0.12);
  --ink:#0F1B2A;
  --ink-2:#334155;
  --ink-3:#64748b;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Manrope', -apple-system, sans-serif;
  --mono:'JetBrains Mono', ui-monospace, monospace;
  --accent:var(--teal);
  --page-gutter:clamp(20px, 2.75vw, 80px);

  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
}

/* ========== SHARED SCAFFOLDING ========== */
.lh-section{ padding:120px var(--page-gutter); background:#fff; }
.lh-inner{ max-width:1320px; margin:0 auto; }
.lh-label{
  font-family:var(--mono); font-size:11px;
  text-transform:uppercase; letter-spacing:0.22em;
  color:var(--accent);
  display:flex; align-items:center; gap:12px;
  margin:0 0 20px;
}
.lh-label::before{ content:""; width:28px; height:1px; background:var(--accent); }
.lh-h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:56px;
  line-height:1.05;
  letter-spacing:-0.01em;
  margin:0 0 24px;
  color:var(--ink);
  max-width:820px;
  text-wrap:balance;
}
.lh-h2 em{ font-style:italic; font-weight:400; color:var(--navy); }
.lh-lede{
  font-size:19px;
  line-height:1.6;
  color:var(--ink-2);
  max-width:640px;
  margin:0;
}

/* ========== BUTTONS ========== */
.lhome-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 20px;
  border-radius:2px;
  font-family:var(--sans);
  font-weight:600;
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  text-decoration:none;
  transition:all .2s ease;
  border:1px solid transparent;
}
.lhome-btn-lg{ padding:16px 28px; }
.lhome-btn-primary{ background:var(--accent); color:#fff; }
.lhome-btn-primary:hover{ background:var(--teal-deep); transform:translateY(-1px); }
.lhome-btn-outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,0.3); }
.lhome-btn-outline-light:hover{ background:rgba(255,255,255,0.08); border-color:#fff; }

/* ========== HERO ========== */
.lhome-hero{
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);
  padding:0 var(--page-gutter);
}
.lhome-hero-card{
  width:100%;
  max-width:none !important;
  margin:0 auto !important;
  background:transparent;
  color:#fff;
  border-radius:0 !important;
  box-shadow:none !important;
  overflow:hidden;
  position:relative;
}
.lhome-hero-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 600px 300px at 90% 10%, rgba(31,161,153,0.25), transparent 70%);
  pointer-events:none;
}
.lhome-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.15fr) minmax(340px, 540px);
  gap:clamp(44px, 4.5vw, 96px);
  padding:clamp(48px, 4.75vw, 88px) 0 clamp(44px, 4vw, 72px);
  position:relative;
  align-items:center;
}
.lhome-hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.2em;
  color:var(--teal);
  margin:0 0 22px;
}
.lhome-hero-eyebrow::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 10px var(--teal);
}
.lhome-hero-h1{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(54px, 4.15vw, 66px);
  line-height:1.02;
  letter-spacing:-0.01em;
  margin:0 0 24px;
  color:#fff;
  text-wrap:balance;
}
.lhome-hero-h1 em{ font-style:italic; font-weight:400; color:var(--teal); }
.lhome-hero-sub{
  font-size:18px;
  line-height:1.6;
  color:rgba(255,255,255,0.75);
  max-width:540px;
  margin:0 0 34px;
}
.lhome-hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.lhome-hero-portrait{
  position:relative;
  aspect-ratio:4/5;
  width:100%;
  max-width:540px;
  justify-self:end;
  border-radius:4px;
  overflow:hidden;
  background:linear-gradient(180deg, #3a5a75 0%, #1e3a52 100%);
}
.lhome-hero-portrait img{ width:100%; height:100%; object-fit:cover; }
.lhome-hero-portrait-ph{
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  font-family:var(--mono);
  font-size:12px;
  color:rgba(255,255,255,0.5);
}
.lhome-hero-badge{
  position:absolute;
  bottom:20px;
  left:20px;
  right:20px;
  background:rgba(11,60,93,0.7);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.1);
  padding:14px 18px;
  display:flex;
  align-items:center;
  gap:12px;
}
.lhome-hero-badge-name{ font-family:var(--serif); font-size:19px; color:#fff; }
.lhome-hero-badge-role{ font-family:var(--mono); font-size:10px; color:var(--teal); text-transform:uppercase; letter-spacing:0.2em; margin-top:4px; }
.lhome-hero-badge-avail{ margin-left:auto; display:flex; align-items:center; gap:6px; font-size:11px; color:rgba(255,255,255,0.8); }
.lhome-hero-badge-avail::before{ content:none !important; }
.lhome-pulse{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#4ade80;
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(74,222,128,0.6) }
  70%{ box-shadow:0 0 0 10px rgba(74,222,128,0) }
  100%{ box-shadow:0 0 0 0 rgba(74,222,128,0) }
}
.lhome-hero-stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border-top:1px solid rgba(255,255,255,0.08);
}
.lhome-stat{
  padding:32px clamp(24px, 2.75vw, 56px);
  border-right:1px solid rgba(255,255,255,0.08);
}
.lhome-stat:last-child{ border-right:0; }
.lhome-stat-num{
  font-family:var(--serif);
  font-size:52px;
  line-height:1;
  font-weight:500;
  color:#fff;
  display:flex;
  align-items:baseline;
  gap:4px;
}
.lhome-stat-suffix{ font-size:28px; color:var(--teal); font-weight:400; }
.lhome-stat-label{
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.2em;
  color:rgba(255,255,255,0.55);
  margin-top:10px;
}

/* ========== PRACTICE AREAS ========== */
.lhome-areas{
  margin-top:60px;
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
}
.lhome-area{
  border-bottom:1px solid var(--line);
  transition:background .3s ease;
}
.lhome-area:hover{ background:var(--paper-2); }
.lhome-area-head{
  display:grid;
  grid-template-columns:80px 1.3fr 2fr auto;
  align-items:center;
  gap:32px;
  padding:32px 16px;
  cursor:pointer;
}
.lhome-area-num{ font-family:var(--mono); font-size:12px; color:var(--ink-3); letter-spacing:0.1em; }
.lhome-area-title{
  font-family:var(--serif);
  font-size:36px;
  font-weight:500;
  color:var(--ink);
  margin:0;
  transition:color .3s ease;
}
.lhome-area:hover .lhome-area-title{ color:var(--navy); }
.lhome-area-preview{ font-size:15px; color:var(--ink-3); line-height:1.5; }
.lhome-area-toggle{
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid var(--line);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .3s ease;
  color:var(--ink);
}
.lhome-area:hover .lhome-area-toggle,
.lhome-area.open .lhome-area-toggle{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.lhome-area-toggle svg{ transition:transform .3s ease; }
.lhome-area.open .lhome-area-toggle svg{ transform:rotate(45deg); }
.lhome-area-body{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .4s cubic-bezier(.2,.7,.2,1);
}
.lhome-area.open .lhome-area-body{ grid-template-rows:1fr; }
.lhome-area-body > div{ overflow:hidden; }
.lhome-area-detail{
  display:grid;
  grid-template-columns:80px 1fr 1fr;
  gap:32px;
  padding:0 16px 40px;
}
.lhome-area-lede{
  font-family:var(--serif);
  font-style:italic;
  font-size:22px;
  line-height:1.4;
  color:var(--ink);
  grid-column:2;
  margin:0;
}
.lhome-area-list{
  grid-column:3;
}
.lhome-area-list-title{
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.2em;
  color:var(--ink-3);
  margin-bottom:12px;
}
.lhome-area-list ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 24px;
}
.lhome-area-list li{
  font-size:14px;
  color:var(--ink-2);
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.5;
}
.lhome-area-list li::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent);
  margin-top:9px;
  flex-shrink:0;
}

/* ========== PROCESS TABS ========== */
.lhome-process{
  background:var(--navy-ink);
  color:#fff;
  padding:120px var(--page-gutter);
}
.lhome-process .lh-label{ color:var(--teal); }
.lhome-process .lh-label::before{ background:var(--teal); }
.lhome-process .lh-h2{ color:#fff; }
.lhome-process .lh-h2 em{ color:var(--teal); }
.lhome-process-lede{
  font-size:19px;
  line-height:1.6;
  color:rgba(255,255,255,0.7);
  max-width:640px;
  margin:0;
}
.lhome-tabs{
  margin-top:56px;
  display:flex;
  gap:0;
  border-bottom:1px solid rgba(255,255,255,0.1);
  flex-wrap:wrap;
}
.lhome-tab{
  padding:20px 32px 20px 0;
  font-family:var(--sans);
  font-weight:500;
  font-size:14px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.5);
  background:none;
  border:none;
  cursor:pointer;
  position:relative;
  transition:color .3s ease;
  margin-right:40px;
}
.lhome-tab:hover{ color:rgba(255,255,255,0.85); }
.lhome-tab.active{ color:#fff; }
.lhome-tab::after{
  content:"";
  position:absolute;
  left:0;
  right:32px;
  bottom:-1px;
  height:2px;
  background:var(--teal);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.lhome-tab.active::after{ transform:scaleX(1); }
.lhome-tab-num{ font-family:var(--mono); font-size:11px; color:var(--teal); margin-right:10px; }
.lhome-tab-panel{
  display:none;
  padding:56px 0;
  grid-template-columns:1.2fr 1fr;
  gap:80px;
  align-items:start;
}
.lhome-tab-panel.active{
  display:grid;
  animation:fadeIn .5s ease;
}
@keyframes fadeIn{
  from{ opacity:0; transform:translateY(8px) }
  to{ opacity:1; transform:translateY(0) }
}
.lhome-tp-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:42px;
  line-height:1.1;
  margin:0 0 20px;
  color:#fff;
}
.lhome-tp-body{
  font-size:17px;
  line-height:1.65;
  color:rgba(255,255,255,0.75);
  margin:0 0 16px;
}
.lhome-tab-steps{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  padding:36px;
}
.lhome-tab-steps-title{
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.2em;
  color:var(--teal);
  margin-bottom:20px;
}
.lhome-tab-step{
  display:grid;
  grid-template-columns:40px 1fr;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.lhome-tab-step:last-child{ border-bottom:0; }
.lhome-tab-step-num{ font-family:var(--serif); font-size:26px; color:var(--teal); }
.lhome-tab-step-title{ font-weight:600; font-size:15px; color:#fff; margin-bottom:4px; }
.lhome-tab-step-desc{ font-size:13.5px; color:rgba(255,255,255,0.6); line-height:1.5; }

/* ========== PILLARS ========== */
.lhome-why{ background:var(--paper); }
.lhome-pillars{
  margin-top:56px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  gap:0;
}
.lhome-pillar{
  padding:48px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
  transition:background .3s ease;
}
.lhome-pillar:hover{ background:var(--paper-2); }
.lhome-pillar-num{ font-family:var(--mono); font-size:11px; color:var(--accent); letter-spacing:0.2em; margin-bottom:20px; }
.lhome-pillar-icon{ width:44px; height:44px; color:var(--navy); margin-bottom:24px; }
.lhome-pillar h3{
  font-family:var(--serif);
  font-weight:500;
  font-size:28px;
  line-height:1.15;
  margin:0 0 14px;
  color:var(--ink);
}
.lhome-pillar p{
  font-size:15px;
  line-height:1.6;
  color:var(--ink-2);
  margin:0;
}

/* ========== BLOG ========== */
.lhome-blog{
  background:var(--paper);
  padding:120px var(--page-gutter);
  border-top:1px solid var(--line);
}
.lhome-blog-grid{
  margin-top:60px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.lhome-post{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  transition:all .4s ease;
  text-decoration:none;
}
.lhome-post:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 48px -24px rgba(11,60,93,0.25);
  border-color:var(--accent);
}
.lhome-post-img{
  aspect-ratio:16/10;
  background:var(--paper-2);
  overflow:hidden;
}
.lhome-post-ph{
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  font-family:var(--mono);
  font-size:11px;
  color:var(--ink-3);
}
.lhome-post-meta{
  display:flex;
  gap:14px;
  font-family:var(--mono);
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:0.18em;
  color:var(--ink-3);
  padding:24px 28px 0;
}
.lhome-post-cat{ color:var(--accent); }
.lhome-post h3{
  font-family:var(--serif);
  font-weight:500;
  font-size:24px;
  line-height:1.2;
  margin:12px 28px 16px;
  color:var(--ink);
}
.lhome-post p{
  font-size:14.5px;
  color:var(--ink-2);
  line-height:1.55;
  margin:0 28px 24px;
}
.lhome-post-more{
  margin:auto 28px 24px;
  font-family:var(--mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.18em;
  color:var(--accent);
}

/* ========== RESPONSIVE ========== */
@media (max-width:1024px){
  .lh-section{ padding:80px 24px; }
  .lhome-hero{ padding:32px 24px 0; }
  .lhome-hero-grid{ grid-template-columns:1fr; padding:48px 0 42px; gap:32px; }
  .lhome-hero-portrait{ max-width:460px; justify-self:center; }
  .lhome-hero-h1{ font-size:52px; }
  .lhome-hero-stats{ grid-template-columns:repeat(2,1fr); }
  .lhome-hero-stats .lhome-stat:nth-child(2){ border-right:0; }
  .lhome-hero-stats .lhome-stat:nth-child(1),
  .lhome-hero-stats .lhome-stat:nth-child(2){ border-bottom:1px solid rgba(255,255,255,0.08); }
  .lh-h2{ font-size:40px; }
  .lhome-area-head{ grid-template-columns:60px 1fr auto; }
  .lhome-area-preview{ display:none; }
  .lhome-area-title{ font-size:28px; }
  .lhome-tab-panel{ grid-template-columns:1fr; gap:40px; }
  .lhome-pillars, .lhome-blog-grid{ grid-template-columns:1fr; }
}

@media (max-width:600px){
  .lhome-hero-h1{ font-size:40px; }
  .lhome-hero-stats{ grid-template-columns:1fr; }
  .lhome-hero-stats .lhome-stat{ border-right:0; border-bottom:1px solid rgba(255,255,255,0.08); }
  .lhome-area-detail{ grid-template-columns:1fr; gap:20px; padding:0 16px 32px; }
  .lhome-area-lede, .lhome-area-list{ grid-column:1; }
  .lhome-area-list ul{ grid-template-columns:1fr; }
}
