:root {
  --ink: #232932;
  --ink-2: #171b21;
  --paper: #fefefe;
  --paper-warm: #f7f7f4;
  --mist: #f3f5f6;
  --line: #d9dde1;
  --muted: #69717b;
  --white: #ffffff;
  --serif: "Libre Baskerville", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --radius: 20px;
  --max: 1240px;
  --gutter: clamp(20px, 3.5vw, 48px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  color: var(--ink);
  background: #0e1115;
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  min-width: 320px;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, svg { max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 3px solid #6d7784; outline-offset: 4px; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:12px 16px; color:var(--white); background:var(--ink); transform:translateY(calc(-100% - 20px)); transition:transform .2s ease; }
.skip-link:focus { transform:none; }

.page-shell {
  width: min(100%, 1600px);
  margin: 0 auto;
  background: var(--paper);
  min-height: 100vh;
  overflow: clip;
}
.section-pad {
  padding-left: max(var(--gutter), calc((100% - var(--max)) / 2));
  padding-right: max(var(--gutter), calc((100% - var(--max)) / 2));
}

.site-header {
  position: relative;
  z-index: 20;
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 18px max(var(--gutter), calc((100% - var(--max)) / 2));
  border-bottom: 1px solid rgba(35, 41, 50, .12);
  background: rgba(254, 254, 254, .92);
  backdrop-filter: blur(18px);
}
.brand, .footer-brand { display: flex; align-items: center; gap: 16px; }
.brand-mark { width: 52px; height: 52px; object-fit: cover; border-radius: 2px; display: block; flex: none; }
.brand-copy, .footer-brand > div { display: flex; flex-direction: column; justify-content: center; }
.brand strong, .footer-brand strong { font: 700 22px/1.15 var(--serif); letter-spacing: -.03em; }
.brand small, .footer-brand small { margin-top: 4px; font: 500 10px/1 var(--sans); letter-spacing: .15em; }
.language-toggle { display:flex; align-items:center; gap:8px; margin-left:auto; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.08em; }
.language-option { min-height:40px; display:inline-flex; align-items:center; gap:5px; padding:8px 9px; border:1px solid transparent; transition:background-color .2s ease, border-color .2s ease; }
.language-option:hover, .language-option:focus-visible { background:var(--mist); border-color:var(--line); }
.language-option[aria-current="page"] { color:var(--ink); background:var(--paper-warm); border-color:var(--line); }
.primary-nav { display: flex; align-items: center; gap: 34px; font-size: 14px; font-weight: 600; }
.primary-nav a { position: relative; min-height:44px; display:inline-flex; align-items:center; }
.primary-nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:-5px; height:1px; background:var(--ink); transition:right .25s ease; }
.primary-nav a:not(.nav-cta):hover::after { right:0; }
.primary-nav .nav-active::after { right:0; }
.nav-cta { padding: 12px 18px; color: var(--white); background: var(--ink); border: 1px solid var(--ink); transition: .2s ease; }
.nav-cta:hover { background: transparent; color: var(--ink); }
.menu-toggle { display:none; width:42px; height:42px; border:0; background:transparent; cursor:pointer; }
.menu-toggle span { display:block; width:22px; height:1.5px; background:var(--ink); margin:6px auto; transition:.25s ease; }

.hero {
  min-height: calc(100svh - 92px);
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: clamp(42px, 5vw, 76px);
  align-items: center;
  padding-top: clamp(28px, 4vh, 48px);
  padding-bottom: clamp(28px, 4vh, 48px);
  background:
    linear-gradient(90deg, rgba(35,41,50,.03) 1px, transparent 1px) 0 0/110px 100%,
    var(--paper);
}
.eyebrow, .section-index { margin:0 0 22px; font-size:11px; line-height:1.2; letter-spacing:.17em; font-weight:700; color:var(--muted); }
.hero-copy { max-width:650px; }
.hero .eyebrow { margin-bottom:16px; }
.hero h1 { margin:0; max-width: 650px; font: 400 clamp(40px, 3.4vw, 54px)/1.04 var(--serif); letter-spacing: -.03em; text-wrap:balance; }
.hero h1 span { color: var(--muted); }
.hero h1 span { display:inline-block; margin-top:.06em; }
.hero-lead { max-width:560px; margin:18px 0 0; color:#525b66; font-size:16px; line-height:1.55; text-wrap:pretty; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.hero .btn { min-height:50px; gap:22px; }
.btn { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:28px; padding:0 22px; border:1px solid var(--ink); font-size:14px; font-weight:700; transition: transform .2s ease, background .2s ease, color .2s ease; cursor:pointer; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color:var(--white); background:var(--ink); }
.btn-primary:hover { background:var(--ink-2); }
.btn-ghost { background:transparent; }
.btn-ghost:hover { background:var(--mist); }
.hero-visual { position:relative; min-height:500px; align-self:stretch; }
.hero-photo {
  width:calc(100% + clamp(28px, calc((min(100vw, 1600px) - var(--max)) / 2), 180px));
  height:100%;
  min-height:500px;
  display:block;
  object-fit:cover;
  object-position:50% center;
  -webkit-mask-image:linear-gradient(to right, transparent 0, rgba(0,0,0,.12) 4%, #000 22%);
  mask-image:linear-gradient(to right, transparent 0, rgba(0,0,0,.12) 4%, #000 22%);
  filter:saturate(.82) contrast(1.04);
}
.activity-strip {
  position:relative;
  padding-top:clamp(52px, 6vw, 88px);
  padding-bottom:clamp(72px, 8vw, 112px);
  background:var(--paper);
}
.activity-strip::before {
  content:"";
  display:block;
  width:100%;
  height:1px;
  margin-bottom:clamp(30px, 4vw, 52px);
  background:var(--ink);
  transform:scaleX(1);
  transform-origin:left center;
}
.activity-strip-label {
  margin:0 0 clamp(38px, 4.5vw, 60px);
  color:var(--ink);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.22em;
  font-weight:700;
}
.activity-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  border-bottom:1px solid var(--line);
}
.activity-item {
  position:relative;
  min-width:0;
  min-height:370px;
  padding:0 clamp(22px, 2.5vw, 42px) 36px;
  border-right:1px solid var(--line);
  transition:background-color .25s ease;
}
.activity-item:first-child { padding-left:0; }
.activity-item:last-child { padding-right:0; border-right:0; }
.activity-item:hover,
.activity-item:focus-within { background:var(--mist); }
.activity-item--textured { overflow:hidden; }
.activity-item--textured::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  background:url("assets/accounting-desk.webp") center/cover no-repeat;
  filter:grayscale(1);
  opacity:.055;
  pointer-events:none;
}
.activity-item > * { position:relative; z-index:1; }
.activity-symbol {
  display:block;
  width:120px;
  height:96px;
  margin:0 0 32px;
  overflow:visible;
  color:var(--ink);
}
.activity-item h3 {
  max-width:12ch;
  margin:0;
  color:var(--ink);
  font:400 clamp(30px, 2.5vw, 42px)/1.1 var(--serif);
  letter-spacing:-.035em;
  text-wrap:balance;
}
.activity-item:nth-child(3) h3 { max-width:10ch; }
/* German compounds need their own measure so they stay inside each editorial column. */
html[lang="de"] .activity-item h3 {
  max-width:100%;
  hyphens:auto;
  overflow-wrap:break-word;
  font-size:clamp(28px, 2.25vw, 38px);
}
html[lang="de"] .activity-item:nth-child(3) h3 { max-width:100%; }
.activity-rule {
  display:block;
  width:90px;
  height:1px;
  margin:22px 0 24px;
  background:var(--ink);
  transform-origin:left center;
}
.activity-item p {
  max-width:25ch;
  margin:0;
  color:#454d56;
  font-size:16px;
  line-height:1.6;
  text-wrap:pretty;
}
.activity-strip.motion-enabled::before {
  transform:scaleX(0);
  transition:transform .9s var(--ease-expo);
}
.activity-strip.motion-enabled .activity-item {
  opacity:0;
  transform:translateY(18px);
}
.activity-strip.motion-enabled.motion-visible::before { transform:scaleX(1); }
.activity-strip.motion-enabled.motion-visible .activity-item {
  opacity:1;
  transform:none;
  transition:opacity .65s var(--ease-expo), transform .65s var(--ease-expo), background-color .25s ease;
}
.activity-strip.motion-enabled.motion-visible .activity-item:nth-child(1) { transition-delay:.06s; }
.activity-strip.motion-enabled.motion-visible .activity-item:nth-child(2) { transition-delay:.13s; }
.activity-strip.motion-enabled.motion-visible .activity-item:nth-child(3) { transition-delay:.20s; }
.activity-strip.motion-enabled.motion-visible .activity-item:nth-child(4) { transition-delay:.27s; }

.chart-bar,
.chart-arrow,
.invoice-line,
.building,
.building-window,
.check-mark { transform-box:fill-box; }
.chart-bar {
  transform-origin:center bottom;
  transition:transform .4s var(--ease-expo);
}
.activity-item:hover .chart-bar,
.activity-item:focus-within .chart-bar { transform:scaleY(1.1); }
.chart-arrow {
  transform-origin:right center;
  transition:transform .4s var(--ease-expo);
}
.activity-item:hover .chart-arrow,
.activity-item:focus-within .chart-arrow { transform:translate(3px,-3px); }
.invoice-line {
  transform-origin:left center;
  opacity:.8;
  transition:transform .4s var(--ease-expo), opacity .4s ease;
}
.activity-item:hover .invoice-line,
.activity-item:focus-within .invoice-line { transform:scaleX(1.08); opacity:1; }
.building { transform-origin:center bottom; transition:transform .4s var(--ease-expo); }
.activity-item:hover .building-left,
.activity-item:focus-within .building-left { transform:translateY(-3px); }
.activity-item:hover .building-main,
.activity-item:focus-within .building-main { transform:translateY(-5px); }
.activity-item:hover .building-right,
.activity-item:focus-within .building-right { transform:translateY(-2px); }
.building-window { opacity:.78; transition:opacity .35s ease; }
.activity-item:hover .building-window,
.activity-item:focus-within .building-window { opacity:1; }
.check-mark {
  stroke-dasharray:36;
  stroke-dashoffset:36;
  transition:stroke-dashoffset .5s var(--ease-expo);
}
.activity-item:hover .check-mark,
.activity-item:focus-within .check-mark { stroke-dashoffset:0; }
.statement { padding-top:82px; padding-bottom:82px; background:var(--paper-warm); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.statement-grid { display:grid; grid-template-columns:minmax(0, 1.35fr) minmax(280px, .65fr); gap:clamp(36px, 5vw, 60px); align-items:center; }
.statement h2 { margin:0; font:400 clamp(34px,4vw,57px)/1.18 var(--serif); letter-spacing:-.045em; }
.statement h2 em { color:var(--muted); font-style:normal; }
.statement-grid > p {
  width: 100%;
  aspect-ratio: 1;
  margin: 0;
  padding: clamp(26px, 3vw, 38px);
  display: grid;
  align-content: center;
  background: var(--ink-2);
  color: var(--white);
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.65;
  text-wrap: pretty;
}
.statement-photo { position:relative; margin:70px 0 0; height:clamp(300px,42vw,520px); overflow:hidden; background:var(--ink-2); }
.statement-photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08); transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.statement-photo:hover img { transform:scale(1.025); }
.statement-photo::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(23,27,33,.16),transparent 55%); }
.statement-photo figcaption { position:absolute; z-index:1; left:24px; bottom:22px; margin:0; padding:10px 13px; color:white; background:rgba(23,27,33,.86); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }

.services { padding-top:clamp(132px,12vw,164px); padding-bottom:clamp(142px,13vw,176px); }
.services .section-heading { margin-bottom:68px; }
.services .section-heading h2 { max-width:900px; font-size:clamp(42px,5vw,70px); line-height:1.08; letter-spacing:-.03em; text-wrap:balance; }
.services .section-heading > p { font-size:17px; line-height:1.78; text-wrap:pretty; }
.section-heading { display:grid; grid-template-columns:minmax(0, 1fr) minmax(280px, 350px); gap:clamp(32px, 5vw, 60px); align-items:end; margin-bottom:58px; }
.section-heading h2 { max-width:760px; margin:0; font:400 clamp(36px,4vw,58px)/1.14 var(--serif); letter-spacing:-.045em; }
.section-heading > p { margin:0 0 5px; color:#5d6671; line-height:1.7; }
.services-photo { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 62px; height:clamp(340px,40vw,540px); margin:0 0 56px; overflow:hidden; background:var(--ink); }
.services-photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08); transition:filter .35s ease,transform .9s cubic-bezier(.2,.7,.2,1); }
.services-photo:hover img { filter:grayscale(1) contrast(1.15); transform:scale(1.018); }
.services-photo figcaption { display:flex; align-items:center; justify-content:space-around; writing-mode:vertical-rl; color:white; font-size:8px; font-weight:700; letter-spacing:.18em; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }
.service-card { min-width:0; min-height:390px; padding:clamp(24px, 2.2vw, 28px); border-right:1px solid var(--line); position:relative; display:flex; flex-direction:column; transition:.25s ease; }
.service-card:last-child { border-right:0; }
.service-card:hover { background:var(--mist); transform:translateY(-4px); box-shadow:0 18px 40px rgba(24,29,35,.06); }
.service-number { font-size:10px; letter-spacing:.12em; color:#7b838d; }
.service-icon { height:105px; margin:35px 0 28px; position:relative; }
.icon-lines { display:flex; align-items:flex-end; gap:8px; }
.icon-lines i { display:block; width:21px; background:var(--ink); }
.icon-lines i:nth-child(1){height:30px}.icon-lines i:nth-child(2){height:56px}.icon-lines i:nth-child(3){height:82px}
.icon-tax { display:grid; grid-template-columns:repeat(4,18px); align-items:end; gap:7px; }
.icon-tax i { display:block; background:var(--ink); }
.icon-tax i:nth-child(1){height:38px}.icon-tax i:nth-child(2){height:56px}.icon-tax i:nth-child(3){height:71px}.icon-tax i:nth-child(4){height:91px}
.icon-doc { width:75px; border:2px solid var(--ink); padding:17px 13px; }
.icon-doc i { display:block; height:2px; background:var(--ink); margin:11px 0; }
.icon-dialog { width:86px; height:58px; border:2px solid var(--ink); position:relative; }
.icon-dialog::after { content:""; position:absolute; left:12px; bottom:-11px; width:19px; height:19px; background:inherit; border-left:2px solid var(--ink); border-bottom:2px solid var(--ink); transform:skew(-32deg); }
.service-card h3 { margin:auto 0 13px; font:700 20px/1.3 var(--serif); }
.service-card p { margin:0; color:#636b74; font-size:14px; line-height:1.7; }
.service-card-dark { background:var(--ink); color:white; }
.service-card-dark:hover { background:var(--ink-2); }
.service-card-dark .service-number, .service-card-dark p { color:#c8cdd2; }
.service-card-dark .icon-dialog { border-color:#fff; }
.service-card-dark .icon-dialog::after { border-color:#fff; }
.service-card-dark a { display:flex; justify-content:space-between; margin-top:24px; padding-top:18px; border-top:1px solid rgba(255,255,255,.2); font-size:13px; font-weight:700; }

.about { padding-top:120px; padding-bottom:120px; display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(60px,8vw,115px); align-items:center; background:var(--mist); }
.about-visual { min-height:570px; background:var(--ink); color:white; position:relative; overflow:hidden; }
.about-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.15) brightness(.58); opacity:.78; transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .4s ease; }
.about-visual:hover .about-photo { transform:scale(1.03); filter:grayscale(1) contrast(1.2) brightness(.48); }
.about-visual::before, .about-visual::after { content:""; position:absolute; background:rgba(255,255,255,.05); }
.about-visual::before { width:55%; height:100%; right:0; top:0; }
.about-visual::after { width:140px; height:140px; left:-70px; bottom:90px; transform:rotate(45deg); border:1px solid rgba(255,255,255,.12); background:transparent; }
.about-monogram { position:absolute; z-index:1; inset:0; display:flex; align-items:center; justify-content:center; gap:8px; font:400 clamp(110px,16vw,230px)/1 var(--serif); letter-spacing:-.12em; opacity:.93; text-shadow:0 8px 28px rgba(0,0,0,.28); }
.about-monogram span:last-child { color:#aeb4bb; transform:translateY(35px); }
.about-caption { position:absolute; z-index:2; left:28px; right:28px; bottom:28px; display:flex; justify-content:space-between; padding-top:18px; border-top:1px solid rgba(255,255,255,.45); color:#f1f3f4; font-size:9px; letter-spacing:.14em; }
.about-copy h2 { margin:0 0 28px; font:400 clamp(40px,4vw,60px)/1.1 var(--serif); letter-spacing:-.05em; }
.about-lead { font-size:20px !important; line-height:1.6 !important; color:var(--ink) !important; }
.about-copy > p { color:#5d6670; font-size:15px; line-height:1.8; }
.about-points { margin-top:38px; border-top:1px solid #cfd4d8; }
.about-points > div { display:grid; grid-template-columns:46px 1fr; gap:14px; padding:18px 0; border-bottom:1px solid #cfd4d8; }
.about-points span { font-size:10px; color:#7c848e; letter-spacing:.12em; padding-top:4px; }
.about-points p { margin:0; color:#5e6770; font-size:14px; line-height:1.55; }
.about-points strong { color:var(--ink); font-weight:700; }

.process { padding-top:120px; padding-bottom:130px; }
.process-line { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ink); }
.process-step { position:relative; padding:35px 30px 10px 0; border-right:1px solid var(--line); min-height:230px; }
.process-step:not(:first-child) { padding-left:30px; }
.process-step:last-child { border-right:0; }
.process-step::before { content:""; position:absolute; width:9px; height:9px; border-radius:50%; background:var(--ink); top:-5px; left:0; }
.process-step:not(:first-child)::before { left:30px; }
.process-step span { font-size:10px; letter-spacing:.12em; color:#7b838d; }
.process-step h3 { margin:34px 0 12px; font:700 18px/1.35 var(--serif); }
.process-step p { margin:0; color:#626b74; font-size:14px; line-height:1.7; }

.cta-band { position:relative; min-height:430px; display:grid; grid-template-columns:190px 1fr auto; gap:50px; align-items:center; background:var(--ink); color:white; overflow:hidden; }
.cta-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; filter:grayscale(1) contrast(1.12); opacity:.25; }
.cta-band::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(23,27,33,.98) 0%,rgba(23,27,33,.88) 48%,rgba(23,27,33,.66) 100%); }
.cta-band::after { content:""; position:absolute; right:-130px; top:-160px; width:430px; height:430px; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow:0 0 0 65px rgba(255,255,255,.02),0 0 0 130px rgba(255,255,255,.015); }
.light-index { color:#bdc2c8; }
.cta-copy { position:relative; z-index:2; }
.cta-copy h2 { max-width:700px; margin:0 0 20px; font:400 clamp(38px,4.5vw,64px)/1.1 var(--serif); letter-spacing:-.05em; }
.cta-copy > p:last-child { max-width:550px; margin:0; color:#c5cad0; line-height:1.7; }
.cta-chart { height:135px; display:flex; align-items:flex-end; gap:9px; position:relative; z-index:2; }
.cta-chart i { width:28px; background:#f1f3f4; }
.cta-chart i:nth-child(1){height:38%}.cta-chart i:nth-child(2){height:57%}.cta-chart i:nth-child(3){height:77%}.cta-chart i:nth-child(4){height:100%}
.btn-light { position:relative; z-index:2; min-width:220px; background:white; color:var(--ink); border-color:white; }
.btn-light:hover { background:transparent; color:white; }

.contact { min-height:680px; padding-top:0; padding-bottom:0; padding-right:0; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(380px,.8fr); background:var(--paper-warm); }
.contact-info { position:relative; padding:clamp(76px,8vw,118px) clamp(50px,7vw,110px) clamp(70px,7vw,100px) 0; overflow:hidden; }
.contact-info::after { content:""; position:absolute; z-index:0; right:4%; bottom:0; width:48%; height:58%; opacity:.055; background:linear-gradient(to top, var(--ink) 0 100%) left bottom/18% 34% no-repeat,linear-gradient(to top, var(--ink) 0 100%) 27% bottom/18% 55% no-repeat,linear-gradient(to top, var(--ink) 0 100%) 54% bottom/18% 78% no-repeat,linear-gradient(to top, var(--ink) 0 100%) 81% bottom/18% 100% no-repeat; }
.contact-info > * { position:relative; z-index:1; }
.contact-info h2 { max-width:680px; margin:0; padding-bottom:18px; border-bottom:3px solid var(--ink); font:400 clamp(58px,7vw,92px)/1.02 var(--serif); letter-spacing:-.04em; }
.contact-subtitle { margin:18px 0 0; color:#555d66; font:400 clamp(22px,2.5vw,34px)/1.25 var(--serif); }
.contact-list { max-width:640px; margin-top:52px; }
.contact-list a, .contact-list > div { display:grid; grid-template-columns:105px 1fr; gap:24px; padding:13px 0; }
.contact-list span { color:#6a727c; font-size:12px; }
.contact-list strong { min-width:0; font:400 clamp(16px,1.5vw,20px)/1.4 var(--serif); overflow-wrap:anywhere; }
.contact-list a:hover strong { text-decoration:underline; text-underline-offset:4px; }
.contact-whatsapp { width:fit-content; min-height:58px; margin-top:38px; padding:0 24px; display:inline-flex; align-items:center; gap:14px; background:var(--ink); color:white; font-size:14px; font-weight:700; transition:transform .2s ease, background .2s ease; }
.contact-whatsapp:hover { transform:translateY(-2px); background:var(--ink-2); }
.contact-whatsapp svg { width:23px; height:23px; fill:currentColor; }
.contact-whatsapp span { margin-left:12px; }
.contact-brand-panel { position:relative; min-height:680px; padding:70px clamp(34px,5vw,70px); display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; text-align:center; color:white; background:var(--ink); }
.contact-brand-panel::after { content:""; position:absolute; width:520px; height:160px; right:-180px; bottom:-80px; background:rgba(255,255,255,.08); transform:rotate(-22deg); }
.contact-chart { height:122px; display:flex; align-items:flex-end; gap:8px; margin-bottom:38px; }
.contact-chart i { display:block; width:30px; background:#f3f4f5; border-radius:3px 3px 0 0; }
.contact-chart i:nth-child(1){height:42%}.contact-chart i:nth-child(2){height:60%}.contact-chart i:nth-child(3){height:78%}.contact-chart i:nth-child(4){height:100%}
.contact-brand-lockup { width:100%; max-width:350px; display:flex; flex-direction:column; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.55); }
.contact-brand-lockup strong { font:400 clamp(26px,3vw,38px)/1.2 var(--serif); letter-spacing:-.03em; }
.contact-brand-lockup span { margin-top:15px; font:500 12px/1 var(--sans); letter-spacing:.22em; text-transform:uppercase; color:#d4d8dc; }
.contact-brand-panel > p { margin:34px 0 0; color:#c8cdd2; font:400 18px/1.65 var(--serif); }

.site-footer { min-height:130px; display:grid; grid-template-columns:1fr auto auto; gap:40px; align-items:center; padding:28px max(var(--gutter), calc((100% - var(--max)) / 2)); border-top:1px solid rgba(255,255,255,.1); background:#11161c; color:white; }
.site-footer .brand-mark { width:46px; height:46px; }
.site-footer p { margin:0; color:#aeb5bc; font-size:11px; }

.floating-whatsapp { position:fixed; z-index:50; right:24px; bottom:24px; width:56px; height:56px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:white; box-shadow:0 12px 28px rgba(15,18,22,.25); transition:.2s ease; }
.floating-whatsapp:hover { transform:translateY(-3px) scale(1.02); }
.floating-whatsapp svg { width:25px; height:25px; fill:currentColor; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
  .reveal { opacity:1; transform:none; }
}

@media (max-width: 1080px) {
  .hero { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(32px, 4.5vw, 48px); }
  .activity-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .activity-item:nth-child(odd) { padding-left:0; }
  .activity-item:nth-child(even) { padding-right:0; border-right:0; }
  .activity-item:nth-child(-n+2) { padding-bottom:clamp(32px, 4vw, 48px); border-bottom:1px solid var(--line); }
  .activity-item:nth-child(n+3) { padding-top:clamp(32px, 4vw, 48px); }
  .service-grid { grid-template-columns:1fr 1fr; }
  .service-card { border-bottom:1px solid var(--line); }
  .service-card:nth-child(2) { border-right:0; }
  .service-card:nth-child(3), .service-card:nth-child(4) { border-bottom:0; }
  .cta-band { grid-template-columns:130px 1fr; }
  .cta-band .btn { grid-column:2; justify-self:start; }
}

@media (min-width: 821px) and (max-height: 760px) {
  .hero { padding-top:20px; padding-bottom:20px; }
  .hero h1 { max-width:650px; font-size:clamp(36px, 3.1vw, 46px); line-height:1.02; }
  .hero-lead { margin-top:14px; font-size:14px; line-height:1.48; }
  .hero-actions { margin-top:18px; }
  .hero .btn { min-height:46px; }
  .hero-proof { margin-top:18px; }
  .hero-proof span { padding-top:9px; padding-bottom:9px; }
  .hero-proof span + span::before { top:9px; bottom:9px; }
}

@media (min-width: 1601px) {
  .page-shell { box-shadow:0 0 80px rgba(0,0,0,.28); }
}

@media (max-width: 820px) {
  .site-header { min-height:78px; }
  .brand strong { font-size:18px; }
  .brand-mark { width:46px; height:46px; }
  .language-toggle { margin-right:4px; }
  .language-option { min-height:42px; padding-left:7px; padding-right:7px; }
  .menu-toggle { display:block; position:relative; z-index:30; }
  .primary-nav { position:fixed; inset:0; background:var(--paper); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:18px; padding:90px max(24px, 8vw); transform:translateX(100%); visibility:hidden; transition:transform .3s ease, visibility 0s linear .3s; font:400 clamp(28px, 7vw, 42px)/1.1 var(--serif); }
  .primary-nav.open { transform:none; }
  .primary-nav.open { visibility:visible; transition:transform .3s ease; }
  .primary-nav a { width:100%; min-height:48px; }
  .primary-nav .nav-cta { font:700 14px/1 var(--sans); margin-top:8px; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.7px) rotate(-45deg); }

  .hero { grid-template-columns:1fr; min-height:auto; padding-top:48px; padding-bottom:56px; }
  .hero-copy { max-width:720px; }
  .hero-visual { min-height:520px; }
  .hero-photo { width:100%; min-height:520px; object-position:center 34%; -webkit-mask-image:linear-gradient(to right, transparent 0, #000 16%); mask-image:linear-gradient(to right, transparent 0, #000 16%); }
  .statement-grid, .section-heading, .about { grid-template-columns:1fr; }
  .contact { grid-template-columns:1fr; min-height:0; padding-right:0; }
  .contact-info { padding-right:max(var(--gutter), calc((100% - var(--max)) / 2)); padding-left:max(var(--gutter), calc((100% - var(--max)) / 2)); }
  .contact-brand-panel { min-height:480px; }
  .statement-grid { gap:30px; }
  .section-heading { gap:22px; }
  .section-heading > p { max-width:600px; }
  .about { gap:60px; }
  .about-visual { min-height:520px; }
  .process-line { grid-template-columns:1fr 1fr; border-top:0; }
  .process-step { border-top:1px solid var(--ink); border-right:1px solid var(--line); padding-left:0 !important; padding-right:24px; }
  .process-step:nth-child(even) { border-right:0; padding-left:24px !important; }
  .process-step:not(:first-child)::before, .process-step::before { left:0; }
  .process-step:nth-child(even)::before { left:24px; }
  .cta-band { grid-template-columns:90px 1fr; }
  .site-footer { grid-template-columns:1fr; gap:18px; }
}

@media (max-width: 560px) {
  .section-pad { padding-left:20px; padding-right:20px; }
  .site-header { padding-left:20px; padding-right:20px; }
  .brand-copy small { font-size:8px; }
  .hero { padding-top:36px; }
  .hero h1 { font-size:clamp(32px, 9.5vw, 40px); line-height:1.05; }
  .hero-lead { margin-top:16px; font-size:15px; line-height:1.55; }
  .hero-actions { flex-direction:column; }
  .hero-actions .btn { width:100%; }
  .hero-visual { min-height:0; align-items:flex-start; }
  .hero-photo { height:auto; min-height:0; aspect-ratio:4 / 5; object-position:52% center; }
  .activity-strip { padding-top:58px; padding-bottom:82px; }
  .activity-strip::before { margin-bottom:32px; }
  .activity-strip-label { margin-bottom:34px; letter-spacing:.18em; }
  .activity-grid { grid-template-columns:1fr; border-bottom:0; }
  .activity-item,
  .activity-item:nth-child(odd),
  .activity-item:nth-child(even),
  .activity-item:nth-child(-n+2),
  .activity-item:nth-child(n+3) {
    min-height:0;
    padding:30px 0 34px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .activity-item:first-child { padding-top:0; }
  .activity-item:last-child { padding-bottom:0; border-bottom:0; }
  .activity-symbol { width:106px; height:84px; margin-bottom:24px; }
  .activity-item h3 { max-width:13ch; font-size:clamp(30px, 8.5vw, 38px); }
  .activity-item:nth-child(3) h3 { max-width:12ch; }
  .activity-rule { margin:18px 0 20px; }
  .activity-item p { max-width:30ch; font-size:15px; line-height:1.55; }
  .statement, .services, .about, .process, .contact { padding-top:82px; padding-bottom:82px; }
  .statement h2, .section-heading h2 { font-size:clamp(32px, 9.5vw, 36px); }
  .statement-grid > p { aspect-ratio:auto; min-height:300px; }
  .statement-photo { height:300px; margin-top:42px; }
  .statement-photo figcaption { left:14px; bottom:14px; }
  .services-photo { grid-template-columns:1fr; height:360px; margin-bottom:28px; }
  .services-photo figcaption { position:absolute; align-self:end; width:100%; padding:12px 16px; flex-direction:row; writing-mode:horizontal-tb; background:rgba(23,27,33,.88); }
  .service-grid { grid-template-columns:1fr; }
  .service-card, .service-card:nth-child(2), .service-card:nth-child(3) { border-right:0; border-bottom:1px solid var(--line); }
  .service-card:last-child { border-bottom:0; }
  .service-card { min-height:330px; }
  .about-visual { min-height:420px; }
  .about-monogram { font-size:130px; }
  .about-caption { flex-direction:column; gap:7px; }
  .process-line { grid-template-columns:1fr; }
  .process-step, .process-step:nth-child(even) { border-right:0; padding-left:0 !important; padding-right:0; min-height:190px; }
  .process-step:nth-child(even)::before { left:0; }
  .cta-band { grid-template-columns:1fr; gap:28px; padding-top:70px; padding-bottom:70px; }
  .cta-chart { height:85px; width:130px; }
  .cta-copy h2 { font-size:38px; }
  .cta-band .btn { grid-column:1; width:100%; }
  .contact { grid-template-columns:1fr; min-height:0; }
  .contact-info { padding:76px 20px; }
  .contact-info h2 { font-size:clamp(46px, 14vw, 54px); }
  .contact-brand-panel { min-height:520px; }
  .contact-list a, .contact-list > div { grid-template-columns:1fr; gap:6px; }
  .site-footer { padding-left:20px; padding-right:20px; }
  .floating-whatsapp { right:16px; bottom:16px; width:52px; height:52px; }
}

@media (max-width: 380px) {
  .site-header { gap:14px; }
  .brand, .footer-brand { gap:12px; }
  .brand strong { font-size:16px; }
  .brand-copy small { letter-spacing:.11em; }
  .language-toggle { gap:2px; font-size:9px; }
  .language-option { gap:3px; padding-left:4px; padding-right:4px; }
  .eyebrow, .section-index { letter-spacing:.13em; }
  .hero-actions .btn, .contact-whatsapp { padding-left:16px; padding-right:16px; gap:14px; }
  .contact-whatsapp { width:100%; justify-content:center; }
  .contact-whatsapp span { margin-left:auto; }
  .about-caption { left:20px; right:20px; }
}

@media (hover: none) {
  .btn:hover, .service-card:hover, .contact-whatsapp:hover, .floating-whatsapp:hover { transform:none; }
}

/* Premium positioning, art direction and motion layer */
:root {
  --ease-expo: cubic-bezier(.16, 1, .3, 1);
  --ease-quint: cubic-bezier(.22, 1, .36, 1);
}

.site-header {
  position:sticky;
  top:0;
  transition:background-color .3s ease, min-height .3s var(--ease-expo), box-shadow .3s ease;
}
.site-header.is-scrolled {
  min-height:74px;
  background:rgba(254,254,254,.97);
  box-shadow:0 1px 0 rgba(35,41,50,.1);
}

.hero-copy { position:relative; z-index:2; }
.hero-proof { display:flex; flex-wrap:wrap; gap:0; margin-top:22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.hero-proof span { position:relative; padding:11px clamp(10px,1.4vw,18px); color:#555e68; font-size:11px; font-weight:600; }
.hero-proof span:first-child { padding-left:0; }
.hero-proof span + span::before { content:""; position:absolute; left:0; top:11px; bottom:11px; width:1px; background:var(--line); }

.hero-visual, .statement-photo, .services-photo, .about-visual, .cta-band { contain:paint; }
.hero-photo { transform:translate3d(0,var(--parallax-y,0),0) scale(1.035); will-change:transform; }
.statement-photo img, .services-photo img, .about-photo, .cta-photo { transform:translate3d(0,var(--parallax-y,0),0) scale(1.07); will-change:transform; }

.motion-ready .brand { animation:brand-enter .7s var(--ease-expo) both; }
.motion-ready .primary-nav a { animation:nav-enter .55s var(--ease-expo) both; }
.motion-ready .primary-nav a:nth-child(1){animation-delay:.08s}.motion-ready .primary-nav a:nth-child(2){animation-delay:.13s}.motion-ready .primary-nav a:nth-child(3){animation-delay:.18s}.motion-ready .primary-nav a:nth-child(4){animation-delay:.23s}
.motion-ready .hero .eyebrow { animation:hero-line .7s .12s var(--ease-expo) both; }
.motion-ready .hero h1 { animation:hero-title .9s .18s var(--ease-expo) both; }
.motion-ready .hero-lead { animation:hero-line .75s .35s var(--ease-expo) both; }
.motion-ready .hero-actions { animation:hero-line .7s .45s var(--ease-expo) both; }
.motion-ready .hero-proof { animation:hero-line .7s .55s var(--ease-expo) both; }
.motion-ready .hero-visual { animation:hero-image .95s .08s var(--ease-expo) both; }

@keyframes brand-enter { from { opacity:0; transform:translateY(-12px); } }
@keyframes nav-enter { from { opacity:0; transform:translateY(-9px); } }
@keyframes hero-line { from { opacity:0; transform:translateY(22px); } }
@keyframes hero-title { from { opacity:0; transform:translateY(36px); filter:blur(7px); } }
@keyframes hero-image { from { opacity:0; clip-path:inset(0 0 100% 0); transform:translateX(34px); } to { opacity:1; clip-path:inset(0); transform:none; } }

.reveal { opacity:1; transform:none; }
.motion-ready .reveal.motion-pending { opacity:0; transform:translateY(30px); filter:blur(5px); }
.motion-ready .reveal.motion-visible { opacity:1; transform:none; filter:none; transition:opacity .75s var(--ease-expo), transform .75s var(--ease-expo), filter .75s var(--ease-expo); }
.motion-ready .service-card.motion-pending { transform:translateY(36px); }
.motion-ready .service-card.motion-visible:nth-child(2) { transition-delay:.07s; }
.motion-ready .service-card.motion-visible:nth-child(3) { transition-delay:.14s; }
.motion-ready .service-card.motion-visible:nth-child(4) { transition-delay:.21s; }

.service-card { isolation:isolate; }
.service-card::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(350px circle at var(--spot-x,50%) var(--spot-y,50%),rgba(255,255,255,.95),transparent 58%); opacity:0; transition:opacity .3s ease; }
.service-card:hover::before { opacity:1; }
.service-card-dark::before { background:radial-gradient(360px circle at var(--spot-x,50%) var(--spot-y,50%),rgba(255,255,255,.09),transparent 62%); }
.service-icon i { transform-origin:bottom; transition:transform .55s var(--ease-expo); }
.service-card:hover .service-icon i:nth-child(1) { transform:scaleY(1.15); }
.service-card:hover .service-icon i:nth-child(2) { transform:scaleY(.86); }
.service-card:hover .service-icon i:nth-child(3) { transform:scaleY(1.12); }
.service-card:hover .service-icon i:nth-child(4) { transform:scaleY(.9); }

.process-line { --process-progress:0; background:linear-gradient(90deg,var(--ink) 0 calc(var(--process-progress) * 100%),var(--line) calc(var(--process-progress) * 100%) 100%) top/100% 1px no-repeat; border-top:0; }
.process-step::before { transform:scale(.72); transition:transform .35s var(--ease-expo), box-shadow .35s ease; }
.process-step.is-active::before { transform:scale(1.35); box-shadow:0 0 0 7px rgba(35,41,50,.1); }

.btn span, .service-card-dark a span, .contact-whatsapp span { transition:transform .25s var(--ease-expo); }
.btn:hover span, .service-card-dark a:hover span, .contact-whatsapp:hover span { transform:translate(3px,-3px); }
.btn { position:relative; overflow:hidden; }
.btn::after { content:""; position:absolute; inset:0; background:rgba(255,255,255,.13); transform:translateX(-105%); transition:transform .5s var(--ease-expo); }
.btn:hover::after { transform:translateX(105%); }
.btn:active { transform:translateY(1px) scale(.985); }

.cta-band.motion-pending .cta-photo { clip-path:inset(0 100% 0 0); }
.cta-band.motion-visible .cta-photo { clip-path:inset(0); transition:clip-path 1s var(--ease-expo); }
.floating-whatsapp { animation:whatsapp-breathe 4.5s ease-in-out infinite; }
@keyframes whatsapp-breathe { 0%,72%,100% { box-shadow:0 12px 28px rgba(15,18,22,.25),0 0 0 0 rgba(35,41,50,.18); } 84% { box-shadow:0 12px 28px rgba(15,18,22,.25),0 0 0 10px rgba(35,41,50,0); } }

@media (max-width:560px) {
  .hero-proof { display:grid; grid-template-columns:1fr; }
  .hero-proof span { padding:10px 0; }
  .hero-proof span + span::before { top:0; right:0; bottom:auto; width:auto; height:1px; }
  .hero-photo, .statement-photo img, .services-photo img, .about-photo, .cta-photo { will-change:auto; }
}

@media (prefers-reduced-motion:reduce) {
  .motion-ready .brand,.motion-ready .primary-nav a,.motion-ready .hero .eyebrow,.motion-ready .hero h1,.motion-ready .hero-lead,.motion-ready .hero-actions,.motion-ready .hero-proof,.motion-ready .hero-visual { animation:none !important; }
  .motion-ready .reveal.motion-pending,.motion-ready .reveal.motion-visible { opacity:1; transform:none; filter:none; }
  .hero-photo,.statement-photo img,.services-photo img,.about-photo,.cta-photo { transform:none !important; will-change:auto; }
  .floating-whatsapp { animation:none; }
  .activity-strip.motion-enabled::before { transform:none; transition:none; }
  .activity-strip.motion-enabled .activity-item,
  .activity-strip.motion-enabled.motion-visible .activity-item { opacity:1; transform:none; transition:none; }
  .check-mark { stroke-dashoffset:0; transition:none; }
}

/* Tax-service detail cards */
.service-detail-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:1px;
  border:1px solid var(--line);
  background:var(--line);
}
.service-detail {
  grid-column:span 6;
  min-width:0;
  min-height:430px;
  display:flex;
  flex-direction:column;
  padding:clamp(30px,3vw,42px);
  background:#fff;
  transition:background-color .2s ease,transform .2s ease;
}
.service-detail:hover { background:var(--paper-warm); transform:translateY(-3px); }
.service-detail--lead { grid-column:span 6; min-height:470px; padding:clamp(34px,4vw,54px); }
.service-detail .service-number { margin:0 0 36px; font-size:12px; color:#7b838d; font-variant-numeric:tabular-nums; }
.service-detail .service-number i { margin-left:7px; font-style:normal; font-weight:600; letter-spacing:.12em; color:#69717b; }
.service-detail h3 { margin:0 0 18px; font:400 clamp(38px,4vw,54px)/1.06 var(--serif); letter-spacing:-.03em; text-wrap:balance; }
.service-detail p { max-width:58ch; margin:0; color:#59616b; font-size:16px; line-height:1.8; text-wrap:pretty; }
.service-detail ul { display:grid; gap:12px; margin:28px 0 32px; padding:22px 0 0; list-style:none; border-top:1px solid var(--line); }
.service-detail li { position:relative; padding-left:19px; color:#48515b; font-size:17px; line-height:1.58; }
.service-detail li::before { content:""; position:absolute; left:0; top:.58em; width:6px; height:6px; background:var(--ink); }
.service-source { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:auto; padding-top:18px; border-top:1px solid var(--line); color:var(--ink); font-size:13px; font-weight:700; line-height:1.5; }
.service-source span { flex:none; font-size:16px; }
.service-detail--dark { grid-column:span 12; min-height:0; display:grid; grid-template-columns:minmax(180px,.72fr) minmax(260px,1.38fr) minmax(270px,1fr); column-gap:clamp(24px,4vw,54px); row-gap:24px; align-items:start; padding:clamp(28px,3.3vw,44px) clamp(30px,3.6vw,48px); background:var(--ink); color:white; }
.service-detail--dark:hover { background:var(--ink-2); }
.service-detail--dark .service-number { grid-column:1; grid-row:1; margin:6px 0 0; color:#bdc4cb; }
.service-detail--dark .service-number i { color:#bdc4cb; }
.service-detail--dark .service-copy { grid-column:2; grid-row:1; display:flex; flex-direction:column; gap:14px; min-width:0; }
.service-detail--dark h3 { margin:0; }
.service-detail--dark p { margin:0; }
.service-detail--dark p, .service-detail--dark li { color:#d1d5d9; }
.service-detail--dark ul { grid-column:3; grid-row:1; align-self:start; margin:0; padding-top:0; border-top:0; }
.service-detail--dark li::before { background:#fff; }
.service-visuals { grid-column:1 / -1; grid-row:2; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; }
.service-visuals img { display:block; width:100%; height:clamp(112px,11vw,150px); aspect-ratio:2.15 / 1; object-fit:cover; filter:saturate(.75); }
.service-detail--dark .service-source { grid-column:1 / -1; grid-row:3; color:#fff; border-color:rgba(255,255,255,.25); }
.service-detail-cta { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:24px; }
.service-detail-cta p { max-width:620px; margin:0; color:#59616b; font:400 22px/1.55 var(--serif); }
.service-detail-cta .btn { flex:none; }

/* Editorial blog pages */
.blog-hero { padding-top:clamp(64px,9vw,126px); padding-bottom:clamp(58px,8vw,100px); background:linear-gradient(90deg,rgba(35,41,50,.035) 1px,transparent 1px) 0 0/110px 100%,var(--paper); }
.blog-hero .section-index { margin-bottom:26px; }
.blog-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr); align-items:end; gap:clamp(36px,7vw,100px); }
.blog-hero h1 { max-width:760px; margin:0; font:400 clamp(44px,6.7vw,84px)/.98 var(--serif); letter-spacing:-.065em; text-wrap:balance; }
.blog-hero-grid > p { max-width:420px; margin:0 0 7px; color:#5d6671; font-size:16px; line-height:1.75; }
.blog-index-line { display:flex; align-items:center; gap:14px; margin-top:48px; color:#69717b; font-size:10px; font-weight:700; letter-spacing:.16em; }
.blog-index-line::before { content:""; width:56px; height:1px; background:var(--ink); }
.blog-listing { padding-top:8px; padding-bottom:clamp(82px,10vw,138px); }
.blog-listing-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:30px; }
.blog-listing-heading h2 { margin:0; font:400 clamp(28px,3.8vw,44px)/1.1 var(--serif); letter-spacing:-.045em; }
.blog-listing-heading p { max-width:340px; margin:0; color:#68717b; font-size:12px; line-height:1.6; }
.blog-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:20px; align-items:start; }
.blog-card { grid-column:span 4; min-width:0; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); }
.blog-card:nth-child(2) { margin-top:38px; }
.blog-card-image { display:block; width:100%; height:220px; object-fit:cover; filter:grayscale(1) contrast(1.03); background:var(--mist); }
.blog-card-image-link { display:block; overflow:hidden; }
.blog-card-image-link:hover .blog-card-image { filter:grayscale(.45) contrast(1.03); }
.blog-card-body { display:flex; flex:1; flex-direction:column; padding:clamp(22px,2.5vw,30px); }
.blog-card-kicker { margin:0 0 15px; color:#69717b; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.blog-card h3 { margin:0 0 15px; font:700 clamp(21px,2.3vw,27px)/1.18 var(--serif); letter-spacing:-.035em; text-wrap:balance; }
.blog-card-body > p:not(.blog-card-kicker) { margin:0; color:#58616b; font-size:13px; line-height:1.72; }
.blog-card-main-link { display:block; color:inherit; text-decoration:none; }
.blog-card-main-link > p { margin:0; color:#58616b; font-size:13px; line-height:1.72; }
.blog-card-main-link:hover h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.blog-card-main-link:focus-visible, .blog-card-image-link:focus-visible { outline:3px solid #6d7784; outline-offset:4px; }
.blog-card ul { display:grid; gap:8px; margin:18px 0 24px; padding:15px 0 0; list-style:none; border-top:1px solid var(--line); }
.blog-card li { position:relative; padding-left:15px; color:#48515b; font-size:11px; line-height:1.5; }
.blog-card li::before { content:""; position:absolute; left:0; top:.55em; width:5px; height:5px; background:var(--ink); }
.blog-card-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:15px; border-top:1px solid var(--line); }
.blog-card-links a { color:var(--ink); font-size:10px; font-weight:700; line-height:1.4; }
.blog-card-links a:last-child { color:#69717b; }
.blog-card-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.longform { padding-top:clamp(58px,8vw,108px); padding-bottom:clamp(84px,10vw,132px); }
.longform-article { max-width:980px; margin:0 auto; }
.article-back { display:inline-flex; align-items:center; margin:0 0 32px; color:#69717b; font-size:13px; font-weight:600; }
.article-back:hover { text-decoration:underline; text-underline-offset:4px; }
.longform-header { max-width:900px; }
.longform-header .article-kicker { margin:0 0 22px; color:#69717b; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.longform-header h1 { max-width:900px; margin:0 0 28px; font:400 clamp(42px,6vw,76px)/1.03 var(--serif); letter-spacing:-.06em; text-wrap:balance; }
.longform-header p:not(.article-kicker) { max-width:72ch; margin:0 0 18px; color:#58616b; font-size:17px; line-height:1.8; text-wrap:pretty; }
.article-toc { margin:48px 0 70px; padding:28px 32px; border:1px solid var(--line); background:var(--paper-warm); }
.article-toc h2 { margin:0 0 18px; font:400 26px/1.2 var(--serif); letter-spacing:-.035em; }
.article-toc ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 36px; margin:0; padding:0; list-style:none; }
.article-toc li { min-width:0; color:#48515b; font-size:14px; line-height:1.55; }
.article-toc a { text-decoration:underline; text-decoration-color:#aeb5bc; text-underline-offset:3px; }
.article-toc a:hover { text-decoration-color:var(--ink); }
.longform-body { max-width:760px; }
.longform-body section { scroll-margin-top:100px; }
.longform-body h2 { margin:68px 0 20px; font:400 clamp(28px,3.8vw,38px)/1.15 var(--serif); letter-spacing:-.045em; text-wrap:balance; }
.longform-body h3 { margin:34px 0 12px; font:700 22px/1.3 var(--serif); letter-spacing:-.025em; }
.longform-body p { margin:0 0 18px; color:#4f5862; font-size:16px; line-height:1.85; text-wrap:pretty; }
.longform-body ul { display:grid; gap:8px; margin:10px 0 24px; padding-left:22px; color:#4f5862; font-size:16px; line-height:1.7; }
.longform-body ol { display:grid; gap:14px; margin:12px 0 26px; padding-left:24px; color:#4f5862; font-size:16px; line-height:1.7; }
.longform-body li > p { margin:8px 0 0; }
.longform-body address { margin:24px 0; padding:18px 22px; border-left:2px solid var(--ink); background:var(--paper-warm); color:#4f5862; font-size:15px; font-style:normal; line-height:1.8; }
.article-table-wrap { margin:24px 0 28px; overflow-x:auto; border:1px solid var(--line); }
.longform-body table { width:100%; min-width:660px; border-collapse:collapse; background:#fff; font-size:14px; line-height:1.55; }
.longform-body th, .longform-body td { padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.longform-body th { background:var(--paper-warm); font-size:12px; font-weight:700; }
.longform-body tr:last-child td { border-bottom:0; }
.longform-body a { text-decoration:underline; text-underline-offset:3px; }
.longform-footer { margin-top:72px; padding-top:24px; border-top:1px solid var(--line); }
.article-disclaimer { color:#68717b !important; font-size:13px !important; line-height:1.7 !important; }
.blog-cta { display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center; padding-top:60px; padding-bottom:60px; background:var(--ink); color:white; }
.blog-cta .section-index { margin-bottom:15px; color:#c4cbd1; }
.blog-cta h2 { max-width:690px; margin:0 0 12px; font:400 clamp(30px,4vw,46px)/1.08 var(--serif); letter-spacing:-.045em; }
.blog-cta p:last-child { max-width:580px; margin:0; color:#c8ced3; font-size:14px; line-height:1.65; }
.blog-cta .btn { background:#fff; border-color:#fff; color:var(--ink); }
.blog-cta .btn:hover { background:transparent; color:#fff; }
.blog-footer-nav { display:flex; flex-wrap:wrap; gap:22px; margin-top:12px; }
.blog-footer-nav a { color:#c8ced3; font-size:11px; }
.blog-footer-nav a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }

@media (max-width:1080px) {
  .service-detail:not(.service-detail--dark) { grid-column:span 6; }
  .service-detail--dark { grid-template-columns:minmax(140px,.65fr) minmax(210px,1.35fr); row-gap:20px; }
  .service-detail--dark .service-copy { grid-column:2; grid-row:1; }
  .service-detail--dark ul { grid-column:2; grid-row:2; }
  .service-visuals { grid-row:3; }
  .service-detail--dark .service-source { grid-row:4; }
}
@media (max-width:820px) {
  .service-detail:not(.service-detail--dark) { min-height:390px; }
  .service-detail--dark { grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr); }
  .blog-hero-grid { grid-template-columns:1fr; gap:24px; }
  .blog-hero-grid > p { max-width:560px; }
  .blog-card { grid-column:span 6; }
  .blog-card:nth-child(2) { margin-top:0; }
  .blog-card:last-child { grid-column:span 12; display:grid; grid-template-columns:.8fr 1.2fr; }
  .blog-card:last-child .blog-card-image-link { height:100%; min-height:250px; }
  .blog-card:last-child .blog-card-image { height:100%; min-height:250px; }
  .longform-body h2 { margin-top:56px; }
}
@media (max-width:560px) {
  .service-detail:not(.service-detail--dark), .service-detail--dark { grid-column:span 12; min-height:0; }
  .service-detail .service-number { margin-bottom:24px; }
  .service-detail--dark { display:flex; padding:30px 24px; }
  .service-detail--dark ul { margin:20px 0 24px; padding-top:18px; border-top:1px solid rgba(255,255,255,.22); }
  .service-detail--dark .service-source { width:100%; }
  .service-detail-cta { align-items:stretch; flex-direction:column; }
  .service-detail-cta .btn { width:100%; }
  .blog-hero { padding-top:54px; }
  .blog-hero h1 { font-size:clamp(44px,13vw,62px); }
  .blog-index-line { margin-top:32px; }
  .blog-listing-heading { align-items:start; flex-direction:column; }
  .blog-grid { grid-template-columns:1fr; }
  .blog-card, .blog-card:last-child { grid-column:1; display:flex; }
  .blog-card:last-child .blog-card-image-link { height:190px; min-height:0; }
  .blog-card:last-child .blog-card-image { height:190px; min-height:0; }
  .blog-card-image { height:190px; }
  .longform { padding-top:48px; padding-bottom:78px; }
  .longform-header h1 { font-size:clamp(40px,11vw,54px); }
  .longform-header p:not(.article-kicker) { font-size:16px; }
  .article-toc { margin:36px 0 54px; padding:22px; }
  .article-toc h2 { font-size:23px; }
  .article-toc ul { grid-template-columns:1fr; gap:10px; }
  .longform-body h2 { font-size:29px; margin-top:48px; }
  .longform-body h3 { font-size:20px; }
  .longform-body p, .longform-body ul { font-size:16px; }
  .longform-body th, .longform-body td { padding:12px; }
  .blog-cta { grid-template-columns:1fr; gap:24px; padding-top:48px; padding-bottom:48px; }
  .blog-cta .btn { width:100%; }
}

@media (max-width:560px) {
  .services { padding-top:96px; padding-bottom:100px; }
  .services .section-heading { gap:22px; margin-bottom:42px; }
  .services .section-heading h2 { font-size:clamp(35px,9vw,44px); }
  .services .section-heading > p { font-size:16px; }
  .services-photo { height:300px; margin-bottom:36px; }
  .service-detail:not(.service-detail--dark), .service-detail--dark { padding:32px 25px; }
  .service-detail .service-number { margin-bottom:28px; }
  .service-detail h3 { font-size:clamp(36px,10vw,46px); }
  .service-detail p { font-size:16px; }
  .service-detail li { font-size:16px; }
  .service-source { font-size:13px; }
  .service-visuals { gap:8px; }
  .service-visuals img { height:clamp(72px,25vw,112px); aspect-ratio:1.55 / 1; }
  .service-detail-cta { padding-top:30px; }
  .service-detail-cta p { font-size:20px; }
}
