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

:root{
  --ivory:      #f7f5f0;
  --ivory-2:    #f0ede5;
  --charcoal:   #14161c;
  --charcoal-2: #1c1f27;
  --gray:       #6e6b63;
  --gray-soft:  rgba(110,107,99,0.72);
  --ink:        #1c1c1a;
  --bronze:     #a9835a;
  --bronze-dim: #a9835a;
  --bronze-line:rgba(169,131,90,0.35);
  --line:       rgba(28,28,26,0.10);
  --line-on-dark: rgba(247,245,240,0.14);
  --maxw: 1180px;
  --serif: 'Cormorant Garamond', serif;
  --sans: 'Manrope', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;}
body{
  margin:0;background:var(--ivory);color:var(--ink);
  font-family:var(--sans);font-weight:400;
  -webkit-font-smoothing:antialiased;
  line-height:1.65;font-size:16px;
  overflow-x:hidden;width:100%;
}
h1,h2,h3,h4{
  font-family:var(--serif);color:var(--charcoal);
  margin:0;font-weight:500;letter-spacing:0.002em;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}
@media (max-width:700px){.wrap{padding:0 24px;}}

.eyebrow{
  display:inline-block;font-family:var(--sans);
  font-size:11.5px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--bronze);font-weight:600;
}
.eyebrow-lg{font-size:16.5px;font-weight:700;letter-spacing:0.14em;}
.arrow{display:inline-block;transition:transform .3s ease;}
a:hover .arrow, button:hover .arrow{transform:translate(3px,-3px);}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;left:0;right:0;z-index:100;
  background:rgba(247,245,240,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .4s ease, background .4s ease;
}
.site-header.scrolled{
  border-bottom-color:var(--line);
  background:rgba(247,245,240,0.97);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:92px;
}
.brand{display:flex;align-items:center;gap:14px;}
.brand img{height:48px;width:auto;}
.brand .wordmark{
  font-family:var(--sans);font-weight:700;font-size:15.5px;
  letter-spacing:0.1em;color:var(--charcoal);
}
nav.main-nav{display:flex;align-items:center;gap:40px;}
nav.main-nav a{
  font-size:14px;letter-spacing:0.02em;
  color:var(--ink);font-weight:500;
  padding:4px 0;border-bottom:1px solid transparent;
  transition:color .25s ease, border-color .25s ease;
}
nav.main-nav a:hover{color:var(--bronze);}
nav.main-nav a.contact-link{color:var(--bronze);}
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{display:block;width:22px;height:1px;background:var(--charcoal);margin:6px 0;}

.mobile-panel{
  position:fixed;inset:0;top:92px;background:var(--ivory);z-index:99;
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;
  display:flex;flex-direction:column;padding:20px 24px;gap:8px;
}
.mobile-panel.open{transform:translateY(0);opacity:1;pointer-events:auto;}
.mobile-panel a{
  font-family:var(--serif);font-size:22px;color:var(--charcoal);
  padding:16px 0;border-bottom:1px solid var(--line);
}
.mobile-panel a.contact-link{color:var(--bronze);}

@media (max-width:900px){
  nav.main-nav{display:none;}
  .burger{display:block;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;padding:130px 0 100px;overflow:hidden;
  min-height:620px;display:flex;align-items:center;
}
.hero .eyebrow{margin-bottom:26px;display:flex;align-items:center;gap:10px;}
.hero .eyebrow::before{content:"";width:26px;height:1px;background:var(--bronze);display:inline-block;}
.hero h1{
  font-size:clamp(38px,6vw,74px);font-weight:500;line-height:1.08;
  max-width:900px;letter-spacing:-0.01em;
}
.hero .lede{
  margin-top:32px;max-width:520px;font-size:17px;color:var(--gray);
  line-height:1.75;
}
.hero .hero-link{
  margin-top:46px;display:inline-flex;align-items:center;gap:8px;
  font-size:13px;letter-spacing:0.05em;text-transform:uppercase;
  font-weight:600;color:var(--charcoal);
  border-bottom:1px solid var(--charcoal);padding-bottom:4px;
  transition:color .25s ease, border-color .25s ease;
}
.hero .hero-link:hover{color:var(--bronze);border-color:var(--bronze);}

.hero .wrap{position:relative;z-index:1;width:100%;}
.hero-text{max-width:560px;}

.hero-photo{
  position:absolute;top:0;right:0;bottom:0;width:58%;z-index:0;
  pointer-events:none;
}
.hero-photo img{
  width:100%;height:100%;object-fit:cover;object-position:center 12%;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.25) 26%, rgba(0,0,0,0.75) 48%, #000 68%);
  mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.25) 26%, rgba(0,0,0,0.75) 48%, #000 68%);
}

