@font-face{font-family:Manrope;src:url('/demos/structural-edge/assets/manrope.woff2') format('woff2');font-display:swap;font-weight:200 800}
@font-face{font-family:Barlow;src:url('/demos/structural-edge/assets/barlow-condensed-extrabold.ttf') format('truetype');font-display:swap;font-weight:800}
:root{--ink:#252a2b;--paper:#f3f1e9;--accent:#a4512f;--accent-deep:#874025;--line:#d6d5cf;--input:#33393a;--white:#fff;color-scheme:light;font-family:Manrope,Arial,sans-serif;font-size:16px;color:var(--ink);background:var(--paper);font-synthesis:none}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;line-height:1.6;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,input,textarea,select{font:inherit}
button,input,textarea,select,a{-webkit-tap-highlight-color:transparent}
button{color:inherit}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,figure,fieldset{margin:0}
fieldset{min-width:0;padding:0;border:0}
img{display:block;width:100%;height:100%;object-fit:cover}
[hidden]{display:none!important}
h1,h2{font-family:Barlow,'Arial Narrow',Arial,sans-serif;font-weight:800;line-height:.94;letter-spacing:-.025em;text-transform:uppercase;overflow-wrap:anywhere;hyphens:auto}
h3{line-height:1.3;overflow-wrap:anywhere}
p,a,label,button,legend,summary{overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--accent-deep);outline-offset:5px}
main:focus{outline:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:30;top:8px;left:8px;transform:translateY(-160%);padding:.75rem 1rem;background:var(--ink);color:var(--paper);font-weight:700}
.skip-link:focus{transform:none}
.header-row{display:flex;align-items:center;gap:2rem;min-height:5.5rem;padding:1rem 5%;flex-wrap:wrap;border-bottom:1px solid transparent}
.wordmark{font-family:Barlow,'Arial Narrow',Arial,sans-serif;font-size:1.75rem;font-weight:800;line-height:1.05;letter-spacing:.01em;flex:1 1 8ch;min-width:0}
.desktop-nav{display:flex;align-items:center;gap:2rem;font-size:.875rem;flex-wrap:wrap}
.desktop-nav a,.header-inquiry{min-height:2.75rem;display:inline-flex;align-items:center}
.desktop-nav a[aria-current],.header-inquiry[aria-current]{text-decoration:underline;text-underline-offset:.35em}
.header-inquiry{gap:.5rem;font-size:.875rem}
.inquiry-short,.mobile-menu{display:none}
.arrow{font-size:1.65em;font-weight:400;line-height:1;flex-shrink:0}
.lead{font-size:1.125rem;line-height:1.65;max-width:38ch}
.eyebrow{font-size:.75rem;line-height:1.5;letter-spacing:.075em;text-transform:uppercase;font-weight:650}
.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:3.5rem;padding:.875rem 1.5rem;border:1px solid transparent;border-radius:6px;background:var(--accent);color:var(--white);font-size:.875rem;line-height:1.4;box-shadow:0 2px 3px #252a2b16;transition:transform 100ms ease}
.cta:active{transform:translateY(1px)}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:2.75rem;border-bottom:1px solid currentColor;line-height:1.4}
.home-opening{display:grid;grid-template-columns:1.7fr 1fr;align-items:end;gap:3.125rem;padding:2.3125rem 5% 2.125rem}
.home-title,.home-intro{min-width:0}
.home-title h1{font-size:clamp(4.5rem,6.667vw,6rem);margin-top:1.4375rem;line-height:.89}
.home-title h1>span{display:block}
.home-intro .lead{max-width:31ch;margin-bottom:1.5625rem}
.hero-frame{height:clamp(20rem,29.86vw,26.875rem);margin:0 3%;border-radius:6px;overflow:hidden;clip-path:polygon(0 0,100% 5%,100% 100%,0 100%)}
.image-shell,.image-shell picture{display:block;width:100%;height:100%;min-height:inherit}
.image-shell{background:var(--line)}
.image-hero img{object-position:var(--hero-desktop-position,50% 50%)}
.image-detail img{object-position:var(--detail-desktop-position,50% 50%)}
.image-failed picture{visibility:hidden}
.image-failed{background:var(--input)}
.home-task{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:1.875rem;padding:2rem 5% 1.625rem}
.home-task h2{font-size:2.625rem;max-width:19ch}
.task-links{display:flex;gap:.5rem;flex-wrap:wrap}
.task-links a{display:inline-flex;align-items:center;min-height:3rem;padding:.625rem 1rem;border:1px solid var(--ink);border-radius:4px;font-size:.875rem;line-height:1.4}
.service-layout{display:grid;grid-template-columns:minmax(0,49fr) minmax(0,51fr);gap:0;padding:1.5625rem 3%}
.service-content{grid-column:2;grid-row:1;min-width:0;padding:1.875rem 4% 1.25rem 10%}
.service-content h1{font-size:clamp(3.5rem,5.833vw,5.25rem);margin:1.375rem 0}
.service-intro{font-size:1.0625rem;max-width:48ch;margin-bottom:1.875rem}
.service-photo{grid-column:1;grid-row:1;align-self:start;height:46.25rem;min-height:32rem;border-radius:6px;overflow:hidden}
.interactive-choices{margin-top:1.875rem}
.choice-group+.choice-group{margin-top:1.25rem}
.choice-group legend{font-size:.75rem;font-weight:650;line-height:1.5;margin-bottom:.625rem}
.choice-list{display:flex;flex-wrap:wrap;gap:.5rem}
.choice{display:block;position:relative;flex:0 1 auto;min-width:0;cursor:pointer}
.choice input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;scroll-margin-block-end:20px}
.choice-body{display:flex;align-items:center;justify-content:space-between;gap:.625rem;min-height:3.125rem;padding:.6875rem .875rem;border:1px solid var(--ink);border-radius:4px;font-size:.875rem;line-height:1.4;transition:none}
.choice-mark{width:.625rem;height:.625rem;border:1px solid currentColor;border-radius:50%;flex-shrink:0}
.choice input:checked+.choice-body{background:var(--accent);color:var(--white);border-color:var(--accent);font-weight:650}
.choice input:checked+.choice-body .choice-mark{background:currentColor;box-shadow:inset 0 0 0 2px var(--accent)}
.choice input:focus-visible{outline:none}
.choice input:focus-visible+.choice-body{outline:3px solid var(--accent-deep);outline-offset:4px;position:relative;z-index:1}
.current-answer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.current-answer h2{font-family:Manrope,Arial,sans-serif;font-size:1.5rem;font-weight:600;line-height:1.3;letter-spacing:-.035em;text-transform:none;max-width:27ch}
.current-answer>p:not(.sr-only){margin-top:.9375rem;max-width:48ch;font-size:.9375rem;line-height:1.7}
.answer-inquiry{margin-top:1.5rem}
.fallback-answers{margin-top:1.75rem}
.fallback-answers>h2{font-size:2.25rem;margin-bottom:1.25rem}
.fallback-answers article{padding:1.25rem 0;border-top:1px solid var(--line)}
.fallback-answers h3{font-size:1.125rem;font-weight:650}
.fallback-answers p{margin:.75rem 0;max-width:49ch;font-size:.9375rem}
.fallback-answers .text-link{font-size:.875rem}
.contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(3rem,6.6vw,5.9375rem);padding:2.5rem 5% 4.0625rem;background:var(--ink);color:var(--paper);min-height:50.625rem}
.contact-intro,.contact-panel{min-width:0}
.contact-intro h1{font-size:clamp(4rem,6.389vw,5.75rem);margin:1.5625rem 0}
.contact-intro .lead{font-size:1.0625rem;max-width:39ch}
.contact-context{margin-top:2rem;max-width:25rem}
.contact-context>p{font-size:.875rem;margin-bottom:1.25rem;max-width:42ch}
.contact-context figure{height:13.125rem;border-radius:4px;overflow:hidden}
.inactive-notice{font-size:.75rem;line-height:1.5;border-left:2px solid var(--accent);padding-left:.75rem;margin-bottom:1.5rem;max-width:60ch}
.inactive-notice strong{font-weight:700}
.topic-editor>label{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.8125rem;line-height:1.5;font-weight:650}
.topic-editor>label>span{font-size:.6875rem;font-weight:400}
.topic-editor>input{display:block;width:100%;min-width:0;min-height:3.25rem;margin-top:.5rem;border:1px solid #bec4bf;border-radius:4px;background:var(--input);color:var(--paper);padding:.6875rem .875rem}
.topic-editor>p{font-size:.6875rem;line-height:1.5;margin-top:.375rem}
.topic-options{margin-top:.375rem;font-size:.8125rem}
.topic-options>summary{cursor:pointer;min-height:2.75rem;display:list-item;align-content:center;width:fit-content;max-width:100%;padding:.5rem 0}
.topic-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.875rem;margin:.5rem 0}
.topic-selects label{display:block;min-width:0;font-size:.75rem;line-height:1.5}
.topic-selects select{display:block;width:100%;min-width:0;min-height:2.875rem;margin-top:.375rem;padding:.5rem .625rem;border:1px solid #bec4bf;border-radius:4px;background:var(--input);color:var(--paper)}
.topic-edit-status{font-size:.75rem;line-height:1.5;margin-top:.5rem}
.topic-edit-status:empty{display:none}
.inactive-fields{margin-top:1.5rem}
.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1rem}
.contact-fields label{display:block;min-width:0;font-size:.8125rem;line-height:1.5}
.contact-fields label>span{font-size:.6875rem;margin-left:.4rem}
.contact-fields input,.contact-fields textarea{display:block;width:100%;min-width:0;min-height:3.25rem;margin-top:.5rem;padding:.6875rem .875rem;border:1px solid #bec4bf;border-radius:4px;background:var(--input);color:var(--paper);opacity:1;-webkit-text-fill-color:var(--paper)}
.contact-fields input::placeholder,.contact-fields textarea::placeholder{color:var(--paper);opacity:1}
.contact-fields textarea{min-height:7rem;resize:vertical}
.wide-field{grid-column:1/-1}
.inactive-button{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%;min-height:3.5rem;margin-top:1.5rem;padding:.875rem 1.125rem;border:1px solid transparent;border-radius:6px;background:var(--accent);color:var(--white);font-size:.8125rem;line-height:1.4;opacity:1}
.contact-note{font-size:.75rem;line-height:1.6;margin-top:1rem;max-width:45ch}
.contact-layout :focus-visible{outline-color:#f0b995}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 5%;border-top:1px solid var(--line);font-size:.75rem;line-height:1.5;flex-wrap:wrap}
.site-footer nav{display:flex;gap:1.25rem;flex-wrap:wrap}
.site-footer a{display:inline-flex;align-items:center;min-height:2.75rem}
@media(hover:hover) and (pointer:fine){
  .cta:hover{transform:translateY(-1px);box-shadow:0 3px 7px #252a2b22}
  .cta:active{transform:translateY(1px)}
  .task-links a:hover{background:var(--ink);color:var(--paper)}
  .choice:hover .choice-body{box-shadow:inset 0 0 0 1px currentColor}
}
[data-input=keyboard] .cta{transition:none;transform:none}
@media(max-width:1100px) and (min-width:901px){
  .header-row{gap:1.5rem}
  .home-opening{grid-template-columns:1.45fr 1fr;gap:2rem}
  .home-title h1{font-size:clamp(4rem,7vw,6rem)}
  .service-content{padding-left:7%;padding-right:2%}
  .choice{flex:1 1 8rem}
  .contact-layout{gap:2.5rem}
}
@media(max-width:900px){
  .desktop-nav{gap:1.25rem}
  .home-opening{grid-template-columns:1fr 1fr;gap:2rem;padding-top:1.75rem}
  .home-title h1{font-size:clamp(3.75rem,8vw,5rem)}
  .home-task{grid-template-columns:1fr;gap:1.25rem}
  .service-layout{display:flex;flex-direction:column;padding:0 3% 1.5rem}
  .service-content{padding:1.75rem 2.2% 2rem}
  .service-content h1{font-size:clamp(3.5rem,8vw,5.25rem);max-width:17ch}
  .service-photo{height:23rem;min-height:0;width:100%}
  .contact-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:2rem;padding-top:2rem}
  .contact-intro h1{font-size:clamp(3.5rem,7vw,5rem)}
  .contact-fields,.topic-selects{grid-template-columns:1fr}
  .contact-fields .wide-field{grid-column:auto}
}
@media(max-width:600px){
  .header-row{min-height:4.5rem;padding:.625rem 1.375rem;gap:.75rem;border-bottom-color:var(--line);position:relative}
  .wordmark{font-size:1.375rem;flex-basis:7ch}
  .desktop-nav,.inquiry-long{display:none}
  .inquiry-short{display:inline}
  .header-inquiry{font-size:.75rem;gap:.25rem;min-height:2.75rem;flex-shrink:0}
  .mobile-menu{display:block;font-size:.8125rem;position:static;flex-shrink:0}
  .mobile-menu>summary{display:flex;align-items:center;gap:.625rem;min-height:2.75rem;border-bottom:1px solid currentColor;cursor:pointer;list-style:none;padding:.375rem 0}
  .mobile-menu>summary::-webkit-details-marker{display:none}
  .mobile-menu>summary span{font-size:1.1em}
  .mobile-menu[open]>summary span{transform:rotate(45deg)}
  .mobile-menu nav{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--paper);color:var(--ink);padding:.75rem 1.375rem 1rem;border-bottom:1px solid var(--line);box-shadow:0 8px 14px #252a2b12}
  .mobile-menu nav a{display:flex;align-items:center;min-height:3rem;border-bottom:1px solid var(--line);font-size:.9375rem}
  .eyebrow{font-size:.625rem;letter-spacing:.075em}
  .lead{font-size:.9375rem;line-height:1.65}
  .cta{padding:.8125rem 1.125rem;min-height:3.125rem;font-size:.875rem;gap:1.5rem;max-width:100%}
  .home-opening{display:block;padding:1.5625rem 1.375rem 1.75rem}
  .home-title h1{font-size:clamp(2.75rem,15.1vw,3.6875rem);line-height:.93;margin:1.25rem 0}
  .home-intro .lead{font-size:.9375rem;max-width:36ch;margin-bottom:1.3125rem}
  .hero-frame{height:17.625rem;margin:0 .75rem;clip-path:polygon(0 0,100% 4%,100% 100%,0 100%)}
  .image-hero img{object-position:var(--hero-phone-position,50% 50%)}
  .image-detail img{object-position:var(--detail-phone-position,50% 50%)}
  .home-task{padding:1.6875rem 1.375rem 1.75rem;gap:1.25rem}
  .home-task h2{font-size:2rem}
  .task-links{gap:.5rem}
  .task-links a{font-size:.8125rem;flex:1 1 8rem;justify-content:center;padding:.75rem;min-height:3rem}
  .service-layout{padding:0 .75rem 1.25rem}
  .service-content{padding:1.6875rem .625rem 2rem}
  .service-content h1{font-size:clamp(2.75rem,14.9vw,3.625rem);margin:1.25rem 0;max-width:16ch}
  .service-intro{font-size:.9375rem;line-height:1.6;margin-bottom:1.375rem}
  .interactive-choices{margin-top:1.375rem}
  .choice-group+.choice-group{margin-top:1.125rem}
  .choice-group legend{font-size:.6875rem}
  .choice{flex:1 1 8rem}
  .choice-body{font-size:.8125rem;min-height:3rem;padding:.6875rem .75rem;gap:.5rem}
  .current-answer{padding-top:1.375rem;margin-top:1.375rem}
  .current-answer h2{font-size:1.4375rem;line-height:1.3}
  .current-answer>p:not(.sr-only){font-size:.9375rem;line-height:1.65;margin-top:.75rem}
  .answer-inquiry{margin-top:1.25rem}
  .service-photo{height:16.5625rem;min-height:0}
  .fallback-answers>h2{font-size:2rem}
  .fallback-answers article{padding:1.125rem 0}
  .contact-layout{display:block;min-height:0;padding:1.5625rem 1.375rem 2.5rem}
  .contact-intro h1{font-size:clamp(2.75rem,14.9vw,3.6875rem);margin:1.125rem 0;max-width:13ch}
  .contact-intro .lead{font-size:.875rem;line-height:1.6;max-width:38ch}
  .contact-context{display:none}
  .contact-panel{margin-top:1.5rem}
  .inactive-notice{font-size:.6875rem;line-height:1.5;margin-bottom:1rem;padding-left:.625rem}
  .topic-editor>label{font-size:.75rem;flex-wrap:wrap;gap:.125rem .5rem}
  .topic-editor>label>span{font-size:.625rem}
  .topic-editor>input{font-size:1rem;min-height:3rem;padding:.625rem .75rem}
  .topic-editor>p{font-size:.625rem}
  .topic-options{font-size:.75rem;margin-top:.25rem}
  .topic-selects{grid-template-columns:1fr}
  .topic-edit-status{font-size:.6875rem}
  .inactive-fields{margin-top:1.125rem}
  .contact-fields{grid-template-columns:1fr;gap:1.125rem}
  .contact-fields label{font-size:.75rem}
  .contact-fields label>span{font-size:.625rem}
  .contact-fields input,.contact-fields textarea{min-height:3rem;padding:.625rem .75rem;font-size:1rem}
  .contact-fields textarea{min-height:6.5rem}
  .inactive-button{min-height:3.25rem;padding:.75rem .875rem;font-size:.75rem;margin-top:1.25rem}
  .contact-note{font-size:.6875rem;margin-top:1rem}
  .site-footer{padding:1rem 1.375rem;font-size:.625rem;gap:.625rem 1rem}
  .site-footer nav{gap:1rem}
}
@media(max-width:350px){
  .header-row{gap:.625rem}
  .wordmark{font-size:1.25rem}
  .header-inquiry,.mobile-menu{font-size:.6875rem}
  .home-title h1{font-size:clamp(2.75rem,15vw,3.375rem)}
  .contact-intro h1{font-size:clamp(2.625rem,14.7vw,3.375rem)}
  .contact-panel{margin-top:1.25rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-contrast:more){:root{--line:#777b76}.choice-body{border-width:2px}.contact-fields input,.contact-fields textarea,.topic-editor>input,.topic-selects select{border-width:2px}:focus-visible,.choice input:focus-visible+.choice-body{outline-width:4px}}
