
.hero {
  padding-block:48px 0
}
.hero-grid {
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  align-items:center;
  gap:36px
}
.hero-copy {
  padding-block:24px 40px
}
.hero h1 {
  max-inline-size:580px
}
.hero h1 em {
  color:var(--accent);
  font-weight:400
}
.hero-copy .lead {
  font-size:1.04rem;
  max-inline-size:430px;
  margin-block:26px 30px
}
.hero-photo {
  position:relative;
  min-height:530px;
  height:100%;
  border-radius:5px;
  overflow:hidden;
  background:var(--surface-alt)
}
.hero-photo>img {
  position:absolute;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:55% center
}
.photo-label {
  position:absolute;
  inset-block-end:22px;
  inset-inline:26px;
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  font-size:.72rem;
  text-shadow:0 1px 5px #000
}
.photo-label:before {
  content:'';
  width:7px;
  height:7px;
  background:#fff;
  border-radius:50%
}
.hero-photo:after {
  content:'';
  position:absolute;
  inset:65% 0 0;
  background:linear-gradient(transparent,#142833a8);
  pointer-events:none
}
.photo-label {
  z-index:1
}
.hero-note {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:.73rem;
  color:var(--muted);
  margin-block-start:30px
}
.quick-paths {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-block-start:38px;
  border-block:1px solid var(--line)
}
.quick-paths a {
  display:grid;
  grid-template-columns:35px 1fr 20px;
  gap:14px;
  align-items:center;
  padding:25px 22px
}
.quick-paths a+a {
  border-inline-start:1px solid var(--line)
}
.quick-paths a:hover {
  background:var(--surface-alt)
}
.quick-paths .index {
  font-size:.72rem;
  color:var(--accent)
}
.quick-paths strong {
  font-size:.92rem;
  font-weight:500;
  display:block
}
.quick-paths small {
  color:var(--muted);
  font-size:.75rem
}
.home-services .grid-4 {
  row-gap:38px
}
.more-services {
  margin-block-start:36px;
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  border-block-start:1px solid var(--line);
  padding-block-start:24px
}
.more-services p {
  font-size:.9rem
}
.story-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center
}
.story-image {
  position:relative;
  padding-inline-end:50px;
  padding-block-end:30px
}
.story-image img {
  width:100%;
  aspect-ratio:1.1;
  object-fit:cover;
  border-radius:5px
}
.story-image .story-caption {
  position:absolute;
  inset-inline-end:0;
  inset-block-end:0;
  background:var(--accent-soft);
  padding:26px 32px;
  font-family:var(--display);
  font-size:1.65rem;
  line-height:1.4;
  max-inline-size:240px
}
.story-copy p {
  margin-block:24px
}
.steps {
  margin-block-start:42px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px
}
.step {
  border-block-start:1px solid var(--line);
  padding-block-start:24px
}
.step .number {
  font:italic 2rem var(--display);
  color:var(--accent)
}
.step h3 {
  margin-block:16px 12px
}
.step p {
  font-size:.9rem
}
.journal-card img {
  aspect-ratio:1.55;
  width:100%;
  object-fit:cover;
  border-radius:4px
}
.journal-card h3 {
  margin-block:14px 8px;
  font-family:var(--display);
  font-size:1.65rem;
  line-height:1.3
}
.journal-card p {
  font-size:.86rem
}
.journal-card .text-link {
  margin-block-start:14px
}
.service-toolbar {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:24px;
  padding:28px;
  background:var(--surface-alt);
  border-radius:4px;
  margin-block-end:24px
}
.service-results {
  margin-block-end:20px;
  font-size:.8rem;
  color:var(--muted)
}
.empty-state {
  padding:60px 25px;
  text-align:center;
  border:1px solid var(--line)
}
.empty-state h2 {
  font-size:2rem;
  margin-block-end:16px
}
.category-grid {
  row-gap:52px
}
.detail-banner {
  width:100%;
  max-height:420px;
  aspect-ratio:2.3;
  object-fit:cover;
  border-radius:5px;
  margin-block-end:42px
}
.service-content section+section {
  border-block-start:1px solid var(--line);
  padding-block-start:30px;
  margin-block-start:30px
}
.service-content h2 {
  margin-block-start:0
}
.service-content .faq {
  margin-block-start:42px
}
.about-mast {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:64px;
  align-items:center
}
.about-mast img {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:5px
}
.about-mast h1 {
  font-size:clamp(2.7rem,4.3vw,4rem)
}
.about-mast p {
  margin-block-start:24px
}
.about-note {
  padding:48px;
  border:1px solid var(--line);
  display:grid;
  grid-template-columns:150px 1fr;
  gap:48px;
  margin-block-start:64px
}
.about-note .code {
  font:italic 3.8rem var(--display);
  color:var(--accent);
  direction:ltr
}
.contact-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px
}
.contact-channel {
  padding-block:22px;
  border-block-end:1px solid var(--line)
}
.contact-channel h2 {
  font:500 .8rem var(--body);
  letter-spacing:.02em;
  color:var(--muted);
  margin-block-end:8px
}
.contact-channel a {
  font-size:1.25rem
}
.contact-channel a:hover {
  text-decoration:underline
}
.contact-form {
  background:var(--surface);
  padding:36px;
  border:1px solid var(--line);
  border-radius:5px
}
.contact-form h2 {
  font-size:2rem;
  margin-block-end:12px
}
.contact-form>p {
  margin-block-end:30px
}
.article-hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:center;
  padding-block:30px 65px
}
.article-hero h1 {
  font-size:clamp(2.3rem,3.8vw,3.8rem)
}
.article-hero img {
  width:100%;
  aspect-ratio:1.2;
  object-fit:cover;
  border-radius:4px
}
.article-hero .lead {
  margin-block-start:24px
}
.legal-layout {
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:80px
}
.legal-nav {
  position:sticky;
  inset-block-start:124px;
  align-self:start
}
.legal-nav a {
  display:block;
  font-size:.86rem;
  padding-block:10px;
  border-block-end:1px solid var(--line)
}
.no-script {
  padding:16px;
  background:var(--accent-soft);
  color:var(--ink)
}
.contact-channel>a:not(.text-link) {
  display:block;
  overflow-wrap:anywhere
}
.contact-channel>.text-link {
  display:flex;
  width:fit-content;
  margin-block-start:14px;
  font-size:.95rem
}