@media (max-width:960px){
  .hero{display:flex;flex-direction:column;padding:118px 0 60px;min-height:auto;}
  .hero-photo{
    position:relative;width:100%;height:300px;margin-top:40px;
    order:2;
  }
  .hero-photo img{
    object-position:center top;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.6) 18%, #000 40%);
    mask-image:linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.6) 18%, #000 40%);
  }
  .hero-text{max-width:100%;order:1;}
}

/* ---------- Sections ---------- */
section{padding:120px 0;}
.section-tight{padding:90px 0;}
.section-dark{background:var(--charcoal);color:var(--ivory);}
.section-dark h2,.section-dark h3{color:var(--ivory);}
.section-dark .gray-text{color:rgba(247,245,240,0.6);}
.divider{border:none;border-top:1px solid var(--line);margin:0;}

.statement{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(28px,3.6vw,42px);line-height:1.3;
  max-width:760px;color:var(--charcoal);
}
.two-col{display:grid;grid-template-columns:0.9fr 1.1fr;gap:80px;align-items:start;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;gap:36px;}}
.two-col .side p{color:var(--gray);font-size:15.5px;margin-top:18px;}
.link-arrow{
  margin-top:28px;display:inline-flex;align-items:center;gap:8px;font-size:13px;
  letter-spacing:0.04em;text-transform:uppercase;font-weight:600;color:var(--bronze);
}
.link-arrow:hover{color:var(--charcoal);}

/* section head */
.section-head{margin-bottom:64px;max-width:640px;}
.section-head .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.section-head .eyebrow::before{content:"";width:26px;height:1px;background:var(--bronze);display:inline-block;}
.section-head h2{font-size:clamp(28px,3.6vw,40px);}
.section-head p{margin-top:16px;color:var(--gray);font-size:15.5px;}

/* ---------- Practice areas editorial list ---------- */
.practice-list{border-top:1px solid var(--line);}
.practice-row{
  border-bottom:1px solid var(--line);
  padding:30px 0;cursor:pointer;
  transition:background .3s ease;
}
.practice-row:hover{background:rgba(28,28,26,0.02);}
.practice-row-head{
  display:flex;align-items:baseline;gap:26px;
}
.practice-row .idx{
  font-family:var(--serif);font-size:14px;color:var(--gray);
  min-width:26px;flex-shrink:0;
}
.practice-row h3{
  font-size:clamp(20px,2.6vw,27px);font-weight:500;flex:1;
  transition:color .25s ease;
}
.practice-row:hover h3{color:var(--bronze);}
.practice-row .plus{
  font-size:16px;color:var(--bronze);flex-shrink:0;transition:transform .3s ease;
}
.practice-row.open .plus{transform:rotate(45deg);}
.practice-desc{
  max-height:0;overflow:hidden;transition:max-height .35s ease;
}
.practice-desc p{
  padding:14px 0 4px 52px;color:var(--gray);font-size:14.5px;max-width:640px;
}
@media (max-width:600px){
  .practice-desc p{padding-left:40px;}
}

