:root{
    --ink:#13212d;
    --ink-2:#1d3346;
    --paper:#f6f2e9;
    --paper-2:#eee6d4;
    --gold:#a9812f;
    --gold-2:#c9a25a;
    --steel:#5b6672;
    --steel-dark:#9fb0bd;
    --line:#ddd3ba;
    --line-dark:rgba(255,255,255,0.14);
    --white:#fdfbf6;
    --font-display:'Frank Ruhl Libre', 'Times New Roman', serif;
    --font-body:'Heebo', 'Segoe UI', Arial, sans-serif;
  }

  *{box-sizing:border-box;}
  html, body{direction:rtl;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font-body);
    line-height:1.7;
    font-size:16px;
  }
  h1,h2,h3{
    font-family:var(--font-display);
    font-weight:700;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }
  p{margin:0;}
  a{color:inherit;}
  button{font-family:inherit;}
  img,svg{max-width:100%;}

  .wrap{
    max-width:1080px;
    margin-inline:auto;
    padding-inline:20px;
  }

  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.5em;
    font-size:.8rem;
    font-weight:600;
    letter-spacing:.1em;
    color:var(--gold);
    text-transform:none;
  }
  .eyebrow::before{
    content:"";
    width:22px;
    height:1px;
    background:var(--gold);
    display:inline-block;
  }

  /* ---------- header ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:var(--ink);
    border-bottom:1px solid var(--line-dark);
  }
  .nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding-block:14px;
    flex-wrap:wrap;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--white);
  }
  .brand-name{
    font-family:var(--font-display);
    font-size:1.15rem;
    font-weight:700;
    letter-spacing:.01em;
  }
  .brand-name small{
    display:block;
    font-family:var(--font-body);
    font-size:.68rem;
    font-weight:400;
    color:var(--steel-dark);
    letter-spacing:.05em;
  }
  nav.links{
    display:flex;
    gap:26px;
    flex-wrap:wrap;
  }
  nav.links a{
    color:var(--steel-dark);
    text-decoration:none;
    font-size:.92rem;
    font-weight:500;
    transition:color .15s ease;
  }
  nav.links a:hover, nav.links a:focus-visible{color:var(--white);}

  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding:.85em 1.6em;
    border-radius:2px;
    font-weight:600;
    font-size:.95rem;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn-gold{
    background:var(--gold);
    color:var(--ink);
  }
  .btn-gold:hover, .btn-gold:focus-visible{background:var(--gold-2);}
  .btn-ghost-dark{
    background:transparent;
    color:var(--white);
    border-color:var(--line-dark);
  }
  .btn-ghost-dark:hover, .btn-ghost-dark:focus-visible{border-color:var(--gold);color:var(--gold-2);}
  .btn-outline{
    background:transparent;
    color:var(--ink);
    border-color:var(--ink);
  }
  .btn-outline:hover, .btn-outline:focus-visible{border-color:var(--gold);color:var(--gold);}
  .btn-sm{padding:.6em 1.2em;font-size:.85rem;}

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    background:radial-gradient(120% 140% at 85% -10%, var(--ink-2), var(--ink) 60%);
    color:var(--white);
    overflow:hidden;
  }
  .hero-emblem{
    position:absolute;
    inset-inline-end:2%;
    top:-8%;
    width:min(300px, 40vw);
    color:#c9a25a;
    opacity:.12;
    pointer-events:none;
  }
  .hero-inner{
    position:relative;
    padding-block:min(14vw, 108px) min(10vw, 84px);
    max-width:760px;
  }
  .hero h1{
    color:var(--white);
    font-size:clamp(2.1rem, 4.4vw + 1rem, 3.6rem);
    line-height:1.16;
    margin-top:18px;
  }
  .hero .lede{
    margin-top:22px;
    max-width:58ch;
    color:var(--steel-dark);
    font-size:1.08rem;
    line-height:1.75;
  }
  .hero-ctas{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:34px;
  }
  .rank-strip{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
    margin-top:56px;
    padding-top:26px;
    border-top:1px solid var(--line-dark);
  }
  .rank-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    text-align:center;
  }
  .rank-item .r-label{
    font-size:.7rem;
    letter-spacing:.08em;
    color:var(--steel-dark);
  }
  .rank-item .r-name{
    font-family:var(--font-display);
    font-size:.98rem;
    font-weight:700;
    color:var(--white);
    text-wrap:balance;
  }
  .rank-item .r-value{
    font-size:.78rem;
    color:var(--gold-2);
  }
  @media (max-width:480px){
    .rank-strip{gap:6px;}
    .rank-item .r-name{font-size:.8rem;}
    .rank-item .r-value{font-size:.68rem;}
    .rank-item .r-label{font-size:.62rem;}
  }

  /* ---------- sections ---------- */
  section{padding-block:min(10vw, 92px);}
  .section-head{
    max-width:640px;
    margin-bottom:44px;
  }
  .section-head h2{
    font-size:clamp(1.6rem, 2.6vw + .8rem, 2.35rem);
    margin-top:14px;
  }

  .about{
    background:var(--white);
    border-block:1px solid var(--line);
  }
  .about-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:56px;
    align-items:start;
  }
  .about p{
    color:var(--steel);
    font-size:1.04rem;
  }
  .about p + p{margin-top:16px;}
  .then-now{
    display:flex;
    flex-direction:column;
    gap:22px;
    padding:28px;
    background:var(--paper);
    border:1px solid var(--line);
  }
  .tn-item{display:flex;flex-direction:column;gap:4px;}
  .tn-item .tn-k{font-size:.78rem;letter-spacing:.06em;color:var(--gold);font-weight:600;}
  .tn-item .tn-v{font-family:var(--font-display);font-size:1.1rem;}
  .tn-item + .tn-item{padding-top:22px;border-top:1px solid var(--line);}

  .practice{background:var(--paper);}
  .card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
    gap:26px;
  }
  .p-card{
    background:var(--white);
    border:1px solid var(--line);
    padding:30px 26px;
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .p-card .icon{width:44px;height:44px;color:var(--gold);}
  .p-card h3{font-size:1.2rem;}
  .p-card p{color:var(--steel);font-size:.96rem;}

  .partners{
    background:var(--ink);
    color:var(--white);
  }
  .partners .section-head h2{color:var(--white);}
  .partners .section-head p{color:var(--steel-dark);}
  .partner-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:24px;
  }
  .partner-card{
    padding:22px 22px 26px;
    background:var(--ink-2);
    border:1px solid var(--line-dark);
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .partner-photo{
    aspect-ratio:4/5;
    background:#132030;
    border:1px solid var(--line-dark);
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .partner-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .partner-photo svg{width:34%;height:34%;color:var(--line-dark);}
  .rank-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .rank-badge svg{width:30px;height:30px;color:var(--gold);flex:none;}
  .rank-badge span{
    font-size:.78rem;
    letter-spacing:.05em;
    color:var(--gold-2);
    font-weight:600;
  }
  .partner-card h3{color:var(--white);font-size:1.15rem;}
  .partner-note{
    margin-top:8px;
    padding-top:26px;
    border-top:1px solid var(--line-dark);
    color:var(--steel-dark);
    font-size:.95rem;
    max-width:70ch;
  }

  .trust{background:var(--white);border-block:1px solid var(--line);}
  .trust-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
    gap:30px;
  }
  .trust-item{display:flex;flex-direction:column;gap:10px;}
  .trust-item .t-num{
    font-family:var(--font-display);
    font-size:1.6rem;
    color:var(--gold);
  }
  .trust-item h3{font-size:1.02rem;}
  .trust-item p{color:var(--steel);font-size:.92rem;}

  .contact{
    background:var(--paper-2);
  }
  .contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    align-items:center;
  }
  .contact-list{display:flex;flex-direction:column;gap:22px;}
  .c-row{display:flex;gap:14px;align-items:flex-start;}
  .c-row svg{width:22px;height:22px;color:var(--gold);flex:none;margin-top:3px;}
  .c-row .c-k{font-size:.78rem;letter-spacing:.05em;color:var(--steel);}
  .c-row .c-v{font-family:var(--font-display);font-size:1.15rem;color:var(--ink);}
  .c-row .c-mail{font-size:.9rem;margin-top:2px;}
  .c-row .c-mail a{color:var(--steel);}
  .contact-cta{
    background:var(--ink);
    color:var(--white);
    padding:36px 32px;
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .contact-cta h3{color:var(--white);font-size:1.3rem;}
  .contact-cta p{color:var(--steel-dark);font-size:.95rem;}

  footer{
    background:var(--ink);
    color:var(--steel-dark);
    padding-block:26px;
    font-size:.85rem;
  }
  .footer-row{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
  }

  @media (max-width:760px){
    .about-grid, .contact-grid{grid-template-columns:1fr;}
    .contact-grid{gap:28px;}
  }

/* ---------- multi-page additions ---------- */
.skip{position:absolute;inset-inline-start:-9999px;top:0;background:var(--gold);color:var(--ink);padding:10px 16px;z-index:100;}
.skip:focus{inset-inline-start:12px;top:12px;}
.brand{text-decoration:none;}
nav.links a[aria-current="page"]{color:var(--white);box-shadow:0 2px 0 var(--gold);}
.menu-toggle{display:none;background:transparent;border:1px solid var(--line-dark);color:var(--white);padding:.5em .9em;font-size:.9rem;cursor:pointer;}
@media (max-width:820px){
  .menu-toggle{display:inline-flex;}
  nav.links{display:none;flex-basis:100%;flex-direction:column;gap:0;order:3;}
  nav.links.open{display:flex;}
  nav.links a{padding:12px 0;border-top:1px solid var(--line-dark);font-size:1rem;}
  .nav > .btn-gold{display:none;}
}

.page-hero{background:radial-gradient(120% 140% at 85% -10%, var(--ink-2), var(--ink) 60%);color:var(--white);}
.page-hero .wrap{padding-block:min(11vw,84px) min(8vw,60px);max-width:820px;margin-inline:auto;}
.page-hero h1{color:var(--white);font-size:clamp(1.9rem,3.4vw + 1rem,3rem);line-height:1.2;margin-top:16px;}
.page-hero p{margin-top:18px;color:var(--steel-dark);font-size:1.06rem;max-width:60ch;}
.crumbs{font-size:.82rem;color:var(--steel-dark);}
.crumbs a{color:var(--gold-2);text-decoration:none;}

.prose{max-width:720px;}
.prose h2{font-size:clamp(1.35rem,1.6vw + .8rem,1.8rem);margin-top:44px;margin-bottom:14px;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--steel);font-size:1.05rem;}
.prose p + p{margin-top:14px;}
.prose ul{color:var(--steel);font-size:1.05rem;padding-inline-start:1.2em;margin:14px 0 0;}
.prose li + li{margin-top:8px;}
.prose a{color:var(--gold);}

