/* Tenwick: an architectural grid with a practical service index. */
@font-face { font-family:'IBM Plex Sans'; font-style:normal; font-weight:100 700; font-display:swap; src:url('/assets/fonts/ibm-plex-sans-latin-v23.woff2') format('woff2'); }
:root { --ink:#192b37; --muted:#53616b; --paper:#f7f8f8; --surface:#fff; --line:#ccd2d6; --accent:#b93724; --sans:'IBM Plex Sans',Arial,sans-serif; color-scheme:light; }
* { box-sizing:border-box; }
html { scroll-padding-top:28px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px var(--sans); -webkit-font-smoothing:antialiased; }
h1,h2,h3,p { margin:0; }
a { color:inherit; text-decoration:none; }
p { line-height:1.6; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
::selection { background:#efd2cc; color:var(--ink); }
.wrap { width:min(1264px,calc(100% - 112px)); margin-inline:auto; }
.skip { position:fixed; top:-100px; left:20px; padding:12px; background:var(--ink); color:white; z-index:100; }
.skip:focus { top:12px; }
.header { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:27px 0; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; line-height:1; }
.brand img { display:block; width:220px; height:auto; }
.header nav { display:flex; gap:32px; font-size:15px; }
.header nav a { white-space:nowrap; }
.header nav a:hover,.footer>a:last-child:hover { text-decoration:underline; text-underline-offset:6px; }
.header-cta { background:none; border:1px solid var(--ink); padding:12px 17px; font-size:15px; color:var(--ink); }
.header-cta:hover { background:var(--ink); color:white; }
.hero { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:42px 72px; align-items:start; padding-block:63px 38px; }
h1 { font-size:clamp(56px,5.3vw,76px); font-weight:500; letter-spacing:-.04em; line-height:1.02; max-width:810px; }
.hero-description { margin-top:3px; max-width:610px; color:var(--muted); font-size:19px; line-height:1.55; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:28px; margin-top:31px; }
.button { display:inline-flex; align-items:center; justify-content:center; padding:15px 23px; min-height:51px; border:1px solid transparent; border-radius:0; font-size:15px; font-weight:500; }
.primary { background:var(--accent); color:white; }
.primary:hover { background:#962b1b; }
.text-link { background:none; border:0; border-bottom:1px solid var(--accent); padding:5px 0; line-height:1.4; font-size:15px; color:var(--ink); width:fit-content; }
.text-link:hover { color:var(--accent); }
figure { margin:0; }
.hero-image { grid-column:1/-1; margin-top:7px; }
.hero-image img { display:block; width:100%; height:340px; object-fit:cover; object-position:center 43%; }
.hero-image figcaption { font-size:13px; color:var(--muted); line-height:1.5; padding-top:11px; }
.hero-image figcaption a { text-decoration:underline; text-underline-offset:3px; }
h2 { font-size:clamp(34px,3.7vw,52px); font-weight:500; line-height:1.1; letter-spacing:-.03em; }
.perspective { display:grid; grid-template-columns:26% minmax(0,1fr); gap:7%; padding-block:36px 54px; border-top:1px solid var(--line); }
.perspective h2 { font-size:20px; letter-spacing:0; padding-top:7px; }
.perspective-copy { max-width:780px; }
.perspective-copy p { font-size:26px; line-height:1.45; letter-spacing:-.012em; }
.perspective-copy .about-detail { font-size:18px; line-height:1.6; letter-spacing:0; color:var(--muted); margin-top:20px; max-width:680px; }
.expertise-section { background:var(--surface); border-block:1px solid var(--line); padding:60px 0 19px; }
.section-head { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:60px; padding-bottom:43px; }
.section-head>p { font-size:17px; color:var(--muted); max-width:400px; justify-self:end; }
.expertise-row { display:grid; grid-template-columns:27% minmax(0,1fr); gap:40px; border-top:1px solid var(--line); padding-block:35px 41px; scroll-margin-top:25px; }
.expertise-row>h3 { font-size:32px; font-weight:400; line-height:1.15; letter-spacing:-.025em; max-width:260px; }
.service-copy p { font-size:17px; color:var(--muted); }
.service-copy p+p { margin-top:15px; }
.service-copy { max-width:740px; }
.engagement { display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-block:70px 76px; }
.engagement h2 { max-width:440px; }
.engagement p { color:var(--muted); font-size:18px; max-width:540px; }
.engagement p+p { margin-top:20px; }
.engagement h3 { font-size:20px; font-weight:500; line-height:1.3; margin-block:27px 10px; }
.engagement .text-link { margin-top:24px; }
.brief-section { background:var(--ink); color:white; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-block:61px 66px; }
.contact h2 { max-width:430px; font-size:clamp(38px,4.2vw,60px); }
.contact>div>p { font-size:17px; color:#c2cdd4; margin-top:23px; max-width:380px; }
.contact-copy>p:first-child { margin-top:0; max-width:440px; font-size:18px; }
.contact-copy .button { margin-top:26px; }
.contact-copy .button:focus-visible { outline-color:white; }
.contact-copy small { display:block; font-size:14px; color:#c2cdd4; margin-top:20px; line-height:1.5; max-width:360px; }
.footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:31px 37px; }
.footer .brand img { width:175px; }
.footer>span,.footer>a:last-child { font-size:14px; color:var(--muted); }
dialog { width:min(640px,calc(100% - 32px)); max-height:92dvh; border:1px solid var(--line); background:var(--paper); color:var(--ink); padding:30px 34px; border-radius:0; }
dialog::backdrop { background:#192b37bb; }
.dialog-top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:17px; }
.dialog-top h2 { font-size:29px; }
.dialog-top button { background:none; border:0; color:var(--ink); font-size:30px; width:38px; height:38px; }
.dialog-intro { color:var(--muted); font-size:15px; margin-bottom:24px; }
form { display:grid; gap:18px; }
.form-pair { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
form label { display:grid; gap:7px; font-size:15px; font-weight:400; }
form input,form select,form textarea { width:100%; padding:10px 12px; border:1px solid #9faab2; border-radius:0; background:white; color:var(--ink); font-size:16px; font-weight:400; }
form textarea { resize:vertical; min-height:65px; }
.form-bottom { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.form-bottom p { font-size:14px; color:var(--muted); }
#brief-status { font-size:15px; color:var(--ink); background:#e8edef; padding:14px; }
#brief-status:empty { display:none; }
@media(max-width:1150px) {
  .wrap { width:calc(100% - 72px); }
  .hero { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); column-gap:42px; }
  h1 { font-size:clamp(52px,6vw,68px); }
  .header nav { gap:22px; }
  .brand img { width:195px; }
  .expertise-row { grid-template-columns:29% minmax(0,1fr); gap:23px 35px; }
}
@media(max-width:850px) {
  .wrap { width:calc(100% - 48px); }
  .header { gap:20px; flex-wrap:wrap; padding-block:22px; }
  .header nav { order:3; width:100%; justify-content:space-between; padding-top:18px; border-top:1px solid var(--line); font-size:14px; }
  .hero { grid-template-columns:1fr; gap:27px; padding-block:43px 32px; }
  h1 { font-size:clamp(48px,8vw,66px); max-width:680px; }
  .hero-description { max-width:620px; margin-top:0; }
  .hero-image { margin-top:9px; }
  .hero-image img { height:300px; }
  .perspective { gap:5%; grid-template-columns:25% minmax(0,1fr); padding-block:31px 43px; }
  .perspective-copy p { font-size:22px; }
  .engagement,.contact { gap:7%; }
  .engagement p,.contact-copy>p:first-child { font-size:17px; }
  .expertise-row>h3 { font-size:28px; }
  .footer>span { display:none; }
}
@media(max-width:550px) {
  .wrap { width:calc(100% - 40px); }
  .header { padding-block:20px; gap:20px 12px; }
  .brand img { width:164px; }
  .header-cta { font-size:14px; padding:10px 11px; }
  .header nav { gap:12px; font-size:14px; padding-top:16px; }
  .hero { padding-block:34px 30px; gap:24px; }
  h1 { font-size:clamp(39px,10.8vw,58px); line-height:1.04; letter-spacing:-.035em; }
  .hero-description { font-size:17px; margin-top:0; line-height:1.6; }
  .hero-image { margin-top:7px; }
  .hero-image img { height:230px; object-position:48% center; }
  .hero-actions { gap:19px; margin-top:25px; }
  .button { font-size:15px; padding:14px 18px; }
  .text-link { font-size:14px; }
  .perspective,.engagement,.contact { grid-template-columns:1fr; gap:25px; padding-block:42px; }
  h2 { font-size:36px; }
  .perspective h2 { font-size:18px; padding-top:0; }
  .perspective-copy p { font-size:23px; }
  .expertise-section { padding-top:41px; padding-bottom:9px; }
  .section-head { display:block; padding-bottom:31px; }
  .section-head>p { margin-top:17px; font-size:16px; }
  .expertise-row { grid-template-columns:1fr; gap:17px; padding-block:29px 33px; }
  .expertise-row>h3 { font-size:29px; max-width:100%; }
  .service-copy p { font-size:16px; }
  .perspective-copy .about-detail { font-size:17px; }
  .engagement h2 { max-width:310px; }
  .engagement .text-link { margin-top:21px; }
  .contact h2 { font-size:42px; max-width:320px; }
  .contact>div>p { font-size:16px; margin-top:20px; }
  .contact-copy>p:first-child { margin-top:0; }
  .footer { padding-block:25px 31px; }
  dialog { padding:20px; }
  .dialog-top h2 { font-size:26px; }
  .dialog-intro { font-size:15px; margin-bottom:20px; }
  .form-pair { grid-template-columns:1fr; gap:17px; }
  .form-bottom { align-items:start; flex-direction:column; gap:13px; }
}
@media(max-width:350px) {
  .brand img { width:132px; }
  .header nav { flex-wrap:wrap; gap:12px 8px; }
  .hero-actions { align-items:start; flex-direction:column; gap:17px; }
}

.header-cta { text-align:center; }
.footer-area { margin-top:12px; font-size:13px; color:var(--muted); }
.footer nav { display:flex; flex-wrap:wrap; gap:12px 22px; font-size:14px; color:var(--muted); }
.footer a:hover,.prose a:not(.button):hover,.brief-page aside a:hover { text-decoration:underline; text-underline-offset:4px; }
.contact-email { display:block; width:fit-content; margin-top:20px; color:white; text-decoration:underline; text-underline-offset:5px; }
.perspective-copy>.text-link,.service-link { display:inline-block; margin-top:20px; }
.expertise-row>h2 { font-size:32px; font-weight:400; letter-spacing:-.025em; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; font-size:13px; color:var(--muted); }
.breadcrumbs a::after { content:'/'; display:inline-block; margin-left:10px; color:#8997a1; }
.breadcrumbs a:hover { text-decoration:underline; }
.page-heading { padding-block:48px 56px; border-bottom:1px solid var(--line); }
.page-heading h1 { max-width:980px; }
.page-lead { max-width:720px; margin-top:24px; font-size:26px; line-height:1.45; color:var(--muted); }
.editorial { display:grid; grid-template-columns:26% minmax(0,1fr); gap:7%; padding-block:50px 70px; }
.editorial-label { font-size:17px; line-height:1.5; color:var(--muted); }
.prose { max-width:740px; }
.prose h2 { font-size:29px; letter-spacing:-.02em; line-height:1.2; margin-bottom:18px; }
.prose h2:not(:first-child) { margin-top:40px; }
.prose p { font-size:18px; color:var(--muted); }
.prose p+p { margin-top:17px; }
.prose ul { margin:18px 0 0; padding-left:20px; color:var(--muted); }
.prose li { font-size:18px; line-height:1.6; margin-top:7px; padding-left:5px; }
.prose>.text-link { display:inline-block; margin-top:26px; }
.prose p a,.brief-page aside a,.form-note a,#brief-status a { text-decoration:underline; text-underline-offset:3px; }
.faq { border-top:1px solid var(--line); }
.brief-page { display:grid; grid-template-columns:26% minmax(0,1fr); gap:7%; padding-block:45px 75px; }
.brief-page>div { max-width:740px; }
.brief-page aside h2 { font-size:20px; letter-spacing:0; }
.brief-page aside p { font-size:16px; color:var(--muted); margin-top:18px; }
.optional { display:contents; color:var(--muted); }
.form-note { font-size:14px; color:var(--muted); }
.form-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.button:disabled { cursor:default; background:#53616b; }
@media(max-width:850px) { .footer { flex-wrap:wrap; } .footer nav { order:3; width:100%; } .editorial,.brief-page { grid-template-columns:24% minmax(0,1fr); gap:6%; } }
@media(max-width:550px) { .page-heading { padding-block:32px 38px; } .page-lead { font-size:22px; margin-top:20px; } .editorial,.brief-page { grid-template-columns:1fr; gap:25px; padding-block:35px 45px; } .prose p,.prose li { font-size:17px; } .prose h2 { font-size:26px; } .expertise-row>h2 { font-size:29px; } .footer { gap:22px 15px; } .footer>a:last-child { font-size:13px; } }