/* ---------- Team ---------- */
.team-list{border-top:1px solid var(--line-on-dark);}
.team-row{border-bottom:1px solid var(--line-on-dark);padding:48px 0;}
.team-row-top{display:flex;align-items:flex-start;gap:30px;flex-wrap:wrap;}
.team-row .idx{font-family:var(--serif);font-size:13px;color:rgba(247,245,240,0.4);}
.team-row h3{font-size:clamp(26px,3vw,34px);color:var(--ivory);margin-top:10px;}
.team-row .role{
  display:block;margin-top:6px;font-size:12.5px;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--bronze);font-weight:600;
}
.team-row .areas{
  margin-top:16px;font-size:14px;color:rgba(247,245,240,0.55);max-width:520px;
}
.team-row .profile-toggle{
  margin-top:22px;display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;letter-spacing:0.05em;text-transform:uppercase;font-weight:600;
  color:var(--ivory);border-bottom:1px solid rgba(247,245,240,0.3);padding-bottom:3px;
  background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;
  font-family:var(--sans);
}
.team-row .profile-toggle:hover{color:var(--bronze);border-color:var(--bronze);}
.profile-detail{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.profile-detail-inner{padding-top:32px;display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:760px;}
@media (max-width:700px){.profile-detail-inner{grid-template-columns:1fr;}}
.profile-field .flabel{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--bronze);}
.profile-field p{margin-top:8px;font-size:14.5px;color:rgba(247,245,240,0.65);}

/* ---------- Publications editorial list ---------- */
.pub-list{border-top:1px solid var(--line);}
.pub-row{
  border-bottom:1px solid var(--line);padding:32px 0;
  display:grid;grid-template-columns:120px 1fr auto;gap:24px;align-items:baseline;
  transition:background .25s ease;
}
.pub-row:hover{background:rgba(28,28,26,0.02);}
.pub-row .date{font-size:13px;color:var(--gray);}
.pub-row h3{font-size:clamp(18px,2.2vw,22px);font-weight:500;line-height:1.4;}
.pub-row .tag{font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:var(--bronze);margin-top:6px;display:block;}
.pub-row .go{font-size:14px;color:var(--charcoal);transition:transform .3s ease, color .25s ease;}
.pub-row:hover .go{color:var(--bronze);transform:translate(3px,-3px);}
@media (max-width:640px){
  .pub-row{grid-template-columns:1fr;gap:8px;}
  .pub-row .go{justify-self:flex-start;}
}

/* ---------- Article page ---------- */
.article-hero{padding:150px 0 60px;border-bottom:1px solid var(--line);}
.article-hero .tag{color:var(--bronze);}
.article-hero h1{font-size:clamp(30px,4.4vw,48px);margin-top:20px;max-width:760px;line-height:1.25;}
.article-hero .meta{margin-top:22px;color:var(--gray);font-size:13.5px;}
.article-content{max-width:700px;margin:0 auto;padding:80px 40px 120px;}
.article-content p{color:var(--gray);font-size:16.5px;margin-bottom:22px;line-height:1.8;}
.article-content h2{font-size:23px;margin-top:44px;margin-bottom:16px;font-weight:500;}
.article-content .disclaimer{
  margin-top:56px;padding-top:24px;border-top:1px solid var(--line);
  font-size:13.5px;color:var(--gray);font-style:italic;
}

/* ---------- Contact CTA ---------- */
.cta-block{text-align:left;max-width:760px;}
.cta-block h2{font-size:clamp(20px,2.3vw,25px);line-height:1.45;font-weight:500;}
.cta-block p{margin-top:20px;color:rgba(247,245,240,0.6);font-size:16px;max-width:560px;}
.cta-block .hero-link{color:var(--ivory);border-color:rgba(247,245,240,0.3);margin-top:38px;}
.cta-block .hero-link:hover{color:var(--bronze);border-color:var(--bronze);}
.contact-info-row{display:flex;gap:60px;margin-top:56px;flex-wrap:wrap;}
.contact-info-row .item .flabel{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--bronze);}
.contact-info-row .item .fval{font-family:var(--serif);font-size:19px;margin-top:8px;color:var(--ivory);}
.contact-info-row .item .fval.phone-value{
  font-family:var(--sans) !important;font-weight:500;font-size:19px;letter-spacing:0.01em;
}
.contact-info-row .item .fval a{transition:color .2s ease;}
.contact-info-row .item .fval a:hover{color:var(--bronze);}
.contact-info-row .item .phone-owner{
  margin-top:8px;font-size:14.5px;color:rgba(247,245,240,0.6);font-family:var(--sans);font-weight:500;
}

.whatsapp-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:10px;
  font-family:var(--sans);font-size:13px;font-weight:500;color:var(--bronze);
  border-bottom:1px solid var(--bronze-line);padding-bottom:2px;
}
.whatsapp-link:hover{color:var(--ivory);border-color:var(--ivory);}
.whatsapp-link svg{width:15px;height:15px;flex-shrink:0;}