.layout-aside{display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:start;}
.aside-box{position:sticky;top:96px;background:var(--ink);color:var(--white);padding:28px 26px;display:flex;flex-direction:column;gap:14px;}
.aside-box h3{color:var(--white);font-size:1.15rem;}
.aside-box p{color:var(--steel-dark);font-size:.92rem;}
.aside-box .btn{width:100%;}
.aside-box.urgent{border-top:3px solid var(--gold);}
@media (max-width:860px){.layout-aside{grid-template-columns:1fr;gap:36px;}.aside-box{position:static;}}

.steps{counter-reset:s;display:grid;gap:18px;margin-top:20px;}
.step{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:18px 20px;background:var(--white);border:1px solid var(--line);}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--font-display);font-size:1.3rem;color:var(--gold);}
.step h3{font-size:1.05rem;margin-bottom:4px;}
.step p{font-size:.97rem;}

a.p-card{text-decoration:none;color:inherit;transition:border-color .15s ease, transform .15s ease;}
a.p-card:hover, a.p-card:focus-visible{border-color:var(--gold);transform:translateY(-2px);}
.p-card .more{margin-top:auto;font-size:.88rem;font-weight:600;color:var(--gold);}

.profile{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start;padding-block:40px;border-top:1px solid var(--line);}
.profile:first-child{border-top:0;padding-top:0;}
.profile .partner-photo{background:#132030;}
.profile h2{font-size:1.6rem;}
.profile .rank{display:block;margin-top:6px;color:var(--gold);font-weight:600;font-size:.95rem;}
.profile p{color:var(--steel);margin-top:14px;font-size:1.03rem;}
.profile .c-line{margin-top:16px;font-size:.95rem;}
.profile .c-line a{color:var(--ink);}
@media (max-width:640px){.profile{grid-template-columns:1fr;gap:20px;}.profile .partner-photo{max-width:240px;}}

.map{border:1px solid var(--line);width:100%;aspect-ratio:4/3;display:block;background:var(--paper-2);}
.office-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.office-gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border:1px solid var(--line);}

