/* Grandhall Technology design system — simple, editorial, responsive. */
:root{--ink:#171b22;--muted:#526071;--navy:#102b50;--blue:#165caa;--line:#dde2e8;--wash:#f5f7f9;--white:#fff;--max:1180px;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;color:var(--ink);background:#fff;font:16px/1.65 'Segoe UI',Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.16;letter-spacing:-.028em;font-weight:650}h1{font-size:clamp(2.6rem,4.6vw,4.35rem);max-width:760px}h2{font-size:clamp(2rem,3vw,2.9rem)}h3{font-size:1.3rem}p{max-width:76ch}a{color:var(--blue);text-underline-offset:3px}a:hover{color:#073e78}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #2472c7;outline-offset:3px}button,input,select,textarea{font:inherit}button{cursor:pointer}.skip-link{position:absolute;top:-100px;left:12px;padding:10px 16px;background:#fff;z-index:20}.skip-link:focus{top:10px}.container{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.topbar{background:var(--navy);color:white;font-size:.82rem}.topbar .container{display:flex;align-items:center;justify-content:flex-end;gap:24px;min-height:33px}.topbar a{color:white;text-decoration:none}.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}.header-inner{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:26px}.wordmark{color:var(--ink);text-decoration:none;font-size:1.29rem;letter-spacing:-.05em;font-weight:750;white-space:nowrap}.wordmark:before{content:'';display:inline-block;width:10px;height:22px;background:var(--navy);margin-right:11px;vertical-align:-3px}.wordmark span{font-weight:400;letter-spacing:0;font-size:.78rem;color:var(--muted);display:block;margin-left:22px;margin-top:-5px}.primary-nav{display:flex;gap:26px;align-items:center}.primary-nav a{color:#26313e;text-decoration:none;font-size:.91rem;font-weight:600;white-space:nowrap}.primary-nav a:not(.btn):hover{text-decoration:underline;text-underline-offset:6px}.btn,button[type=submit]{background:var(--navy);border:1px solid var(--navy);color:white!important;padding:12px 21px;border-radius:2px;text-decoration:none;display:inline-block;font-weight:650;line-height:1.4;transition:background .15s}.btn:hover,button[type=submit]:hover{background:#1c4576}.btn-outline{color:var(--navy)!important;border:1px solid #aebbc9;background:#fff}.btn-outline:hover{background:var(--wash)}.eyebrow{font-size:.76rem;font-weight:750;text-transform:uppercase;letter-spacing:.13em;color:#355b87;margin-bottom:19px}.hero{padding:72px 0 86px;background:#f7f8fa}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}.lead{font-size:1.14rem;color:#424f5d;max-width:55ch}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 0}.photo-placeholder{display:grid;place-items:center;min-height:390px;background:linear-gradient(138deg,#d9e0e8,#eef1f4 57%,#bfcbd8);color:#40536a;border:1px solid #d6dde5;position:relative;overflow:hidden}.photo-placeholder:before{content:'';height:170px;width:170px;position:absolute;top:-50px;right:-50px;border-radius:50%;border:38px solid #ffffff4d}.photo-placeholder span{display:block;text-align:center;font-size:.82rem;letter-spacing:.055em;text-transform:uppercase;font-weight:650;background:#ffffffbd;padding:12px 20px;z-index:1}.section{padding:84px 0}.section-soft{background:var(--wash)}.section-heading{max-width:740px;margin-bottom:37px}.section-heading p{color:var(--muted);font-size:1.07rem}.value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.value-card{background:white;border:1px solid var(--line);min-height:170px;padding:28px}.value-card .glyph,.goal-icon{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid #b8c7d7;color:var(--navy);font-size:1.35rem;margin-bottom:16px;border-radius:4px}.value-card h3{margin-bottom:10px}.value-card p{color:var(--muted);margin:0}.goals-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.goal-card{border:1px solid var(--line);background:white;overflow:hidden}.goal-card summary{list-style:none;padding:25px 25px 24px;display:flex;align-items:center;gap:15px;cursor:pointer;font-size:1.2rem;font-weight:650;line-height:1.3;min-height:105px}.goal-card summary::-webkit-details-marker{display:none}.goal-card summary:after{content:'+';font-size:1.6rem;font-weight:300;margin-left:auto;color:var(--navy)}.goal-card[open] summary:after{content:'−'}.goal-card[open]{border-color:#889db4;box-shadow:0 6px 22px #0d274911}.goal-card .goal-icon{flex-shrink:0;margin:0}.goal-body{padding:0 25px 24px}.goal-body>p{color:var(--muted);margin-bottom:16px}.service-list{list-style:none;padding:0;margin:0}.service-list li{border-top:1px solid #e5e9ee;padding:11px 0;font-size:.93rem;color:#566372}.service-list a{display:block;font-weight:650;color:var(--navy);text-decoration:none;font-size:.99rem}.service-list a:after{content:' >';font-weight:400}.service-list a:hover{text-decoration:underline}.goal-body .inline-cta{margin-top:20px}.promise-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.check-list li{position:relative;padding-left:24px;font-size:.95rem}.check-list li:before{content:'✓';color:#175686;font-weight:700;position:absolute;left:0}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;list-style:none;padding:0;counter-reset:steps}.process-grid li{padding-top:22px;border-top:2px solid #abb8c6;counter-increment:steps}.process-grid li:before{content:'0' counter(steps);font-size:.8rem;font-weight:800;color:#315e90;display:block;margin-bottom:13px}.contact-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:72px}.contact-pane{background:var(--navy);color:#fff;padding:42px;align-self:start}.contact-pane h2{color:#fff}.contact-pane a{color:#fff}.contact-pane p{color:#e0e7ef}.intake-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:6px;margin:0}.field label{font-size:.89rem;font-weight:650}.field input,.field textarea,.field select{padding:12px 13px;border:1px solid #a8b2bd;border-radius:2px;width:100%;background:#fff;min-height:47px}.field textarea{min-height:145px;resize:vertical}.field-full,.form-note,.form-submit{grid-column:1/-1}.form-note{font-size:.8rem;color:var(--muted)}.site-footer{background:#f1f3f5;border-top:1px solid #d8dee6;padding:55px 0 22px}.footer-columns{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}.footer-columns h3{font-size:1rem;letter-spacing:0}.footer-columns ul{list-style:none;padding:0;margin:0}.footer-columns li{margin:7px 0}.footer-columns a{color:#364b63}.footer-bottom{font-size:.79rem;border-top:1px solid #d3dae1;margin-top:35px;padding-top:19px;color:#5f6975}.service-hero{padding:72px 0 62px;background:var(--wash);border-bottom:1px solid var(--line)}.service-hero h1{max-width:800px}.breadcrumbs{font-size:.83rem;color:var(--muted);margin-bottom:36px}.breadcrumbs a{color:#43566d}.service-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);gap:70px}.service-main section{border-bottom:1px solid var(--line);padding-bottom:29px;margin-bottom:33px}.service-main section:last-child{border:0}.service-main h2{font-size:1.8rem}.service-main li{padding:5px 0}.service-sidebar{align-self:start;position:sticky;top:105px;padding:28px;background:var(--wash);border:1px solid var(--line)}.service-sidebar h2{font-size:1.32rem}.service-sidebar .btn{margin-top:12px}.service-cta{padding:44px;background:var(--navy);color:#fff}.service-cta h2{color:#fff}.service-cta a{color:#fff}.service-cta .btn{background:#fff;color:var(--navy)!important;border-color:white}.related-list{columns:2}.confirmation{min-height:55vh;padding:110px 0}.muted{color:var(--muted)}
@media(max-width:950px){.primary-nav{gap:14px}.header-inner{flex-wrap:wrap;padding:14px 0}.hero-grid{gap:22px}.contact-layout,.service-layout{gap:30px}.promise-grid{gap:25px}.value-grid{gap:15px}}
@media(max-width:720px){.container{width:min(calc(100% - 32px),var(--max))}.topbar .container{justify-content:center;gap:14px;font-size:.76rem}.header-inner{display:block}.wordmark{display:inline-block;margin-bottom:12px}.primary-nav{overflow-x:auto;gap:18px;padding-bottom:5px}.primary-nav a{font-size:.83rem}.primary-nav .btn{padding:9px 12px}.hero{padding:52px 0}.hero-grid,.value-grid,.goals-list,.promise-grid,.contact-layout,.service-layout,.footer-columns{grid-template-columns:1fr}.hero-grid{gap:34px}.photo-placeholder{min-height:230px}.section{padding:56px 0}.check-list{grid-template-columns:1fr 1fr}.process-grid{grid-template-columns:1fr 1fr}.contact-pane{padding:30px}.service-sidebar{position:static}.related-list{columns:1}}
@media(max-width:420px){.check-list,.process-grid,.intake-form{grid-template-columns:1fr}.field-full,.form-note,.form-submit{grid-column:1}.goal-card summary{padding:19px}.goal-body{padding:0 19px 22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Grandhall: restrained Microsoft-inspired editorial palette. */
:root{--ink:#111;--muted:#434343;--navy:#111;--blue:#0067b8;--line:#dedede;--wash:#f7f7f7;--white:#fff}
body{color:#111;background:#fff}
h1,h2,h3,h4,.eyebrow,.goal-card summary,.wordmark,.primary-nav a{color:#111}
a,.service-list a,.footer-columns a,.breadcrumbs a,.contact-pane a,.service-cta a{color:#0067b8}
a:hover,.service-list a:hover{color:#004578}
.topbar{background:#fff;border-bottom:1px solid #e6e6e6;color:#111}
.topbar a{color:#111}.site-header{box-shadow:none}
.wordmark:before{background:#111;height:20px;width:4px;margin-right:10px}
.wordmark span{color:#444}
.btn,button[type=submit]{background:#111;border-color:#111;color:#fff!important;border-radius:0;font-weight:600}
.btn:hover,button[type=submit]:hover{background:#303030}
.btn-outline{background:#fff;color:#111!important;border-color:#111}.btn-outline:hover{background:#f4f4f4}
.eyebrow{color:#333;letter-spacing:.06em}
.hero,.service-hero{background:#f7f7f7}
.lead,.section-heading p,.value-card p,.goal-body>p,.service-list li,.muted,.form-note,.breadcrumbs{color:#444}
.photo-placeholder{background:#eee;border:1px solid #d9d9d9;color:#444}
.photo-placeholder:before{display:none}.photo-placeholder span{background:#fff;color:#111}
.value-card .glyph,.goal-icon{border:0;color:#111;background:none;border-radius:0;width:42px;height:42px}
.line-icon{height:34px;width:34px;display:block;flex-shrink:0}
.goal-card[open]{box-shadow:none;border-color:#888}
.goal-card summary:after{color:#111}
.check-list li:before,.process-grid li:before{color:#111}
.contact-pane{background:#f7f7f7;color:#111;border:1px solid #e0e0e0}
.contact-pane h2,.contact-pane p{color:#111}
.site-footer{background:#f2f2f2}
.footer-columns a{color:#0067b8}.footer-bottom{color:#444}
.service-sidebar{background:#f7f7f7}
.service-cta{background:#f7f7f7;color:#111;border:1px solid #ddd}
.service-cta h2{color:#111}.service-cta .btn{background:#111;border-color:#111;color:#fff!important}

/* Grandhall refinement: typography and photography, no decorative iconography. */
.wordmark:before{display:none}
.wordmark{display:inline-flex;align-items:center;min-width:180px;min-height:48px;letter-spacing:normal}
.wordmark span{display:none}
.brand-logo{width:180px;height:48px;object-fit:contain;object-position:left center;display:block}
.hero-photo{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#f2f2f2;display:block}
.value-card .glyph,.goal-icon{display:none}
.goal-card summary{min-height:85px;padding:20px 24px;font-size:1.12rem}
.goal-card summary:after{content:'>';font-size:1.35rem;font-weight:400;color:#111;transform:rotate(0);transition:transform .15s}
.goal-card[open] summary:after{content:'>';transform:rotate(90deg)}
.service-list a:after{content:' >';font-weight:400}
.check-list li:before{content:'';background:#111;height:4px;width:4px;top:.72em;border-radius:50%}
.hero{background:#fff}
@media(max-width:720px){.brand-logo{width:165px;height:44px}}
@media(prefers-reduced-motion:reduce){.goal-card summary:after{transition:none}}


/* Current requested refinements: restore the six goal icons and show the motto below the header logo. */
.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:180px;min-height:0;white-space:normal;gap:0}
.brand-lockup:before{display:none}
.brand-lockup .brand-logo{width:180px;height:42px;object-fit:contain;object-position:left center;display:block}
.brand-lockup .brand-tagline{display:block;margin:2px 0 0;color:#444;font-size:.72rem;font-weight:400;line-height:1.25;letter-spacing:0;white-space:normal}
.goal-icon{display:inline-grid;place-items:center;flex-shrink:0;margin:0;width:42px;height:42px;color:#111;background:transparent;border:0;border-radius:0}
.goal-icon .line-icon{display:block;width:34px;height:34px;flex-shrink:0}
@media(max-width:720px){.brand-lockup .brand-logo{width:165px;height:40px}.brand-lockup .brand-tagline{font-size:.7rem}}


/* Requested branding refinements: keep the footer brand and contact heading black. */
.site-footer .footer-columns > div:first-child > .wordmark,
.site-footer .footer-columns > div:first-child > .wordmark:hover,
.site-footer .footer-columns > div:first-child > .wordmark:visited { color: #111; }
.contact-pane .eyebrow { color: #111 !important; }

/* Let homepage section introductions use the full content column on desktop. */
#goals > .container > p,
#deliverables > .container > p { width: 100%; max-width: none; }


/* Our approach page: editorial principles, not promotional feature cards. */
.principles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:52px;margin-top:10px}
.principle{border-top:1px solid var(--line);padding:25px 0 22px}
.principle-index{font-size:.78rem;font-weight:750;letter-spacing:.08em;margin:0 0 12px;color:var(--muted)}
.principle h3{font-size:1.35rem;margin-bottom:10px;letter-spacing:-.015em}
.principle p{max-width:58ch;color:var(--muted);margin-bottom:0}
.approach-conclusion{max-width:none}
.approach-conclusion p{max-width:none}
@media(max-width:720px){.principles-grid{grid-template-columns:1fr;column-gap:0}}


/* Homepage hero: rounded photography, soft depth, and a restrained ambient flare. */
.hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 84% 30%, rgba(0,103,184,.075) 0, rgba(0,103,184,0) 38%),
    radial-gradient(ellipse at 12% 88%, rgba(80,145,190,.055) 0, rgba(80,145,190,0) 35%),
    #fff;
}
.hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-18% -8%;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 78% 38%, rgba(0,103,184,.105) 0, rgba(72,143,192,.055) 22%, transparent 48%),
    radial-gradient(ellipse at 52% 100%, rgba(177,204,222,.16) 0, transparent 42%);
  filter:blur(28px);
}
.hero-grid{
  position:relative;
  z-index:0;
}
.hero-grid::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:-2.5%;
  top:8%;
  width:49%;
  height:84%;
  border-radius:28px;
  pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(0,103,184,.19) 0, rgba(85,153,196,.12) 34%, rgba(85,153,196,0) 72%);
  filter:blur(32px);
  transform:scale(1.04);
}
.hero-photo{
  position:relative;
  z-index:1;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.8);
  box-shadow:0 22px 55px rgba(18,39,61,.16), 0 4px 14px rgba(18,39,61,.08);
  filter:drop-shadow(0 8px 18px rgba(0,103,184,.08));
}
@media(max-width:720px){
  .hero::before{
    inset:-8% -24%;
    background:radial-gradient(ellipse at 75% 62%, rgba(0,103,184,.09) 0, rgba(85,153,196,.045) 28%, transparent 62%);
    filter:blur(22px);
  }
  .hero-grid::after{
    right:-5%;
    top:auto;
    bottom:-3%;
    width:100%;
    height:47%;
    filter:blur(26px);
  }
  .hero-photo{
    border-radius:15px;
    box-shadow:0 16px 36px rgba(18,39,61,.14), 0 3px 10px rgba(18,39,61,.07);
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-photo{filter:none}
}


/* Original Grandhall vector flare: layered light ribbons and fine streaks, strongest behind the hero visual. */
.hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background-image:url("images/hero-flare.svg");
  background-repeat:no-repeat;
  background-position:right center;
  background-size:cover;
  opacity:.9;
}
@media(max-width:720px){
  .hero::after{
    background-position:64% center;
    background-size:auto 100%;
    opacity:.62;
  }
}
@media(prefers-reduced-motion:reduce){
  .hero::after{opacity:.72}
}


/* Hero colour direction: bold acid yellow and electric green, not the default AI blue-purple palette. */
.hero{
  background:
    radial-gradient(ellipse at 86% 28%, rgba(194,235,0,.18) 0, rgba(194,235,0,0) 42%),
    radial-gradient(ellipse at 57% 100%, rgba(94,202,0,.11) 0, rgba(94,202,0,0) 40%),
    #fff;
}
.hero::before{
  background:
    radial-gradient(ellipse at 82% 38%, rgba(192,238,0,.24) 0, rgba(122,209,0,.12) 25%, transparent 52%),
    radial-gradient(ellipse at 59% 90%, rgba(113,202,0,.14) 0, transparent 45%);
  filter:blur(34px);
}
.hero-grid::after{
  background:radial-gradient(ellipse at center, rgba(193,235,0,.28) 0, rgba(101,200,0,.18) 34%, rgba(101,200,0,0) 72%);
}
.hero-photo{
  box-shadow:0 22px 55px rgba(80,105,0,.13), 0 4px 14px rgba(65,110,0,.08);
  filter:drop-shadow(0 8px 18px rgba(128,190,0,.13));
}
@media(max-width:720px){
  .hero::before{
    background:radial-gradient(ellipse at 75% 62%, rgba(194,235,0,.17) 0, rgba(101,200,0,.08) 30%, transparent 64%);
  }
  .hero-photo{
    box-shadow:0 16px 36px rgba(80,105,0,.12), 0 3px 10px rgba(65,110,0,.07);
  }
}


/* Hero art direction: molten yellow-orange ribbons, electric-blue streaks, and a more colourful surrounding field. */
.hero{
  background:
    radial-gradient(ellipse at 88% 22%, rgba(255,174,0,.31) 0, rgba(255,174,0,.16) 21%, transparent 49%),
    radial-gradient(ellipse at 72% 78%, rgba(255,91,0,.2) 0, rgba(255,145,0,.11) 27%, transparent 55%),
    radial-gradient(ellipse at 12% 96%, rgba(0,140,255,.13) 0, rgba(0,140,255,0) 39%),
    radial-gradient(ellipse at 42% 0%, rgba(255,215,50,.14) 0, transparent 42%),
    #fff;
}
.hero::before{
  inset:-25% -12%;
  background:
    radial-gradient(ellipse at 84% 30%, rgba(255,177,0,.36) 0, rgba(255,118,0,.17) 25%, transparent 53%),
    radial-gradient(ellipse at 69% 78%, rgba(0,135,255,.2) 0, rgba(0,135,255,.09) 20%, transparent 46%),
    radial-gradient(ellipse at 22% 88%, rgba(255,191,0,.17) 0, transparent 42%);
  filter:blur(38px);
}
.hero-grid::after{
  right:-8%;
  top:-2%;
  width:62%;
  height:104%;
  background:
    radial-gradient(ellipse at 63% 37%, rgba(255,176,0,.36) 0, rgba(255,111,0,.18) 30%, transparent 68%),
    radial-gradient(ellipse at 32% 65%, rgba(0,140,255,.22) 0, rgba(0,140,255,.08) 29%, transparent 64%);
  filter:blur(38px);
}
.hero-photo{
  box-shadow:0 22px 55px rgba(255,135,0,.17), 0 4px 14px rgba(0,102,204,.12);
  filter:drop-shadow(0 8px 22px rgba(255,153,0,.17));
}
.hero::after{opacity:1}
@media(max-width:720px){
  .hero::before{
    inset:-12% -28%;
    background:
      radial-gradient(ellipse at 75% 55%, rgba(255,174,0,.28) 0, rgba(255,118,0,.12) 30%, transparent 64%),
      radial-gradient(ellipse at 18% 82%, rgba(0,140,255,.16) 0, transparent 48%);
    filter:blur(27px);
  }
  .hero-grid::after{
    right:-8%;
    bottom:-8%;
    width:112%;
    height:66%;
    filter:blur(31px);
  }
  .hero-photo{
    box-shadow:0 16px 36px rgba(255,135,0,.15), 0 3px 10px rgba(0,102,204,.1);
  }
  .hero::after{opacity:.82}
}
@media(prefers-reduced-motion:reduce){.hero::after{opacity:.9}}


/* Header wordmark: show the company name beside the symbol, with the motto underneath. */
.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.brand-row{display:flex;align-items:center;gap:12px}
.brand-lockup .brand-logo{flex:0 0 auto;width:76px;height:48px;object-fit:contain;object-position:left center}
.brand-lockup .brand-name{display:block;color:#111;font-size:1.08rem;font-weight:700;letter-spacing:-.035em;line-height:1.15;white-space:nowrap}
.brand-lockup .brand-tagline{display:block;margin:2px 0 0;color:#444;font-size:.72rem;font-weight:400;line-height:1.25;letter-spacing:0}
@media(max-width:720px){
  .brand-row{gap:10px}
  .brand-lockup .brand-logo{width:64px;height:42px}
  .brand-lockup .brand-name{font-size:1rem}
  .brand-lockup .brand-tagline{font-size:.7rem}
}


/* Fix cascade from the older .wordmark span rule: keep the logo row visible. */
a.wordmark.brand-lockup .brand-row{display:flex!important;align-items:center;gap:12px}
a.wordmark.brand-lockup .brand-logo{display:block!important;visibility:visible!important;opacity:1!important;flex:0 0 76px;width:76px;height:48px;max-width:none;object-fit:contain;object-position:left center}
a.wordmark.brand-lockup .brand-name{display:block!important;visibility:visible!important;color:#111;font-size:1.08rem;font-weight:700;line-height:1.15;white-space:nowrap}
a.wordmark.brand-lockup .brand-tagline{display:block!important;visibility:visible!important;margin:2px 0 0 0;color:#444;font-size:.72rem;line-height:1.25;white-space:normal}
@media(max-width:720px){
  a.wordmark.brand-lockup .brand-row{gap:10px}
  a.wordmark.brand-lockup .brand-logo{flex-basis:64px;width:64px;height:42px}
  a.wordmark.brand-lockup .brand-name{font-size:1rem}
  a.wordmark.brand-lockup .brand-tagline{font-size:.7rem}
}


/* Keep the brand lockup flush with the left edge; the legacy wordmark marker is text-only. */
a.wordmark.brand-lockup::before{display:none!important}
a.wordmark.brand-lockup{margin-left:0}

/* Approach page hero: reuse the vivid vector flare while reserving a real photo slot. */
.approach-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:72px 0 86px;
  background:
    radial-gradient(ellipse at 82% 24%,rgba(255,176,0,.25) 0,transparent 44%),
    radial-gradient(ellipse at 68% 78%,rgba(0,140,255,.12) 0,transparent 42%),
    #fff;
}
.approach-hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-18% -8%;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 82% 27%,rgba(255,174,0,.34) 0,rgba(255,118,0,.12) 27%,transparent 54%),
    radial-gradient(ellipse at 70% 76%,rgba(0,135,255,.19) 0,transparent 45%);
  filter:blur(38px);
}
.approach-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:url("images/hero-approach.svg") no-repeat right center / cover;
  opacity:.95;
}
.approach-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.approach-hero-copy,.approach-hero-visual{min-width:0}
.approach-hero-visual{position:relative;isolation:isolate}
.approach-hero-visual::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-10% -8%;
  border-radius:30px;
  background:radial-gradient(ellipse at center,rgba(255,173,0,.36) 0,rgba(0,135,255,.15) 44%,transparent 72%);
  filter:blur(25px);
}
.approach-hero-photo{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.8);
  border-radius:20px;
  box-shadow:0 22px 55px rgba(255,135,0,.17),0 4px 14px rgba(0,102,204,.12);
}
@media(max-width:900px){
  .approach-hero-grid{grid-template-columns:1fr;gap:34px}
  .approach-hero-copy h1{max-width:18ch}
  .approach-hero-visual{max-width:760px}
}
@media(max-width:720px){
  .approach-hero{padding:52px 0 60px}
  .approach-hero::before{inset:-12% -25%;filter:blur(27px)}
  .approach-hero::after{background-position:64% center;background-size:auto 100%;opacity:.82}
  .approach-hero-grid{gap:28px}
  .approach-hero-photo{border-radius:15px;box-shadow:0 16px 36px rgba(255,135,0,.15),0 3px 10px rgba(0,102,204,.1)}
}


/* 2026 brand lockup: visually left-aligned logo with a full-sized bold wordmark. */
.site-header .header-inner{align-items:center}
a.wordmark.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;margin:0;min-width:0;gap:1px;text-decoration:none}
a.wordmark.brand-lockup .brand-row{display:flex!important;align-items:center;justify-content:flex-start;gap:14px;margin:0}
a.wordmark.brand-lockup .brand-logo{display:block!important;width:94px;height:60px;flex:0 0 94px;object-fit:contain;object-position:left center;margin:0}
a.wordmark.brand-lockup .brand-name{display:block!important;margin:0;color:#111;font-size:clamp(1.7rem,2.65vw,2.25rem);font-weight:800;letter-spacing:-.045em;line-height:1.1;white-space:nowrap}
a.wordmark.brand-lockup .brand-tagline{display:block!important;margin:0;color:#444;font-size:.76rem;line-height:1.2;letter-spacing:0;font-weight:400}
@media(max-width:1120px){
 .site-header .header-inner{flex-wrap:wrap;row-gap:10px;padding-block:10px}
 .site-header .primary-nav{margin-left:auto}
}
@media(max-width:720px){
 .site-header .header-inner{display:block}
 a.wordmark.brand-lockup{margin-bottom:12px}
 a.wordmark.brand-lockup .brand-row{gap:10px}
 a.wordmark.brand-lockup .brand-logo{flex:0 0 66px;width:66px;height:45px}
 a.wordmark.brand-lockup .brand-name{font-size:clamp(1.32rem,4.9vw,1.75rem)}
 a.wordmark.brand-lockup .brand-tagline{font-size:.7rem}
 .site-header .primary-nav{margin-left:0}
}

/* Compact contact actions: meeting first, then accessible mail button. */
.topbar .container{min-height:48px;gap:10px;justify-content:flex-end}
.topbar a.topbar-meeting,.topbar a.topbar-email{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:9px 15px;min-height:36px;border:1px solid #111;border-radius:6px;font-size:.86rem;font-weight:650;line-height:1.1;text-decoration:none;transition:background-color .16s,color .16s,border-color .16s}
.topbar a.topbar-meeting{background:#111;color:#fff}
.topbar a.topbar-meeting:hover{background:#333;color:#fff}
.topbar a.topbar-email{background:#fff;color:#111}
.topbar a.topbar-email:hover{background:#f1f3f5;color:#111}
.topbar-email svg{width:16px;height:16px;flex-shrink:0}
a.wordmark.brand-lockup .brand-tagline{display:none!important}
html:focus-within{scroll-behavior:smooth}
[id]{scroll-margin-top:100px}
.footer-motto{margin:.35rem 0 0;font-weight:650;color:#111}
@media(max-width:720px){.topbar .container{justify-content:center;flex-wrap:wrap;gap:8px;padding-block:8px}.topbar a.topbar-meeting,.topbar a.topbar-email{padding:9px 11px;font-size:.78rem}}
@media(prefers-reduced-motion:reduce){html,html:focus-within{scroll-behavior:auto}}


/* Three concise proof points in the independent advice section. */
.proof-points{grid-template-columns:1fr;gap:18px;max-width:900px}
.proof-points li{padding-left:22px}
.proof-points li:before{top:.65em}
.proof-points strong{display:block;font-size:1.05rem;line-height:1.4;margin-bottom:3px}
.proof-points .point-note{display:block;color:var(--muted);font-size:.94rem;line-height:1.55}


/* Full-width, text-only homepage hero. */
.hero-grid-text-only{grid-template-columns:minmax(0,1fr)}
.hero-grid-text-only>div{max-width:100%}
.hero-grid-text-only h1{max-width:100%;font-size:clamp(2.8rem,6vw,5.2rem)}
.hero-grid-text-only .lead{max-width:none;width:100%}


/* Make the engagement-process step numbers prominent and easy to scan. */
.process-grid li:before{font-size:4.5rem;font-weight:900;line-height:1;letter-spacing:-.045em;margin-bottom:18px;color:#111}


/* Tighten the transition after the homepage approach-preview section. */
#approach-preview{padding-bottom:32px}
#why-us{padding-top:32px}
@media(max-width:720px){#approach-preview{padding-bottom:24px}#why-us{padding-top:24px}}


/* Clear, accessible FAQ accordion for prospective consulting clients. */
.faq-section .faq-intro{max-width:72ch;color:var(--muted);margin-bottom:28px}
.faq-list{width:100%;max-width:none;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{position:relative;list-style:none;cursor:pointer;padding:21px 44px 21px 0;color:var(--ink);font-weight:650;line-height:1.4}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:1.55rem;font-weight:400;color:var(--muted)}
.faq-list details[open] summary:after{content:"−"}
.faq-list details p{width:100%;max-width:none;margin:0;padding:0 42px 22px 0;color:var(--muted)}
.faq-list summary:focus-visible{outline:3px solid #2472c7;outline-offset:3px;border-radius:2px}
@media(max-width:720px){.faq-section .faq-intro{margin-bottom:18px}.faq-list summary{padding-block:18px}.faq-list details p{padding-bottom:18px}}


/* Floating white proof-point bubble within the homepage hero. */
.hero{padding-bottom:clamp(42px,6vw,76px)}
.hero-experience-wrap{position:relative;z-index:1;margin-top:clamp(34px,5vw,58px)}
.hero-experience{padding:clamp(24px,3.4vw,42px);border:1px solid rgba(255,255,255,.9);border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 22px 60px rgba(42,47,54,.13),0 3px 12px rgba(42,47,54,.06);backdrop-filter:blur(12px)}
.hero-experience .eyebrow{margin-bottom:9px;color:#444;font-size:.78rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.hero-experience h2{margin-bottom:9px;font-size:clamp(1.6rem,3vw,2.25rem)}
.hero-experience .experience-intro{margin-bottom:23px;color:var(--muted)}
.hero-experience .experience-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;margin:0;padding:0;border-top:1px solid #dedede}
.hero-experience .experience-grid li{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:21px 20px 0 0;min-width:0}
.hero-experience .experience-grid li+li{padding-left:20px;border-left:1px solid #dedede}
.hero-experience .experience-metric{font-size:clamp(1.05rem,1.55vw,1.45rem);font-weight:800;line-height:1.2;letter-spacing:-.035em;color:#111}
.hero-experience .experience-grid li span{max-width:28ch;color:#444;font-size:.92rem;line-height:1.5}
@media(max-width:900px){.hero-experience .experience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-experience .experience-grid li{padding:19px 16px 18px 0}.hero-experience .experience-grid li+li{padding-left:16px}.hero-experience .experience-grid li:nth-child(3){padding-left:0;border-left:0;border-top:1px solid #dedede}.hero-experience .experience-grid li:nth-child(4){border-top:1px solid #dedede}}
@media(max-width:720px){.hero{padding-bottom:42px}.hero-experience-wrap{margin-top:30px}.hero-experience{padding:23px 20px;border-radius:18px}.hero-experience .experience-intro{margin-bottom:17px}}
@media(max-width:520px){.hero-experience .experience-grid{grid-template-columns:1fr}.hero-experience .experience-grid li,.hero-experience .experience-grid li+li,.hero-experience .experience-grid li:nth-child(3),.hero-experience .experience-grid li:nth-child(4){padding:15px 0;border-left:0;border-top:1px solid #dedede}.hero-experience .experience-grid li:first-child{border-top:0}.hero-experience .experience-grid li span{max-width:42ch}}


/* Compact the hero proof-point bubble after its heading and intro were removed. */
.hero-experience{padding-top:clamp(22px,2.8vw,32px)}
.hero-experience .experience-grid{border-top:0}
.hero-experience .experience-grid li{padding-top:0}
@media(max-width:900px){.hero-experience .experience-grid li{padding-top:0}}


/* Let the Our Approach section introductions span the full content width. */
.approach-section-intro{width:100%;max-width:none}


/* The shared section-heading wrapper is capped at 740px; remove that cap on Our Approach. */
.approach-hero + .section .section-heading,
.approach-hero + .section + .section .section-heading{width:100%;max-width:none}


/* Privacy policy page */
.privacy-header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;padding-bottom:18px}
.privacy-main{padding-top:clamp(36px,6vw,72px);padding-bottom:clamp(48px,7vw,88px)}
.privacy-content{max-width:860px;margin:0 auto;padding:clamp(24px,5vw,56px);background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 12px 40px rgba(15,23,42,.05)}
.privacy-content h1{margin-top:0;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.04em}
.privacy-content h2{margin-top:2.2em;font-size:clamp(1.35rem,2.5vw,1.75rem);letter-spacing:-.025em}
.privacy-content h3{margin-top:1.7em;font-size:1.1rem}
.privacy-content p,.privacy-content li{line-height:1.75}
.privacy-content ul{padding-left:1.4rem}
.privacy-content li+li{margin-top:.45rem}
.privacy-content a{overflow-wrap:anywhere}
.privacy-content .policy-subheading{margin-top:-.5rem;color:var(--muted);font-size:.92rem}
.privacy-back-bottom{text-align:center;margin:28px 0 0}
.footer-bottom a{margin-left:16px}
@media(max-width:520px){.privacy-header-inner{align-items:flex-start;flex-direction:column}.privacy-content{padding:22px 18px;border-radius:14px}.privacy-content h2{margin-top:1.8em}}
