:root{--ink:#28343c;--blue:#526f82;--blue-soft:#94a6ae;--paper:#fbfbfa}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,"Times New Roman",serif;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.shell{width:min(1120px,calc(100% - 48px));margin-inline:auto}.section{padding-block:clamp(86px,9vw,144px)}.rule{display:block;width:108px;height:4px;margin-bottom:30px;background:#9babb1}.rule--blue{background:#4e7289}h1,h2,h3,p{margin-top:0}h2{margin-bottom:28px;color:var(--blue-soft);font-size:clamp(3rem,5vw,5.2rem);font-weight:700;line-height:.94;letter-spacing:-.035em}p{font-size:clamp(1.05rem,1.3vw,1.32rem);line-height:1.55}.lead{max-width:1040px;font-size:clamp(1.45rem,2.3vw,2.35rem);line-height:1.28}.text-link{display:inline-flex;gap:13px;margin-top:42px;color:#5c91ad;font-family:Arial,Helvetica,sans-serif;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;transition:gap .2s,color .2s}.text-link:hover,.text-link:focus-visible{gap:20px;color:#325f77}.text-link--light,.text-link--light:hover,.text-link--light:focus-visible{color:#fff}.hero{position:relative;min-height:min(760px,100svh);color:#fff;background:#1c2b36 url("lady-justice.jpg") center 35%/cover no-repeat}.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,12,18,.88),rgba(12,25,35,.5) 45%,rgba(23,46,60,.08))}.site-header{position:relative;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;padding-top:54px}.brand{display:inline-flex;flex-direction:column;width:max-content}.brand span{margin-bottom:7px;color:var(--blue);font-family:Arial,Helvetica,sans-serif;font-size:.83rem;letter-spacing:.32em;text-transform:uppercase}.brand strong{color:#111;font-size:clamp(2rem,3.2vw,3.25rem);font-weight:400;line-height:1}.brand--light span{color:#aec0c7}.brand--light strong{color:#fff}nav{display:flex;gap:42px;padding-top:8px;font-size:1rem}nav a{position:relative;padding-block:8px}nav a:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover:after,nav a:focus-visible:after{transform:scaleX(1)}.mobile-menu{display:none}.hero__content{position:relative;z-index:1;padding-top:clamp(140px,21vh,215px);padding-bottom:86px}.hero__content h1{max-width:760px;margin-bottom:10px;font-size:clamp(3rem,5.8vw,5.6rem);line-height:.98;letter-spacing:-.035em}.hero__content p{max-width:780px;font-size:clamp(1.35rem,2.2vw,2.25rem);line-height:1.22}.about>p:not(.lead){max-width:1060px;color:#4d4d4d}.profile{position:relative;min-height:1160px;overflow:hidden;color:#fff;background:#172431 url("masa-kramar.jpg") center 62%/cover no-repeat}.profile:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,16,24,.95),rgba(19,31,43,.82) 50%,rgba(27,48,62,.45))}.profile__content{position:relative;z-index:1}.profile__content p{max-width:1030px}.profile__content .text-link{position:absolute;top:955px;left:0}.services{min-height:1040px;color:#fff;background:#93a5ad}.services h2{color:#4b6f86}.services .lead{max-width:none}.services__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 86px;margin-top:70px}.services__grid h3{margin-bottom:12px;color:#4e7289;font-family:Arial,Helvetica,sans-serif;font-size:clamp(1rem,1.5vw,1.35rem);font-weight:400;letter-spacing:.28em;line-height:1.35;text-transform:uppercase}.services__grid p{margin-bottom:0;font-size:1.1rem;line-height:1.5}.services .text-link{margin-top:100px}.contact{padding-bottom:110px}.contact address{margin-top:90px;font-style:normal}.contact address p{margin-bottom:18px}.contact address a{font-size:1.2rem;border-bottom:1px solid #8fa0a8}footer{padding-block:28px;color:#fff;background:#526f82;font-family:Arial,Helvetica,sans-serif;font-size:.9rem}footer .shell{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:32px;align-items:center}footer .shell>:last-child{text-align:right}
@media(max-width:760px){.shell{width:min(100% - 34px,640px)}.section{padding-block:78px}.rule{width:74px;height:3px;margin-bottom:24px}nav{display:none}.site-header{padding-top:28px}.brand span{font-size:.63rem;letter-spacing:.23em}.brand strong{font-size:2rem}.mobile-menu{display:block;position:relative}.mobile-menu summary{display:grid;gap:5px;padding:9px 2px;cursor:pointer;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{display:block;width:29px;height:2px;background:#fff}.mobile-menu>div{position:absolute;top:42px;right:0;display:grid;width:160px;padding:12px 18px;background:rgba(13,28,38,.96);box-shadow:0 12px 30px rgba(0,0,0,.25)}.mobile-menu a{padding-block:11px;border-bottom:1px solid rgba(255,255,255,.15)}.hero{min-height:680px;background-position:58% center}.hero__shade{background:linear-gradient(90deg,rgba(5,13,20,.9),rgba(10,27,38,.42))}.hero__content{padding-top:180px}.hero__content h1{font-size:clamp(2.85rem,13vw,4.3rem)}.hero__content p{font-size:1.38rem}.desktop-break{display:none}.lead{font-size:1.5rem}.profile{min-height:1200px;padding-bottom:340px;background-position:56% bottom;background-size:auto 1180px}.profile:before{background:linear-gradient(180deg,rgba(10,18,26,.98),rgba(15,28,39,.92) 55%,rgba(22,40,53,.5))}.profile__content .text-link{position:static;margin-top:28px}.services__grid{grid-template-columns:1fr;gap:40px;margin-top:54px}.services .text-link{margin-top:68px}.contact address{margin-top:58px}footer .shell{grid-template-columns:1fr 1fr;gap:20px}footer .shell>:last-child{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}

/* Typography and proportions revalidated against the supplied 1920px PDF layout. */
body{font-family:Georgia,"Times New Roman",serif}
.shell{width:min(87.2vw,1674px)}
h1,h2{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
h2{font-size:clamp(2.85rem,4.45vw,5.35rem);line-height:.98;letter-spacing:-.025em}
p{font-size:clamp(1.02rem,1.12vw,1.34rem);line-height:1.5}
.lead{font-size:clamp(1.45rem,2.02vw,2.42rem);line-height:1.26}
.brand span,.text-link,.services__grid h3,footer{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
.brand strong{font-family:"Iowan Old Style",Georgia,"Times New Roman",serif}
nav{font-family:Georgia,"Times New Roman",serif}

@media(min-width:761px){
  .hero{min-height:55vw;height:55vw;max-height:1055px}
  .site-header{padding-top:5.25vw}
  .hero__content{padding-top:11.1vw;padding-bottom:0}
  .hero__content h1{font-size:4.75vw;line-height:.97;letter-spacing:-.025em}
  .hero__content p{font-size:2.3vw;line-height:1.18}
  .about{min-height:55vw;padding-top:12.1vw;padding-bottom:7vw}
  .profile{min-height:116.9vw;max-height:2245px;padding-top:11.4vw;padding-bottom:8vw}
  .profile__content .text-link{top:101.5vw}
  .services{min-height:107.8vw;padding-top:11.2vw;padding-bottom:7vw}
  .services__grid{margin-top:7.4vw;gap:4.8vw 7vw}
  .services__grid p{font-size:1.08rem}
  .services .text-link{margin-top:11vw}
  .contact{height:36.4vw;max-height:700px;padding-top:6.1vw;padding-bottom:4.2vw}
  .contact address{margin-top:8.6vw}
  footer{min-height:7vw;padding-block:2.4vw}
}

@media(max-width:760px){
  .shell{width:calc(100% - 40px)}
  body{font-family:Georgia,"Times New Roman",serif}
  h2{font-size:clamp(2.8rem,13vw,4.15rem)}
  p{font-size:1.05rem;line-height:1.52}
  .hero__content h1{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:clamp(2.75rem,12.3vw,4rem);line-height:.98}
  .hero__content p{font-size:1.32rem;line-height:1.22}
  .profile{min-height:1380px}
  .services{min-height:1420px}
}

/* Client revisions - version 2 */
.hero__quote{
  width:43%;
  max-width:820px;
  margin:0;
  font-family:"Iowan Old Style",Georgia,"Times New Roman",serif;
  font-size:2.25vw;
  font-weight:400;
  line-height:1.2;
  text-wrap:balance;
}
.hero__quote strong{font-weight:700}
.profile{
  min-height:0;
  color:var(--ink);
  background:var(--paper);
}
.profile::before{display:none}
.profile__content .text-link{
  position:static;
  margin-top:42px;
  color:#5c91ad;
}
.profile__content .text-link:hover,
.profile__content .text-link:focus-visible{color:#325f77}
.services__grid h3{color:#4e7289!important}

@media(min-width:761px){
  .profile{
    min-height:78vw;
    max-height:1498px;
    padding-top:11.4vw;
    padding-bottom:8vw;
  }
}

/* Contact and footer refinements - version 4. */
.contact .brand span,
.contact .brand strong,
.contact address,
.contact address a{
  font-weight:700;
}
.contact address p{
  margin-bottom:0;
}
.contact address{
  line-height:1.42;
}
.contact__email{
  display:inline-block;
  margin-top:1.42em;
}

/* Services and contact refinements - version 6. */
.contact__email{
  border-bottom:0;
  text-decoration:none;
}
.services__grid h3{
  font-weight:700;
}
@media(min-width:761px){
  .contact address{
    margin-top:5.6vw;
  }
}

/* Pale blue-grey expert-section variation - version 7. */
.profile{
  background:#e4ebee;
}
.profile__content h2{
  color:#607d8b;
}
.profile .rule{
  background:#78909a;
}

/* Prevent excessive vertical stretching on ultra-wide displays. */
@media(min-width:2001px){
  .profile{
    min-height:1498px;
    padding-top:219px;
    padding-bottom:154px;
  }
  .services{
    min-height:2070px;
    padding-top:215px;
    padding-bottom:134px;
  }
  .services__grid{
    margin-top:142px;
    gap:92px 134px;
  }
  .services .text-link{
    margin-top:211px;
  }
}

/* Tighter bottom spacing in the experts section on desktop. */
@media(min-width:761px){
  .profile{
    min-height:0;
    max-height:none;
    padding-bottom:clamp(64px,5vw,96px);
  }
}

/* Slightly larger call-to-action labels across the site. */
.text-link{
  font-size:.9rem;
}

/* Body-type variation - larger paragraph scale to match the PDF. */
p{
  font-size:clamp(1.12rem,1.58vw,1.9rem);
  line-height:1.48;
}
.lead{
  font-size:clamp(1.62rem,2.35vw,2.82rem);
  line-height:1.28;
}
.services__grid p{
  font-size:clamp(1.12rem,1.58vw,1.9rem);
  line-height:1.48;
}
.contact address a{
  font-size:clamp(1.12rem,1.58vw,1.9rem);
}

@media(max-width:760px){
  p,
  .services__grid p,
  .contact address a{
    font-size:1.15rem;
    line-height:1.5;
  }
  .lead{
    font-size:1.65rem;
    line-height:1.32;
  }
}

@media(max-width:760px){
  .hero__quote{
    width:100%;
    max-width:350px;
    font-size:1.65rem;
    line-height:1.22;
  }
  .profile{
    min-height:0;
    padding-bottom:78px;
  }
}

/* Email and footer refinements - version 9. */
.contact__email{
  display:block;
  margin-top:1.42em;
}
footer{
  font-size:1rem;
}
@media(min-width:761px){
  .contact__email{
    margin-top:1.85em;
  }
}
@media(min-width:2001px){
  .contact__email{
    margin-top:2em;
  }
  .contact{
    height:auto;
    max-height:none;
    padding-bottom:150px;
  }
  footer{
    min-height:0;
    padding-block:18px;
  }
}

/* Unified spacing after the CTA in all content sections. */
.about,
.profile,
.services{
  min-height:0;
  max-height:none;
  padding-bottom:78px;
}
@media(min-width:761px){
  .about,
  .profile,
  .services{
    padding-bottom:clamp(64px,5vw,96px);
  }
}

/* Let contact details determine the section height at every breakpoint. */
.contact{
  height:auto;
  max-height:none;
}
@media(min-width:761px){
  .contact{
    padding-bottom:clamp(72px,6vw,110px);
  }
}
@media(min-width:2001px){
  .contact{
    padding-bottom:150px;
  }
}

/* Footer information modals. */
footer button{
  appearance:none;
  padding:0;
  border:0;
  color:inherit;
  background:none;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
footer button:hover,
footer button:focus-visible{
  text-decoration:underline;
  text-underline-offset:.25em;
}
footer button:focus-visible,
.legal-modal__close:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
}
.legal-modal{
  width:min(720px,calc(100% - 40px));
  max-height:min(82vh,760px);
  padding:0;
  border:0;
  color:var(--ink);
  background:#fff;
  box-shadow:0 24px 70px rgba(25,38,47,.3);
}
.legal-modal::backdrop{
  background:rgba(25,38,47,.68);
  backdrop-filter:blur(3px);
}
.legal-modal__panel{
  position:relative;
  max-height:min(82vh,760px);
  padding:clamp(34px,5vw,58px);
  overflow:auto;
}
.legal-modal__close{
  position:absolute;
  top:18px;
  right:22px;
  width:42px;
  height:42px;
  padding:0;
  border:0;
  color:#526f82;
  background:transparent;
  font:400 2rem/1 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  cursor:pointer;
}
.legal-modal h2{
  max-width:calc(100% - 46px);
  margin-bottom:30px;
  color:#607d8b;
  font-size:clamp(2.2rem,5vw,3.6rem);
}
.legal-modal p{
  margin-bottom:1.15em;
  font-size:1.05rem;
  line-height:1.62;
}
.legal-modal p:last-child{
  margin-bottom:0;
}
.legal-modal a{
  color:#526f82;
  text-decoration:underline;
  text-underline-offset:.2em;
}
.legal-modal a:hover,
.legal-modal a:focus-visible{
  color:#325f77;
}
body:has(.legal-modal[open]){
  overflow:hidden;
}
@media(max-width:760px){
  .legal-modal{
    width:calc(100% - 20px);
    max-height:90dvh;
  }
  .legal-modal__panel{
    max-height:90dvh;
    padding:42px 24px 30px;
  }
  .legal-modal h2{
    font-size:2.35rem;
  }
  .legal-modal p{
    font-size:1rem;
  }
}

/* Two-row footer layout for smaller screens. */
@media(max-width:760px){
  footer .shell{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px 10px;
  }
  footer .shell > :first-child{
    grid-column:1 / -1;
    white-space:nowrap;
    font-size:.9rem;
  }
  footer button{
    text-align:center;
  }
  footer button:first-of-type{
    text-align:left;
  }
  footer button:last-child{
    text-align:right;
  }
}

/* Direct email links. */
.contact__email a{
  border-bottom:0;
  text-decoration:underline;
  text-underline-offset:.18em;
  text-decoration-thickness:1px;
}