.wa-float{position:fixed;inset-inline-start:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:8px;background:#1f7a4d;color:#fff;text-decoration:none;padding:12px 16px;border-radius:30px;font-weight:600;font-size:.9rem;box-shadow:0 4px 14px rgba(0,0,0,.25);}
.wa-float svg{width:20px;height:20px;}
footer a{color:var(--steel-dark);}
footer a:hover{color:var(--white);}
.footer-links{display:flex;gap:18px;flex-wrap:wrap;}
.disclaimer{margin-top:10px;font-size:.78rem;color:var(--steel);}
@media (max-width:820px){footer{padding-bottom:84px;}}

.hero-firm{display:flex;flex-direction:column;gap:6px;padding-inline-start:16px;border-inline-start:3px solid var(--gold);}
.hero-firm-name{font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,2.4vw + 1rem,2.4rem);line-height:1.15;color:var(--gold-2);}
.hero-firm-partners{font-size:clamp(1rem,.8vw + .8rem,1.2rem);font-weight:600;color:var(--white);}
.hero-firm-place{font-size:.9rem;letter-spacing:.06em;color:var(--steel-dark);}
.hero h1{margin-top:30px;font-size:clamp(1.8rem,3.4vw + 1rem,3rem);}
.hero-firm-partners span{white-space:nowrap;}
.hero-head{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.hero-logo{flex:none;width:clamp(72px,9vw,120px);height:auto;aspect-ratio:100/128;}
.hero-inner{max-width:860px;}
.hero-firm-partners .sep{font-style:normal;} @media (max-width:520px){.hero-firm-partners{display:flex;flex-direction:column;}.hero-firm-partners .sep{display:none;}}

/* home: second section in the hero's colors */
.about{background:var(--ink-2);border-block:1px solid var(--line-dark);}
.about .section-head h2{color:var(--white);}
.about p{color:#c9d3db;font-size:1.08rem;}
.about .then-now{background:var(--ink);border-color:var(--line-dark);border-inline-start:3px solid var(--gold);}
.about .tn-item .tn-k{color:var(--gold-2);font-size:.85rem;}
.about .tn-item .tn-v{color:var(--white);font-size:1.18rem;}
.about .tn-item + .tn-item{border-top-color:var(--line-dark);}

/* contrast fixes (WCAG AA) */
:root{--gold-text:#7a5a1a;}
.eyebrow,.tn-item .tn-k,.profile .rank,.p-card .more,.prose a,.c-row svg,.trust-item .t-num{color:var(--gold-text);}
.eyebrow::before{background:var(--gold-text);}
.hero .eyebrow,.page-hero .eyebrow,.partners .eyebrow,.about .eyebrow,.contact-cta .eyebrow{color:var(--gold-2);}
.hero .eyebrow::before,.partners .eyebrow::before,.about .eyebrow::before{background:var(--gold-2);}
.disclaimer{color:var(--steel-dark);}
