/* Home, firm, practice areas, contact sections */
.hero { position: relative;
      display: flex;
      min-height: min(660px, calc(100svh - 78px));
      align-items: center;
      overflow: hidden;
      background: #252726;
      color: white; }
.hero-photo { position: absolute;
      inset: 0 0 0 32%;
      background:
        linear-gradient(90deg, #252726 0%, rgba(37,39,38,.78) 25%, rgba(37,39,38,.17) 100%),
        linear-gradient(0deg, rgba(21,23,22,.43), transparent 60%),
        url("/assets/painting-blue.webp") center 45% / cover;
      opacity: .9; }
.hero-inner { position: relative; z-index: 1; padding-block: 82px 105px; }
h1 { max-width: 700px;
      margin: 0;
      font: 400 clamp(53px, 7.3vw, 92px)/1.04 var(--serif);
      letter-spacing: -.045em;
      text-wrap: balance; }
h1 .hero-accent { color: var(--green); }
.hero-copy { max-width: 505px;
      margin: 25px 0 0;
      color: #eeefea;
      font: 400 16px/1.75 var(--sans);
      text-wrap: pretty; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 25px; margin-top: 32px; }
.button { display: inline-flex;
      min-height: 49px;
      align-items: center;
      justify-content: center;
      gap: 13px;
      padding: 0 21px;
      background: var(--green);
      color: var(--ink);
      font: 700 14px/1.3 var(--sans);
      letter-spacing: .08em;
      text-decoration: none;
      text-transform: uppercase;
      transition: background .18s, transform .18s; }
.button:hover { transform: translateY(-2px); background: #91d763; }
.button svg { width: 15px; height: 15px; }
.quiet-link { display: inline-flex;
      align-items: center;
      gap: 9px;
      color: white;
      font: 600 14px/1.5 var(--sans);
      text-decoration: none; }
.quiet-link:hover { color: var(--green); }
.quiet-link svg { width: 15px; height: 15px; }
.hero-location { position: absolute;
      right: max(36px, calc((100% - 1180px) / 2));
      bottom: 36px;
      z-index: 1;
      color: #e8e9e3;
      font: 600 11px/1.4 var(--sans);
      letter-spacing: .15em;
      text-transform: uppercase;
      writing-mode: vertical-rl; }
.hero-location::before { display: inline-block; width: 1px; height: 30px; margin-bottom: 12px; background: var(--green); content: ""; }
.principles { background: var(--off-white); }
.principles-inner { display: grid;
      grid-template-columns: repeat(3, 1fr);
      padding-block: 28px; }
.principle { padding: 3px 27px;
      border-left: 1px solid #c9cbc2; }
.principle:first-child { padding-left: 0; border-left: 0; }
.principle strong { display: block; font: 500 18px/1.3 var(--serif); }
.principle span { display: block; margin-top: 5px; color: var(--muted); font: 14px/1.6 var(--sans); }
.section { padding-block: 100px; }
.section-heading { max-width: 690px; margin-bottom: 45px; }
.section-heading h2, .firm-copy h2, .people-heading h2, .contact-copy h2 { margin: 0;
      font: 400 clamp(37px, 5.3vw, 62px)/1.12 var(--serif);
      letter-spacing: -.04em;
      text-wrap: balance; }
.section-heading p { max-width: 630px;
      margin: 18px 0 0;
      color: var(--muted);
      font: 400 16px/1.75 var(--sans); }
.practice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; }
.practice { min-height: 155px;
      padding: 22px 0 25px;
      border-top: 1px solid var(--line); }
.practice h3 { margin: 0; font: 500 21px/1.3 var(--serif); }
.practice p { margin: 10px 0 0; color: var(--muted); font: 400 15px/1.75 var(--sans); }
.practice-link { display: inline-flex;
      align-items: center;
      gap: 7px;
      margin-top: 12px;
      color: var(--green-dark);
      font: 700 11px/1.4 var(--sans);
      letter-spacing: .08em;
      text-decoration: none;
      text-transform: uppercase; }
.practice-link:hover { color: var(--ink); }
.practice-link svg { width: 13px; height: 13px; }
.firm-section { background: var(--off-white); }
.firm-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 85px; align-items: center; }
.firm-image { position: relative;
      display: grid;
      min-height: 440px;
      grid-template-columns: .88fr 1.12fr;
      align-items: center;
      gap: 15px;
      padding: 22px 22px 77px;
      background: #e8e5da; }
.painting-frame { position: relative;
      z-index: 1;
      margin: 0;
      grid-column: 1 / -1;
      justify-self: start;
      width: 292px;
      max-width: 100%;
      padding: 0;
      background: transparent;
      box-shadow: none; }
.painting-frame:first-child { transform: translateY(14px); }
.painting-frame:nth-child(2) { transform: translateY(-12px); }
.painting-frame img { display: block;
      width: 100%;
      height: auto; }
.artwork-note { position: absolute;
      right: 0;
      bottom: 0;
      z-index: 1;
      max-width: calc(100% - 30px);
      margin: 0;
      padding: 12px 15px;
      background: var(--ink);
      color: white;
      font: 600 11px/1.5 var(--sans); }
.firm-image::after { position: absolute;
      right: -14px;
      bottom: -14px;
      width: 75%;
      height: 75%;
      border-right: 1px solid var(--green);
      border-bottom: 1px solid var(--green);
      content: "";
      pointer-events: none; }
.firm-copy h2 { margin-bottom: 20px; }
.firm-copy p { margin: 0 0 17px; color: var(--muted); font: 400 16px/1.75 var(--sans); }
.firm-fact { display: flex;
      align-items: baseline;
      gap: 12px;
      margin-top: 28px;
      padding-top: 17px;
      border-top: 1px solid #d4d5cc; }
.firm-fact strong { color: var(--green-dark); font: 500 24px var(--serif); }
.firm-fact span { color: var(--muted); font: 13px/1.6 var(--sans); }
.recognition { padding-block: 60px; background: var(--ink); color: white; }
.recognition-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.recognition p { max-width: 730px; margin: 0; font: 400 clamp(19px, 2.6vw, 29px)/1.55 var(--serif); }
.recognition a { flex-shrink: 0;
      color: var(--green);
      font: 700 14px/1.5 var(--sans);
      letter-spacing: .07em;
      text-decoration: none;
      text-transform: uppercase; }
.recognition a:hover { color: white; }
.people-section { padding-block: 96px; }
.people-top { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 35px; }
.people-heading h2 { font-size: clamp(37px, 4.5vw, 54px); }
.people-heading p { margin: 12px 0 0; color: var(--muted); font: 14px/1.7 var(--sans); }
.people-link { flex-shrink: 0;
      padding-bottom: 7px;
      border-bottom: 1px solid var(--green-dark);
      color: var(--green-dark);
      font: 700 12px/1.5 var(--sans);
      text-decoration: none;
      text-transform: uppercase; }
.people-link:hover { color: var(--ink); border-color: var(--ink); }
.people-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.person { margin: 0; }
.person img { display: block;
      width: 100%;
      aspect-ratio: 4 / 4.6;
      object-fit: cover;
      object-position: center 25%;
      background: var(--off-white);
      filter: saturate(.7); }
.person figcaption { padding-top: 14px; }
.person strong { display: block; font: 500 20px/1.3 var(--serif); }
.person span { display: block; margin-top: 4px; color: var(--muted); font: 13px/1.55 var(--sans); }
.contact-section { padding-block: 82px; background: #eef0e9; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; }
.contact-copy h2 { max-width: 510px; }
.contact-copy p { margin: 15px 0 0; color: var(--muted); font: 16px/1.75 var(--sans); }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 30px; }
.contact-item { padding-top: 12px; border-top: 1px solid #cfd2c8; color: var(--muted); font: 15px/1.75 var(--sans); }
.contact-item strong { display: block; margin-bottom: 4px; color: var(--ink); font: 700 11px/1.5 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.contact-item a { text-decoration-color: #9aa092; text-underline-offset: 3px; }
.contact-item a:hover { color: var(--green-dark); }
.contact-records { grid-column: 1 / -1;
      display: grid;
      grid-template-columns: .8fr 1.2fr;
      gap: 45px 65px;
      margin-top: 20px;
      padding-top: 30px;
      border-top: 1px solid #cfd2c8; }
.contact-record h3 { margin: 0 0 15px;
      font: 600 18px/1.35 var(--serif); }
.contact-record p,
    .contact-record li,
    .contact-record dd { color: var(--muted);
      font: 15px/1.7 var(--sans); }
.contact-record p { margin: 0; }
.contact-record ul { display: grid; gap: 7px; margin: 0; padding-left: 20px; }
.invoice-name { margin-bottom: 9px !important; color: var(--ink) !important; font-weight: 700 !important; }
.invoice-details { display: grid;
      grid-template-columns: max-content 1fr;
      gap: 4px 18px;
      margin: 0; }
.invoice-details dt { color: var(--ink); font: 600 14px/1.7 var(--sans); }
.invoice-details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.account-details { margin-top: 18px; }
.account-details h4 { margin: 0 0 8px;
      color: var(--ink);
      font: 600 15px/1.5 var(--sans); }
.contact-resources { display: flex;
      flex-wrap: wrap;
      gap: 12px 26px;
      grid-column: 1 / -1;
      padding-top: 22px;
      border-top: 1px solid #cfd2c8; }
.contact-resources a { color: var(--green-dark);
      font: 600 14px/1.6 var(--sans);
      overflow-wrap: anywhere; }
.contact-resources a:hover { color: var(--ink); }
@media (min-width: 1400px) {
  .hero {min-height: 690px;}
}
@media (max-width: 850px) {
  .hero {min-height: 580px;}
  .principle {padding-inline: 18px;}
  .firm-grid {gap: 42px;}
  .firm-image {min-height: 395px;}
  .practice-grid {column-gap: 22px;}
}
@media (max-width: 640px) {
  .hero {min-height: 635px; min-height: min(680px, calc(100svh - 68px));}
  .hero-photo {inset: 0;
        background-image:
          linear-gradient(90deg, rgba(37,39,38,.82), rgba(37,39,38,.43)),
          linear-gradient(0deg, rgba(37,39,38,.55), transparent),
          url("/assets/painting-blue.webp");
        background-position: 58% center;
        opacity: .95;}
  .hero-inner {padding-block: 76px 92px;}
  h1 {max-width: 530px; font-size: clamp(50px, 13.6vw, 72px);}
  html[lang="hu"] h1 {font-size: clamp(42px, 10.8vw, 64px); letter-spacing: -.055em;}
  .hero-copy {max-width: 420px; margin-top: 20px; font-size: 16px;}
  .hero-actions {gap: 19px;}
  .hero-actions .button {min-height: 46px; padding-inline: 16px;}
  .hero-location {right: 12px; bottom: 24px; font-size: 11px;}
  .principles-inner {grid-template-columns: 1fr; gap: 17px; padding-block: 22px;}
  .principle, .principle:first-child {padding: 0 0 0 13px; border-left: 1px solid #b5c9a8;}
  .principle strong {font-size: 16px;}
  .principle span {margin-top: 2px;}
  .section {padding-block: 73px;}
  .section-heading {margin-bottom: 28px;}
  .section-heading p {margin-top: 13px; font-size: 15px;}
  .practice-grid {grid-template-columns: 1fr; column-gap: 0;}
  .practice {min-height: 0; padding-block: 18px 21px;}
  .practice h3 {font-size: 20px;}
  .practice p {max-width: 500px; font-size: 15px;}
  .firm-grid {grid-template-columns: 1fr; gap: 35px;}
  .firm-image {min-height: 320px; margin-right: 12px; gap: 10px; padding: 17px 15px 66px;}
  .painting-frame {width: 210px;}
  .painting-frame:first-child {transform: translateY(9px);}
  .painting-frame:nth-child(2) {transform: translateY(-7px);}
  .artwork-note {max-width: calc(100% - 20px); padding: 9px 11px; font-size: 12px;}
  .firm-copy h2 {font-size: 43px;}
  .recognition {padding-block: 39px;}
  .recognition-inner {align-items: flex-start; flex-direction: column; gap: 18px;}
  .recognition p {font-size: 22px;}
  .people-section {padding-block: 73px;}
  .people-top {align-items: flex-start; flex-direction: column; margin-bottom: 25px;}
  .people-grid {grid-template-columns: 1fr 1fr; gap: 24px 14px;}
  .person img {aspect-ratio: 4 / 4.8;}
  .person strong {font-size: 17px;}
  .contact-section {padding-block: 67px;}
  .contact-grid {grid-template-columns: 1fr; gap: 30px;}
  .contact-copy h2 {font-size: 43px;}
  .contact-details {gap: 20px 17px;}
  .contact-item {font-size: 14px;}
  .contact-records {grid-template-columns: 1fr; gap: 28px; margin-top: 4px; padding-top: 25px;}
  .contact-resources {flex-direction: column; gap: 10px;}
}
.contact-record-note { margin: 0 0 16px; color: var(--muted); font: 14px/1.6 var(--sans); max-width: 46ch; }
.office-photo { margin-block: 0; padding-block: 56px; }
.office-photo img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: cover; object-position: center 60%; }
@media (max-width: 640px) { .office-photo { padding-block: 32px; } .office-photo img { aspect-ratio: 4 / 3; } }

.map-section { padding-block: 96px 88px; background: var(--paper); }
.map-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px; margin-bottom: 36px; }
.map-heading h2 { max-width: 18ch; margin: 0; font: 400 clamp(34px, 4.4vw, 54px)/1.08 var(--sans); letter-spacing: -.035em; text-wrap: balance; }
.map-tiles { display: grid; grid-template-columns: repeat(2, minmax(200px, 1fr)); gap: 14px; }
.map-tile { position: relative; display: grid; gap: 6px; min-height: 112px; padding: 20px 52px 20px 22px; align-content: end;
  background: var(--off-white); border: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: background .18s, border-color .18s, color .18s; }
.map-tile-kicker { color: var(--green-dark); font: 700 11px/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.map-tile-label { font: 600 17px/1.35 var(--sans); }
.map-tile svg { position: absolute; top: 18px; right: 18px; width: 22px; height: 22px; color: var(--green-dark); transition: transform .18s; }
.map-tile:hover { background: #3d403d; border-color: #3d403d; color: #f0f0eb; }
.map-tile:hover .map-tile-kicker, .map-tile:hover svg { color: var(--green); }
.map-tile:hover svg { transform: translate(2px, -2px); }
.map-image { display: block; overflow: hidden; background: #e8e8e4; }
.map-image img { display: block; width: 100%; height: auto; aspect-ratio: 1440 / 560; object-fit: cover; }
.map-credit { margin: 10px 0 0; color: var(--muted); font: 12px/1.5 var(--sans); }
.map-credit a { color: inherit; }
@media (max-width: 900px) {
  .map-heading { grid-template-columns: 1fr; align-items: start; gap: 28px; }
  .map-heading h2 { max-width: 22ch; }
}
@media (max-width: 640px) {
  .map-section { padding-block: 64px 56px; }
  .map-tiles { grid-template-columns: 1fr; gap: 10px; }
  .map-tile { min-height: 0; padding: 16px 44px 16px 16px; }
  .map-tile-label { font-size: 15px; }
  .map-tile svg { top: 14px; right: 14px; width: 18px; height: 18px; }
  .map-image img { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) { .map-tile, .map-tile svg { transition: none; } }
.artwork-note a { color: inherit; text-decoration: none; }
.artwork-note a:hover { color: var(--green); }
