:root{--paper:#f6f6ef;--ink:#172d26;--green:#15765c;--line:#d7dfd7;--muted:#50635a;--white:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:1rem;line-height:1.65}a{color:var(--green);text-underline-offset:.22em}a:hover{text-decoration-thickness:2px}button,select,textarea{font:inherit}button,a,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--green);outline-offset:5px}.container{width:min(1200px,calc(100% - 3rem));margin-inline:auto}.skip-link{position:absolute;top:-10rem;left:1rem;background:white;padding:1rem;z-index:20}.skip-link:focus{top:1rem}.site-header{border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.25rem}.brand{display:block;width:200px;flex-shrink:0}.brand img{display:block;width:100%;height:auto}nav{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem}nav a{padding:.6rem 0;font-size:.95rem;text-decoration:none;color:var(--ink)}nav a[aria-current=page]{color:var(--green);text-decoration:underline;text-decoration-thickness:2px}.hero{display:grid;grid-template-columns:1.45fr 1fr;align-items:center;gap:4rem;padding-block:6rem}.eyebrow,.number{font-size:.85rem;font-weight:650;letter-spacing:.11em;text-transform:uppercase;color:var(--green)}h1,h2,h3{line-height:1.1;letter-spacing:-.045em;margin:0 0 1.4rem;font-weight:650}h1{font-size:clamp(2.6rem,5vw,4.9rem)}h2{font-size:clamp(2rem,3.6vw,3.2rem)}h3{font-size:1.65rem}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:var(--green)}p{margin:0 0 1.25rem}.lead{font-size:1.2rem;max-width:640px;color:var(--muted)}.small{font-size:.9rem;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-block:2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.85rem 1.3rem;border-radius:8px;background:var(--green);color:#fff;font-weight:600;border:1px solid var(--green);text-decoration:none;cursor:pointer}.button:hover{background:#0d5944}.button.secondary{background:transparent;color:var(--green)}.button.secondary:hover{background:#e8eee5}.hero-note{padding:2.5rem;background:var(--ink);color:var(--paper);border-radius:20px}.hero-note h2{font-size:2.4rem}.hero-note .eyebrow,.hero-note a{color:#8ee0bc}.steps{padding:0;list-style:none;margin:2rem 0}.steps li{padding:.85rem 0;border-top:1px solid #4a6155}.steps span{font-size:.8rem;color:#8ee0bc;margin-right:1rem}.text-link{font-weight:650}.section{padding-block:4rem}.section-heading{margin-bottom:2.5rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.cards article{display:flex;flex-direction:column;align-items:flex-start;background:white;border:1px solid var(--line);padding:2rem;border-radius:14px}.cards .number{margin-bottom:1.5rem}.cards article a{margin-top:auto}.product-feature{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:4rem;background:#e7ede2;border-radius:20px;padding:4rem;margin-block:3rem}.product-feature p{max-width:530px}.product-feature figure{margin:0;text-align:center}.product-feature img{width:min(210px,100%);height:auto;border-radius:24px;box-shadow:0 16px 40px #172d2620}.product-feature figcaption{font-size:.85rem;margin-top:1rem;color:var(--muted)}.founder-strip{display:grid;grid-template-columns:1fr 1fr;gap:4rem}.page-hero{padding-block:5rem 2rem}.prose{max-width:780px}.prose h2{font-size:2rem;margin-top:2.5rem}.service-list article{padding-block:3rem;border-bottom:1px solid var(--line);max-width:850px;scroll-margin-top:2rem}.service-list h2{font-size:2.5rem}.measure{max-width:650px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}.contact-grid h2{font-size:2rem}.contact-address{overflow-wrap:anywhere}form{background:white;border:1px solid var(--line);border-radius:16px;padding:2rem}label{display:block;font-weight:600;margin:1rem 0 .4rem}select,textarea{display:block;width:100%;padding:.75rem;border:1px solid #81948a;border-radius:6px;background:white;color:var(--ink)}textarea{resize:vertical;min-height:10rem}form button{margin-top:1.25rem}#draft-status{margin-top:1rem}.site-footer{margin-top:3rem;padding:3rem 0 6rem;border-top:1px solid var(--line)}.footer-grid{display:flex;justify-content:space-between;gap:2rem}.footer-brand{font-size:1.5rem;font-weight:700;text-decoration:none}.footer-grid nav{display:flex;flex-direction:column;gap:0}.copyright{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem;font-size:.85rem;color:var(--muted)}
@media(max-width:900px){.hero{gap:2rem;grid-template-columns:1fr;padding-block:3rem}.hero-note{max-width:650px}.cards{grid-template-columns:1fr}.product-feature{gap:2rem;padding:2rem}.header-inner{flex-wrap:wrap;gap:.8rem}.header-inner nav{gap:.2rem 1rem}.contact-grid,.founder-strip{grid-template-columns:1fr;gap:2rem}}
@media(max-width:560px){.container{width:calc(100% - 2rem)}.brand{width:168px}.product-feature{grid-template-columns:1fr;padding:1.5rem}.product-feature img{width:180px}.hero-note{padding:1.5rem}.page-hero{padding-top:3rem}.section{padding-block:2.5rem}.footer-grid{flex-direction:column}form{padding:1.25rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.site-header nav,.site-footer,.actions,#enquiry-draft{display:none}body{background:white;color:black}.container{width:100%}.hero,.product-feature{display:block}.hero-note{background:white;color:black;border:1px solid}.section{padding:1rem 0}}
input{font:inherit;width:100%;padding:.75rem;border:1px solid #81948a;border-radius:6px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}button:disabled{opacity:.6;cursor:not-allowed}#contact-status{margin-top:1rem}
/* Portfolio: status and content stay in HTML for search and no-script access. */
 .portfolio-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.5rem;
}
.portfolio-card {
  display:grid;
  grid-template-rows:auto auto auto 1fr auto;
  gap:1rem;
  padding:1.75rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  scroll-margin-top:2rem;
  transition:border-color 160ms ease,box-shadow 160ms ease;
}
.portfolio-card:focus-within { border-color:var(--green); }
.portfolio-card h2 {
  font-size:clamp(1.75rem,2.8vw,2.2rem);
  line-height:1.15;
  letter-spacing:-.035em;
  margin:0;
}
.portfolio-meta {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.6rem 1rem;
  padding-bottom:.85rem;
  border-bottom:1px solid #e8ede6;
}
.portfolio-category { font-size:.875rem; color:var(--green); font-weight:600; }
.status-badge {
  border:1px solid var(--line);
  border-radius:999px;
  padding:.2rem .65rem;
  font-size:.8125rem;
  line-height:1.6;
  color:var(--muted);
  background:var(--paper);
}
.portfolio-card .portfolio-summary {
  font-size:1.125rem;
  font-weight:500;
  line-height:1.5;
  margin:0;
  color:var(--ink);
}
.portfolio-card .portfolio-detail { margin:0; color:var(--muted); line-height:1.65; }
.portfolio-footer { padding-top:.75rem; }
.portfolio-action {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem 1rem;
  min-height:48px;
  background:#f0f5ed;
  border:1px solid #dce7d9;
  border-radius:9px;
  color:#105e48;
  font-size:.9375rem;
  font-weight:650;
  text-decoration:none;
  transition:background-color 160ms ease,border-color 160ms ease;
}
.portfolio-action:hover { background:#e1eddd; border-color:#a4bba7; }
@media(hover:hover) { .portfolio-card:hover { border-color:#aec3b4; box-shadow:0 8px 24px #172d2608; } }
@supports(grid-template-rows:subgrid) {
  .portfolio-card { grid-row:span 5; grid-template-rows:subgrid; }
}
@media(max-width:600px) {
  .portfolio-card { grid-row:auto; grid-template-rows:auto auto auto 1fr auto; gap:.9rem; }
}
@media(prefers-reduced-motion:reduce) { .portfolio-card,.portfolio-action { transition:none; } }
.industry-feature { padding:3rem; border-left:4px solid var(--green); background:#e7ede2; border-radius:0 16px 16px 0; }
.cards article h2 { font-size:1.8rem; }
/* Native disclosures: usable with keyboard and touch, including without JS. */
[hidden] { display:none!important; }
.site-header { position:relative; z-index:10; background:var(--paper); }
#primary-nav { align-items:center; gap:.35rem 1rem; }
#primary-nav > a, .nav-group > summary { border-radius:7px; padding:.65rem .8rem; min-height:44px; transition:background-color 160ms ease,color 160ms ease; }
#primary-nav > a:hover,.nav-group > summary:hover,.nav-group[open] > summary { background:#e4ecdf; color:var(--green); }
.nav-group { position:relative; }
.nav-group > summary { list-style:none; cursor:pointer; font-size:.95rem; user-select:none; }
.nav-group > summary::-webkit-details-marker { display:none; }
.nav-group > summary::after { content:'+'; display:inline-block; width:1rem; text-align:center; margin-left:.6rem; }
.nav-group[open] > summary::after { content:'−'; }
.nav-panel { position:absolute; top:calc(100% + .5rem); left:0; width:310px; padding:.65rem; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:0 14px 36px #172d261a; display:grid; gap:.15rem; animation:nav-reveal 150ms ease-out; }
.nav-panel a { display:block; padding:.6rem .8rem; border-radius:7px; min-height:44px; }
.nav-panel a:hover,.nav-panel a:focus-visible { background:var(--paper); }
.nav-toggle { background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:9px; min-height:46px; padding:.6rem 1rem; align-items:center; gap:.65rem; cursor:pointer; }
.nav-toggle-icon { width:18px; height:12px; border-top:2px solid;border-bottom:2px solid; transition:transform 160ms; }
.nav-toggle[aria-expanded=true] .nav-toggle-icon { transform:rotate(90deg); }
@keyframes nav-reveal { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1000px) {
 .header-inner { flex-wrap:wrap; gap:.75rem; }
 .nav-toggle { display:inline-flex; margin-left:auto; }
 #primary-nav { width:100%; flex-basis:100%; display:flex; flex-direction:column; align-items:stretch; padding:.7rem; background:#fff; border:1px solid var(--line); border-radius:14px; gap:.25rem; max-height:70dvh; overflow-y:auto; overscroll-behavior:contain; }
 .nav-panel { position:static; width:100%; box-shadow:none; border:0; border-left:2px solid var(--line); border-radius:0; margin:.25rem 0 .5rem; padding:.25rem .5rem; }
 #primary-nav > a,.nav-group > summary { min-height:48px; padding:.65rem 1rem; }
}
@media(max-width:600px) { .portfolio-grid { grid-template-columns:1fr; } .portfolio-card { padding:1.5rem; } .industry-feature { padding:1.5rem; } }
/* Enquiry forms share the same rhythm in email-draft and secure-submit modes. */
.contact-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; gap:clamp(2rem,5vw,5rem); }
.enquiry-card { width:100%; padding:clamp(1.5rem,3vw,2.75rem); border:1px solid var(--line); border-radius:22px; box-shadow:0 12px 36px #172d2606; }
.enquiry-heading { margin-bottom:2rem; }
.enquiry-heading .eyebrow { margin-bottom:.75rem; }
.contact-grid .enquiry-heading h2 { font-size:clamp(1.6rem,2.4vw,2.1rem); line-height:1.15; letter-spacing:-.035em; margin-bottom:1rem; }
.enquiry-heading > p:last-child { color:var(--muted); line-height:1.6; margin:0; }
.form-field { margin-bottom:1.5rem; }
.enquiry-card label { margin:0 0 .55rem; font-size:.95rem; font-weight:650; line-height:1.5; }
.enquiry-card .field-hint { font-size:.875rem; color:var(--muted); margin:.45rem 0 .7rem; line-height:1.6; }
.enquiry-card input,.enquiry-card select,.enquiry-card textarea { width:100%; font-weight:400; font-family:inherit; font-size:1rem; line-height:1.5; border:1px solid #81948a; border-radius:10px; padding:.85rem 1rem; background:#fbfcf9; color:var(--ink); transition:border-color 150ms,box-shadow 150ms; }
.enquiry-card input,.enquiry-card select { min-height:52px; }
.enquiry-card textarea { min-height:160px; resize:vertical; }
.enquiry-card textarea::placeholder,.enquiry-card input::placeholder { color:#65776d; opacity:1; }
.enquiry-card :is(input,select,textarea):focus { outline:2px solid var(--green); outline-offset:2px; background:#fff; }
.select-wrap { position:relative; }
.enquiry-card select { appearance:none; -webkit-appearance:none; padding-right:3rem; cursor:pointer; }
.select-wrap::after { content:''; position:absolute; right:1.1rem; top:calc(50% - 6px); width:8px; height:8px; border-right:2px solid var(--green); border-bottom:2px solid var(--green); transform:rotate(45deg); pointer-events:none; }
.form-next { border-top:1px solid var(--line); padding-top:1.4rem; margin-top:.5rem; }
.enquiry-card .form-next .button { width:100%; margin:0 0 .75rem; min-height:52px; display:flex; justify-content:space-between; padding:.85rem 1.1rem; }
.enquiry-card .form-next .field-hint { margin:0; }
.form-feedback:empty { display:none; }
.enquiry-card .form-feedback { margin:1.25rem 0 0; padding:1rem; border-left:3px solid var(--green); background:var(--paper); border-radius:0 8px 8px 0; font-size:.9rem; line-height:1.6; }
@media(max-width:900px) { .contact-grid { grid-template-columns:1fr; } .enquiry-card { max-width:680px; } }
@media(prefers-reduced-motion:reduce) { .enquiry-card :is(input,select,textarea) { transition:none; } }
/* Homepage: more open typography and a calmer hierarchy. */
.home-page h1,.home-page h2,.home-page h3 { letter-spacing:-.018em; line-height:1.18; }
.home-page h1 { font-size:clamp(2.65rem,4.7vw,4.4rem); font-weight:600; max-width:13ch; }
.home-page h1 em { letter-spacing:-.025em; }
.home-page .hero { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(2rem,5vw,4rem); padding-block:clamp(3rem,6vw,5rem); align-items:center; }
.home-page .hero-copy .eyebrow { max-width:32ch; margin-bottom:1.5rem; font-size:.875rem; letter-spacing:.08em; }
.home-page .hero-copy .lead { max-width:44ch; line-height:1.75; font-size:1.125rem; }
.home-page .hero-copy .small { max-width:43ch; line-height:1.65; }
.home-page .hero-copy .actions { margin-block:1.75rem 1.25rem; }
.home-page .hero-note { padding:clamp(1.5rem,3vw,2.5rem); border-radius:24px; width:100%; max-width:none; }
.home-page .hero-note .eyebrow { font-size:.8125rem; letter-spacing:.09em; margin-bottom:1.1rem; }
.home-page .hero-note h2 { font-size:clamp(1.8rem,2.6vw,2.35rem); line-height:1.22; font-weight:550; letter-spacing:-.01em; margin-bottom:1.25rem; }
.home-page .hero-note > p:not(.eyebrow) { color:#d6e3db; font-size:1rem; line-height:1.7; }
.home-page .steps { margin:1.5rem 0; }
.home-page .steps li { display:grid; grid-template-columns:1.8rem minmax(0,1fr); gap:.65rem; padding:1rem 0; align-items:baseline; }
.home-page .steps span { font-size:.8rem; margin:0; }
.home-page .steps strong { display:block; font-size:1rem; font-weight:550; }
.home-page .steps p { color:#c0d3c7; font-size:.875rem; line-height:1.6; margin:.25rem 0 0; }
.home-page .hero-note .text-link { display:inline-block; padding:.4rem 0; font-weight:550; text-decoration-thickness:1px; }
.home-page .section-heading { margin-bottom:2rem; }
.home-page .cards article { gap:1rem; padding:1.75rem; }
.home-page .cards article > * { margin:0; }
.home-page .cards h3 { font-size:1.55rem; font-weight:600; }
.home-page .cards p { color:var(--muted); }
.home-page .cards article > a { margin-top:auto; padding-top:.5rem; font-weight:600; }
.home-page .product-feature { margin-block:2.5rem; padding:clamp(1.5rem,5vw,4rem); }
.home-page .product-feature h2 { font-size:clamp(2rem,3.4vw,3rem); }
.home-page .studio-section { border-bottom:1px solid var(--line); padding-bottom:3.5rem; }
.home-page .founder-strip { padding-top:3.5rem; }
@supports(grid-template-rows:subgrid) {
 .home-page .cards article { display:grid; grid-row:span 4; grid-template-rows:subgrid; }
}
@media(max-width:1000px) {
 .home-page .hero { grid-template-columns:1fr; gap:2.5rem; }
 .home-page h1 { max-width:18ch; font-size:clamp(2.65rem,6.5vw,4.4rem); }
 .home-page .hero-copy .lead { max-width:55ch; }
 .home-page .hero-note { max-width:680px; }
}
@media(max-width:560px) {
 .home-page .hero { padding-block:2.5rem; gap:2rem; }
 .home-page h1 { font-size:clamp(2.35rem,9vw,3rem); }
 .home-page .hero-copy .actions { align-items:stretch; }
 .home-page .hero-copy .actions .button { flex:1 1 100%; }
 .home-page .hero-note h2 { font-size:1.9rem; }
}
.home-page { overflow-wrap:anywhere; }
.home-page .hero > *, .home-page .cards > *, .home-page .product-feature > *, .home-page .founder-strip > * { min-width:0; }
@media(max-width:1000px) { .home-page .hero { grid-template-columns:minmax(0,1fr); } }
@media(max-width:900px) { .home-page .cards { grid-template-columns:minmax(0,1fr); } }

/* Studio positioning: shared rhythm for the new calls to action. */
.studio-signature{font-size:.9rem;font-weight:600;color:var(--green);line-height:1.7}.home-contact{border-top:1px solid var(--line)}.portfolio-intro{border-bottom:1px solid var(--line)}

/* Shared studio footer. Keep contrast and logo proportions consistent at every size. */
.site-footer{background:var(--ink);color:var(--paper);border-top:0;margin-top:4rem;padding:4.5rem 0 2rem}
.site-footer .footer-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,1fr);gap:3rem;padding-bottom:3.5rem}
.site-footer .footer-grid>*{min-width:0}
.site-footer .footer-brand{display:inline-block;width:180px;max-width:100%;margin-bottom:1.75rem}
.site-footer .footer-brand img{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
.site-footer .footer-tagline{font-size:clamp(1.55rem,2.5vw,2rem);font-weight:500;letter-spacing:-.015em;line-height:1.4;margin-bottom:1.25rem}
.site-footer .footer-tagline span{color:#8ee0bc}
.site-footer .footer-description{color:#bccfc4;font-size:.9375rem;line-height:1.8;margin:0}
.site-footer .footer-label{color:#8ee0bc;text-transform:uppercase;font-size:.75rem;font-weight:650;letter-spacing:.12em;margin:0 0 1.25rem}
.site-footer nav{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.site-footer a{color:var(--paper)}
.site-footer nav a{min-height:44px;padding:.5rem 0;font-size:.9375rem}
.site-footer a:hover{color:#8ee0bc}
.site-footer :focus-visible{outline-color:#8ee0bc}
.site-footer .footer-connect>p:not(.footer-label){color:#d5e1d9;font-size:.9375rem;line-height:1.8}
.site-footer .footer-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;min-height:48px;border:1px solid #668276;border-radius:8px;text-decoration:none;font-size:.9375rem;font-weight:550;max-width:290px}
.site-footer .footer-cta:hover{background:#244137;border-color:#8ee0bc}
.site-footer .footer-support{display:inline-block;font-size:.875rem;min-height:44px;padding:.8rem 0;margin-top:.5rem;color:#bccfc4}
.site-footer .footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;border-top:1px solid #405a4d;padding-top:1.5rem;font-size:.8125rem;color:#bccfc4}
.site-footer .footer-bottom p{margin:0}
.site-footer .footer-bottom span{padding:0 .35rem}
.site-footer .footer-bottom a{display:inline-flex;align-items:center;min-height:44px;color:#bccfc4}
@media(max-width:900px){.site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem}.site-footer .footer-identity{grid-column:1/-1}.site-footer .footer-bottom{justify-content:flex-start}}
@media(max-width:480px){.site-footer{padding-top:3rem}.site-footer .footer-grid{grid-template-columns:minmax(0,1fr);gap:2rem;padding-bottom:2rem}.site-footer .footer-brand{width:160px;margin-bottom:1.25rem}.site-footer .footer-cta{max-width:none}.site-footer .footer-bottom{display:grid;gap:.5rem}.site-footer .footer-description{font-size:.875rem}}
@media print{.site-footer{display:none}}
.site-footer{overflow-wrap:anywhere}.site-footer .footer-cta span{flex-shrink:0}

/* Framed navigation gives the studio a recognisable, quiet presence. */
.site-header{background:transparent;border:0;padding-top:1.25rem}
.site-header .header-inner{width:min(1280px,calc(100% - 2rem));padding:1rem 1.5rem;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 6px 24px #172d2606;gap:1.25rem}
.site-header .brand{width:190px;text-decoration:none}
.brand-caption{display:block;color:var(--muted);font-size:.6875rem;font-weight:500;letter-spacing:.085em;line-height:1.6;margin-top:.3rem}
.site-header #primary-nav{gap:.2rem .25rem}
.site-header #primary-nav>a,.site-header .nav-group>summary{font-size:.875rem;font-weight:550;padding:.7rem .85rem;border-radius:10px}
.site-header .nav-group>summary::after{content:'';width:6px;height:6px;border-right:1.5px solid;border-bottom:1.5px solid;transform:translateY(-2px) rotate(45deg);margin-left:.75rem;transition:transform 160ms ease}
.site-header .nav-group[open]>summary::after{transform:translateY(1px) rotate(225deg)}
.site-header #primary-nav:not(:has(.nav-group[open])) .nav-group:has([aria-current=page])>summary{background:#edf4ee;color:var(--green)}
.site-header #primary-nav>a[aria-current=page]{text-decoration:none;color:var(--ink)}
.site-header #primary-nav:not(:has(.nav-group[open]))>a[aria-current=page]{background:#edf4ee;color:var(--green);font-weight:650}
.site-header #primary-nav>a[href="/contact.html"]{background:var(--green);color:white;margin-left:.6rem;padding-inline:1.2rem;box-shadow:0 2px 5px #172d2610}
.site-header #primary-nav>a[href="/contact.html"]::after{content:'↗';margin-left:.85rem}
.site-header #primary-nav>a[href="/contact.html"]:hover{background:#105e48}
.site-header .nav-panel{top:calc(100% + 1rem);padding:.65rem;border-radius:16px;border-color:#cddbd0;box-shadow:0 18px 44px #172d261a}
.site-header .nav-panel a{font-size:.875rem;padding:.75rem .9rem;line-height:1.5;border-radius:9px}
.site-header .nav-panel>a:first-child{font-weight:650;color:var(--green);background:#f0f5ed;margin-bottom:.3rem}
.site-header .nav-panel a:hover{background:#e8f0e6}
@media(max-width:1000px){.site-header .header-inner{padding:1rem}.site-header #primary-nav{border:0;border-top:1px solid var(--line);border-radius:0;padding:1rem 0 0;background:transparent;gap:.25rem}.site-header #primary-nav>a,.site-header .nav-group>summary{padding:.85rem 1rem}.site-header .nav-panel{box-shadow:none;margin:.35rem 0 .75rem;border-left:2px solid #cddbd0;border-radius:0;padding:.25rem .5rem}.site-header #primary-nav>a[href="/contact.html"]{margin:.5rem 0 0;display:flex;justify-content:space-between}.site-header .nav-toggle{border-radius:12px;background:#f0f5ed;border-color:#d7e2d7;font-size:.875rem}}
@media(max-width:480px){.site-header{padding-top:.75rem}.site-header .header-inner{width:calc(100% - 1.5rem);border-radius:16px;padding:.85rem;gap:.65rem}.site-header .brand{width:150px;max-width:100%}.brand-caption{font-size:.625rem;letter-spacing:.035em}.site-header .nav-toggle{padding:.65rem .75rem;gap:.5rem}}
@media(prefers-reduced-motion:reduce){.site-header *{animation:none!important;transition:none!important}}
/* Inner-page rhythm: one deliberate gap, rather than stacked section margins. */
.inner-page{--section-space:clamp(2rem,3.5vw,3rem)}
.inner-page .page-hero{padding-block:clamp(2.5rem,4vw,3.5rem) var(--section-space)}
.inner-page .page-hero>:last-child{margin-bottom:0}
.inner-page>.section{padding-block:var(--section-space)}
.inner-page>.page-hero+.section,.inner-page>.section+.section{padding-top:0}
.inner-page .prose>:first-child{margin-top:0}
.inner-page .prose>.eyebrow+h2{margin-top:0}
.inner-page .prose h2{margin-top:2rem;margin-bottom:1rem;line-height:1.2}
.inner-page>.section>:last-child{margin-bottom:0}
.inner-page .service-list>article:first-child{padding-top:0}
.inner-page .service-list>article{padding-block:var(--section-space)}
.inner-page .service-list article>:last-child{margin-bottom:0}
/* Homepage sections share one gap instead of accumulating padding and margins. */
.home-page{--section-space:clamp(2rem,3.5vw,3rem)}
.home-page .hero{padding-bottom:var(--section-space)}
.home-page .hero-copy>:last-child{margin-bottom:0}
.home-page>.section{padding-block:var(--section-space)}
.home-page>.hero+.section,.home-page>.section+.section{padding-top:0}
.home-page>.product-feature{margin-block:0 var(--section-space)}
.home-page>.product-feature+.section{padding-top:0}
.home-page .founder-strip{padding-top:var(--section-space)}
.home-page .founder-strip>div>:last-child,.home-page>.section>:last-child{margin-bottom:0}
.home-page>.section+.home-contact{padding-top:1.5rem}
/* Allow user-enlarged text to wrap without widening grid tracks or the page. */
.inner-page{overflow-wrap:anywhere}
.inner-page .cards>*,.inner-page .portfolio-grid>*,.inner-page .contact-grid>*,.inner-page .founder-strip>*,.inner-page .actions>*{min-width:0}
.inner-page .button{max-width:100%;white-space:normal;text-align:center}
@media(max-width:900px){.inner-page .cards,.inner-page .contact-grid,.inner-page .founder-strip{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.inner-page .portfolio-grid{grid-template-columns:minmax(0,1fr)}}
@media(forced-colors:active){.site-footer .footer-brand img{filter:none}.site-header .header-inner,.site-footer .footer-cta,.button{border:1px solid ButtonText}:focus-visible{outline:3px solid Highlight!important}.site-footer{background:Canvas;color:CanvasText}}
/* Reusable, image-led template gallery. */
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.gallery-card{min-width:0;background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.gallery-card>img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:left center;background:#e7ede2;border-bottom:1px solid var(--line)}
.gallery-card-body{padding:1.5rem}
.gallery-card-body .eyebrow{font-size:.7rem;margin-bottom:.75rem}
.gallery-card h2{font-size:1.8rem;letter-spacing:-.02em;margin-bottom:1.25rem}
.gallery-pages{margin-top:2rem}
.gallery-pagination{display:flex;flex-wrap:wrap;gap:.5rem}
.gallery-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.5rem .8rem;background:white;border:1px solid var(--line);border-radius:8px}
.gallery-pagination a[aria-current=page]{background:var(--green);color:white}
@media(max-width:650px){.gallery-grid{grid-template-columns:minmax(0,1fr)}.gallery-card-body{padding:1.25rem}}

/* Group service offerings separately from examples and industry concepts. */
.site-header .nav-section{display:grid;gap:.1rem;padding-top:.35rem}
.site-header .nav-section+.nav-section{border-top:1px solid var(--line);margin-top:.4rem;padding-top:.65rem}
.site-header .nav-section-label{margin:.2rem .9rem .3rem;font-size:.7rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.5}
.site-header .nav-section>a{padding-inline-start:1.65rem}
.site-header .nav-section-label{cursor:default}
.service-list .service-capability{margin-top:2rem}
.service-list .service-capability h3{font-size:1.35rem;letter-spacing:-.02em;line-height:1.3;margin-bottom:.8rem}
.service-jump-links{margin-top:1.5rem;gap:.5rem}
.service-jump-links a{border:1px solid var(--line);border-radius:999px;padding:.5rem .9rem;font-size:.875rem;background:white}
.service-jump-links a:hover{background:#e8f0e6}

@media(max-width:1000px){.site-header #primary-nav{flex-wrap:nowrap}.site-header #primary-nav> *{flex-shrink:0;min-width:0}}

/* Product names retain priority; short descriptions explain unfamiliar brands. */
.site-header .nav-product-name{display:block;font-weight:600}
.site-header .nav-product-description{display:block;margin-top:.15rem;color:var(--muted);font-size:.78rem;font-weight:400;line-height:1.5}

/* Keep the introduction full-width beneath the identity on narrow screens. */
.founder-intro{display:grid;grid-template-columns:112px minmax(0,1fr);column-gap:1.5rem;row-gap:.5rem;align-items:center;max-width:850px;margin-top:1.75rem}
.founder-intro .founder-portrait{display:block;grid-column:1;grid-row:1 / 3;width:112px;height:auto;border-radius:16px;border:1px solid var(--line)}
.founder-identity{grid-column:2;margin:0;align-self:end;line-height:1.5}
.founder-identity strong{display:block;font-size:1.2rem;color:var(--ink)}
.founder-identity span{display:block;font-size:.9rem;color:var(--muted)}
.founder-intro .lead{grid-column:2;margin:0;min-width:0;align-self:start}
@media(max-width:560px){.founder-intro{grid-template-columns:72px minmax(0,1fr);gap:1rem}.founder-intro .founder-portrait{grid-row:1;width:72px;border-radius:12px}.founder-identity{align-self:center}.founder-intro .lead{grid-column:1 / -1;font-size:1rem}}

/* Lightweight action icons; visible labels remain the accessible names. */
.ui-icon{display:inline-block;width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em}
.icon-link{display:inline-flex;align-items:center;gap:.45em;max-width:100%;vertical-align:middle}
.icon-link>span{min-width:0}
.button:has(.ui-icon){gap:.55em}

/* Align editorial copy with its hero while preserving readable line lengths. */
.prose.prose-aligned{max-width:1200px}
.prose-aligned>*{max-width:780px}

#contact-confirmation { background:var(--white); }
.contact-interaction { min-width:0; }

/* Reserve the mobile header's enhanced state before deferred navigation initializes. */
@media(max-width:1000px){.js .site-header .nav-toggle{display:inline-flex!important}.js .nav-toggle[aria-expanded="false"]+#primary-nav{display:none}}
.site-footer .footer-brand img,.site-header .brand img{aspect-ratio:5/1}