.legal-fine{
  max-width:760px;margin:0 auto;padding:0 0 26px;
  font-size:11px;line-height:1.7;color:rgba(247,245,240,0.32);text-align:center;
}

form.contact-form{display:grid;gap:20px;max-width:520px;}
form.contact-form input,form.contact-form textarea{
  width:100%;padding:14px 0;background:transparent;
  border:none;border-bottom:1px solid var(--line);color:var(--ink);
  font-family:var(--sans);font-size:15px;
}
.section-dark form.contact-form input,.section-dark form.contact-form textarea{
  color:var(--ivory);border-bottom-color:var(--line-on-dark);
}
form.contact-form input::placeholder,form.contact-form textarea::placeholder{color:var(--gray-soft);}
form.contact-form label{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--bronze);margin-bottom:6px;display:block;}
form.contact-form button{
  justify-self:flex-start;margin-top:8px;
  background:none;border:none;cursor:pointer;padding:0;
  font-family:var(--sans);font-size:13px;letter-spacing:0.05em;text-transform:uppercase;font-weight:600;
  color:var(--charcoal);border-bottom:1px solid var(--charcoal);padding-bottom:4px;
}
form.contact-form button:hover{color:var(--bronze);border-color:var(--bronze);}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  background:none;border:none;cursor:pointer;padding:28px 0;text-align:left;
  font-family:var(--serif);font-size:19px;color:var(--charcoal);
}
.faq-q .plus{color:var(--bronze);font-size:18px;transition:transform .3s ease;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-a p{padding:0 0 28px;color:var(--gray);font-size:15px;max-width:640px;}

/* ---------- Footer ---------- */
footer{background:var(--charcoal);color:var(--ivory);padding:80px 0 0;}
.footer-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:60px;padding-bottom:64px;}
.footer-brand img{height:42px;margin-bottom:18px;}
.footer-brand .tagline{font-family:var(--serif);font-style:italic;font-size:16px;color:rgba(247,245,240,0.55);margin-top:14px;}
.footer-top h4{color:var(--ivory);font-family:var(--sans);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;margin-bottom:22px;}
.footer-links{display:flex;flex-direction:column;gap:14px;}
.footer-links a{color:rgba(247,245,240,0.6);font-size:14px;transition:color .2s ease;}
.footer-links a:hover{color:var(--bronze);}
.footer-bottom{border-top:1px solid var(--line-on-dark);padding:26px 0;}
.footer-bottom p{color:rgba(247,245,240,0.35);font-size:12px;text-align:center;}
@media (max-width:800px){.footer-top{grid-template-columns:1fr;gap:36px;}.two-col{grid-template-columns:1fr;}.contact-info-row{gap:32px;}}

.fade{opacity:0;transform:translateY(14px);animation:fadeUp .8s ease forwards;}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){
  .fade{animation:none;opacity:1;transform:none;}
  *{transition:none !important;}
}

/* ---------- Floating WhatsApp button (always visible) ---------- */
.whatsapp-float{
  position:fixed;bottom:26px;right:26px;z-index:500;
  width:56px;height:56px;border-radius:50%;
  background:var(--charcoal);display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,0.28);
  transition:background .25s ease, transform .25s ease;
}
.whatsapp-float:hover{background:var(--bronze);transform:translateY(-2px);}
.whatsapp-float svg{width:26px;height:26px;fill:var(--ivory);}
@media (max-width:600px){
  .whatsapp-float{width:50px;height:50px;bottom:18px;right:18px;}
  .whatsapp-float svg{width:23px;height:23px;}
}

/* ---------- Extra mobile refinements ---------- */
.two-col-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
@media (max-width:600px){
  .two-col-grid{grid-template-columns:1fr;gap:28px;}
}

@media (max-width:420px){
  .brand .wordmark{display:none;}
}

@media (max-width:480px){
  .site-header .wrap{height:80px;}
  .mobile-panel{top:80px;}
}

@media (max-width:640px){
  .article-content{padding:60px 24px 90px;}
  .footer-top{padding:56px 0 32px;}
}
