/* Company experience layer. Font faces have one owner: assets/site.css. */
/* The service header's text menu reserves its width before Archivo arrives. */
.site-header:not(:has(.header-cta)) .menu-link{width:6.5rem;flex:none;justify-content:flex-start}
.business-hero .hero-grid{display:grid;grid-template-columns:minmax(0,1fr);max-width:var(--frame);margin-inline:auto}
.site-nav .nav-close{display:block}
.site-nav .nav-close a{justify-content:flex-end;color:var(--btn-top)}
.menu-link[aria-expanded="true"] svg{display:none}
.menu-link[aria-expanded="true"]::before{content:"×";font-size:1.75rem;line-height:1}
@media (min-width:66em){.site-nav .nav-close{display:none}}
.business-hero .hero-copy{display:block;padding:2.5rem var(--gutter) 2rem;align-self:center;min-width:0}
.business-hero .hero-copy>*{margin-right:0}
.business-hero .eyebrow{margin-top:0}
.business-hero .hero-h1{margin-top:1.25rem;font-size:clamp(2.75rem,5.6vw,4.75rem);line-height:.98;letter-spacing:-.035em}
.business-hero .hero-sub{max-width:31rem;margin-top:1.5rem;font-size:clamp(1.1875rem,1.05rem + .6vw,1.4375rem);line-height:1.5}
.business-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:1.75rem}
.business-hero .hero-art{grid-column:auto;grid-row:auto;margin:0;align-self:center;min-width:0}
.business-hero .hero-art img{aspect-ratio:2/1;object-fit:cover}
.business-hero .hero-cap{font-size:.8125rem}
.business-services,.business-process{padding-block:clamp(3rem,7vw,6rem)}
.section-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-bottom:2.5rem}
.section-intro .lede{max-width:29rem;align-self:end}
.section-intro .h-section{font-size:clamp(2.5rem,4.5vw,4rem)}
.service-compositions{display:grid;gap:1.5rem}
.service-composition{display:grid;grid-template-columns:minmax(0,1fr);background:var(--ivory-deep);border:1px solid var(--rule-light);overflow:hidden}
.service-composition--dark{background:var(--gun);border-color:var(--gun)}
.service-copy{padding:clamp(1.5rem,3.5vw,3rem);min-width:0}
.service-copy h3{font-size:clamp(2.125rem,3.8vw,3.375rem);line-height:1.08;letter-spacing:-.025em;font-weight:400;color:var(--ink);margin:1rem 0}
.dark .service-copy h3{color:var(--ivory)}
.service-copy>p:not(.eyebrow){max-width:31rem;font-size:1.125rem;line-height:1.6}
.service-copy .text-link{display:inline-flex;align-items:center;gap:1rem;min-height:2.75rem;margin-top:1.25rem;font-family:var(--ui);font-size:.9375rem}
.service-visual{position:relative;align-self:center;min-width:0;margin:0 clamp(1.25rem,3vw,3rem) 2rem;padding:1.5rem;border:1px solid var(--rule-light);background:var(--ivory);color:var(--ink)}
.service-visual figcaption{font-size:1rem;line-height:1.5;margin-top:1.25rem;text-wrap:balance;color:var(--ink-muted)}
.service-visual svg{width:3rem;height:3rem;color:var(--brass-dark);flex:none}
.browser-visual{padding:0;transform:rotate(-1deg);box-shadow:0 12px 0 -5px #d2c6b2}
.browser-chrome{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;border-bottom:1px solid var(--rule-light);padding:.75rem 1rem;font-family:var(--mono);font-size:.8125rem;background:#e4dccb}
.browser-chrome span:first-child{letter-spacing:.15em;color:var(--brass-dark)}
.browser-body{padding:min(1.5rem,5vw)}
.browser-picture{display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem;min-height:9rem;padding:min(1.25rem,4vw);background:var(--gun);color:var(--ivory);font-size:1.625rem;line-height:1.15}
.browser-picture span{min-width:0;overflow-wrap:anywhere}
.browser-picture svg{color:var(--btn-top)}
.browser-lines{display:grid;gap:.5rem;margin:1.25rem 0}
.browser-lines i{height:3px;width:90%;background:#c8bda9}
.browser-lines i:nth-child(2){width:75%}.browser-lines i:nth-child(3){width:60%}
.visual-action{display:flex;justify-content:space-between;padding:.625rem .875rem;background:var(--btn-top);color:var(--ink);font-family:var(--ui);font-size:.875rem}
.browser-visual figcaption{padding:0 1.5rem 1rem;margin-top:0}
.automation-visual{color:var(--ivory);background:#1a2322;border-color:#6e7671}
.visual-kicker{font-family:var(--mono);font-size:.875rem;color:var(--btn-top);padding-bottom:1rem;border-bottom:1px solid var(--rule-dark)}
.workflow{display:grid;gap:0;margin-top:.25rem;counter-reset:workflow}
.workflow li{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;position:relative;min-width:0;padding:1rem 0;border-bottom:1px solid var(--rule-dark);font-size:1.25rem;line-height:1.2}
.workflow li span{min-width:0;flex:1 1 8rem;overflow-wrap:anywhere}
.workflow li svg{width:2.25rem;height:2.25rem;color:var(--btn-top)}
.automation-visual figcaption{color:var(--ivory-soft)}
.report-visual{display:grid;grid-template-columns:minmax(0,1fr) 1.5rem minmax(0,1.2fr);align-items:center;gap:.75rem;border:0;background:transparent;padding:0}
.source-stack{display:grid;gap:.625rem}
.source-stack span{display:block;padding:.75rem;border:1px solid #9d937e;background:var(--ivory);font-family:var(--mono);font-size:.8125rem;overflow-wrap:anywhere;box-shadow:-3px 3px 0 #d2c6b2}
.report-arrow{font-size:1.5rem;color:var(--brass-dark)}
.report-sheet{padding:1rem;border:1px solid #9d937e;background:var(--ivory);box-shadow:5px 6px 0 #d2c6b2}
.report-sheet>p{font-size:1.375rem;line-height:1.2;margin-top:1rem}
.report-sheet>span{font-family:var(--mono);font-size:.8125rem;display:block;margin-top:1rem}
.report-chart{height:5rem;display:flex;align-items:end;gap:.375rem;margin-top:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--brass-dark)}
.report-chart i{background:var(--brass-dark);flex:1;height:40%}.report-chart i:nth-child(2){height:70%}.report-chart i:nth-child(3){height:50%}.report-chart i:nth-child(4){height:90%}.report-chart i:nth-child(5){height:65%}
.report-visual figcaption{grid-column:1/-1}
.product-preview{padding-block:clamp(3rem,6vw,5rem);border-block:1px solid var(--brass)}
.product-preview-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}
.product-preview-grid .h-section{font-size:clamp(2.5rem,4vw,3.5rem)}
.product-preview-grid>div>p:not(.eyebrow):not(.preview-statement):not(.sample-caption){max-width:30rem;margin-block:1.25rem;font-size:1.1875rem}
.product-preview-grid .text-link{display:inline-flex;min-height:2.75rem;align-items:center;gap:1rem}
.product-preview-action{background:var(--gun);color:var(--ivory);padding:clamp(1.5rem,4vw,3rem);border-top:2px solid var(--brass);--focus:var(--btn-top)}
.product-preview-action .eyebrow{color:var(--brass)}
.product-preview-action .btn{display:flex;flex-wrap:wrap;max-width:100%;overflow-wrap:anywhere}
.preview-statement{font-size:clamp(2rem,3.2vw,3rem);line-height:1.15;margin-block:1.25rem}
.sample-caption{font-family:var(--mono);font-size:.8125rem;margin-top:.75rem;color:var(--ivory-soft)}
.process-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}
.process-grid>li{border-top:1px solid var(--rule-light);padding-top:1.25rem}
.process-number{font-family:var(--mono);font-size:.875rem;color:var(--brass-dark)}
.process-grid h3{font-size:1.625rem;line-height:1.2;font-weight:400;color:var(--ink);margin-block:1rem .75rem}
.process-grid p{max-width:27rem;font-size:1.125rem}
.field select{display:block;width:100%;max-width:100%;margin-top:.5rem;min-height:3rem;padding:.625rem .875rem;font:inherit;font-size:1.0625rem;line-height:1.45;color:var(--ivory);background:#1a2322;border:1px solid #8c948e;border-radius:2px}
.field select:focus-visible{outline-offset:2px;border-color:var(--btn-top)}
.field-optional{font-size:.8125rem;font-family:var(--serif);font-weight:400;letter-spacing:0;color:var(--ivory-soft)}
.optional-fields{margin-top:1.25rem}
.enquiry .field-row{min-width:0}.enquiry .field{min-width:0}
.invite .lede{color:var(--ivory-soft)}
.detail-close{display:none}
details[open]>summary>.detail-close{display:inline}
details[open]>summary>.detail-open{display:none}
.demo-cat[open]>summary .detail-close{display:inline}
.demo-cat[open]>summary .detail-open{display:none}
.demo-toggle{grid-area:mark;display:flex;align-items:center;justify-content:end;min-height:2.75rem;font:600 .875rem/1.2 var(--ui);color:var(--btn-top);white-space:nowrap}
.demo-cat>summary{grid-template-columns:minmax(2.75rem,max-content) minmax(0,1fr) max-content}
.demo-cat>summary::after,.demo-rules>summary::after{content:none}
.demo-grid{min-width:0;grid-template-columns:minmax(0,1fr)}
.demo-head-copy,.demo-stage,.demo-stage>*{min-width:0}
.close-details{display:block;min-height:2.75rem;padding:.5rem 1rem;margin-top:1rem;border:1px solid #8c948e;border-radius:2px;background:#101716;color:var(--ivory);font:600 .9375rem/1.4 var(--ui);cursor:pointer}
.close-details:hover{border-color:var(--btn-top);background:#26312e}
/* Reserve the close action's space before enhancement; native summary remains the no-JS close. */
.close-details[hidden]{display:block!important;visibility:hidden;pointer-events:none}
.demo-rules summary{display:flex;gap:1rem;justify-content:space-between}
.product-method{margin-top:2.5rem;border-block:1px solid var(--rule-light)}
.product-method>summary{display:flex;gap:1rem;justify-content:space-between;align-items:center;min-height:3.5rem;padding:1rem 0;cursor:pointer;color:var(--ink);font-size:1.25rem;list-style:none}
.product-method>summary::-webkit-details-marker{display:none}
.product-method>summary span{font-family:var(--ui);font-size:.875rem}
.product-method .limits{margin-top:0;padding-block:1.5rem;border-top:1px solid var(--rule-light)}
.image-viewer{display:none;position:fixed;inset:0;z-index:1000;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;padding:1rem;background:rgb(8 13 12 / .98)}
.image-viewer:target{display:grid}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;max-width:100%}
.viewer-bar h2{font-family:var(--ui);font-size:1rem;line-height:1.3;font-weight:600;min-width:0;color:var(--ivory)}
.viewer-close{display:inline-flex;align-items:center;justify-content:center;flex:none;gap:.625rem;min-width:5.75rem;min-height:2.75rem;padding:.5rem 1rem;background:var(--ivory);color:var(--gun);font:600 1rem/1.2 var(--ui);text-decoration:none;border-radius:2px}
.viewer-close span{font-size:1.5rem;line-height:1}
.viewer-image{min-width:0;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center}
.viewer-image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.viewer-caption{font:400 .8125rem/1.5 var(--mono);color:var(--ivory-soft)}
body.viewer-is-open{overflow:hidden}
/* Animation starts only when an already-visible group intersects. Initial content is never hidden. */
@keyframes arrive{from{opacity:.35;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:no-preference){[data-reveal].is-arriving{animation:arrive .4s ease-out both}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media (min-width:37.5em){
  .section-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}
  .process-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
  .image-viewer{padding:1.5rem 2rem}
}
@media (min-width:60em){
  .business-hero .hero-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);grid-template-rows:auto}
  .business-hero .hero-copy{padding:4rem 0 4rem var(--gutter)}
  .business-hero .hero-art{grid-column:2;grid-row:1}
  .business-hero .hero-art img{aspect-ratio:4/3}
  .business-hero .hero-cap{padding-inline:1.5rem}
  .service-composition{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}
  .service-visual{margin-block:2.5rem}
  .product-preview-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}
  .demo-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
}
@media (max-width:37.49em){
  .service-visual{transform:none}
  .process-grid{gap:1.5rem}
  .business-hero .eyebrow{letter-spacing:.13em}
  .business-hero .hero-copy{padding-top:2rem}
  .business-actions{align-items:start;flex-direction:column}
}
@media (max-width:22em){
  .demo-cat>summary{grid-template-columns:minmax(0,1fr) max-content}
  .report-visual{grid-template-columns:minmax(0,1fr);gap:1rem}
  .report-arrow{justify-self:center;transform:rotate(90deg)}
  .source-stack{grid-template-columns:minmax(0,1fr);gap:.5rem}
  .viewer-bar h2{font-size:.875rem}
}
