/* Layout concept: a construction drawing set. Sheets of concrete and off-white paper separated by
   graphite hairlines; an editorial hero pairs the headline with a large photo plate and an
   architectural title block; services read as a spec-section directory; charcoal appears once. */
:root{
  --concrete:#D6D9D6;
  --steel:#A7AEAD;
  --charcoal:#515A5B;
  --off:#F1F1ED;
  --green:#B7FF00;
  --graphite:#202728;
  --ink:#202728;
  --ink-2:#4A5354;
  --ink-3:#5F6869;
  --paper:#FAFAF7;
  --rule:rgba(32,39,40,.2);
  --rule-light:rgba(241,241,237,.22);
  --f-display:"Barlow Semi Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --f-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --f-mono:"Manrope","Helvetica Neue",Arial,sans-serif;   /* small labels (was monospace) */
  --f-tech:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;   /* spec codes and drawing labels only */
  --gl:max(20px, env(safe-area-inset-left, 0px));
  --gr:max(20px, env(safe-area-inset-right, 0px));
  --col:104px;
  --wrap:1248px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--concrete);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--off)}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--graphite);outline-offset:3px}
.c-dark :focus-visible,.c-footer :focus-visible,.c-titleblock :focus-visible{outline-color:var(--green)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--graphite);color:var(--off);padding:10px 14px;z-index:100;font-weight:600}
.skip:focus{left:16px}
.c-wrap{max-width:calc(var(--wrap) + 40px);margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
.c-full{display:grid;grid-template-columns:[full-start] minmax(var(--gl),1fr) [main-start] repeat(12,minmax(0,var(--col))) [main-end] minmax(var(--gr),1fr) [full-end]}

/* ---------- Type ---------- */
.c-label{display:flex;align-items:center;gap:10px;margin:0;font-family:var(--f-mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.c-label::before{content:"";width:9px;height:9px;background:var(--graphite);flex:none}
.c-dark .c-label{color:var(--concrete)}
.c-dark .c-label::before{background:var(--green)}
.c-h2{font-family:var(--f-display);font-weight:680;font-size:clamp(2rem,3.5vw,3.4rem);line-height:1.02;letter-spacing:-.018em;margin:0;text-wrap:balance;color:var(--graphite)}
.c-lede{margin:0;color:var(--ink-2);font-size:1.08rem;max-width:34em}
.c-mono{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}

/* ---------- Buttons & links ---------- */
.c-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;font-family:var(--f-body);font-weight:600;font-size:1rem;line-height:1;text-decoration:none;padding:17px 20px;border:1.5px solid var(--graphite);border-radius:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.c-btn .a{font-family:var(--f-mono);font-weight:500;transition:transform .2s}
.c-btn:hover .a{transform:translateX(3px)}
.c-btn-green{background:var(--green);color:var(--graphite)}
.c-btn-green:hover{background:var(--graphite);color:var(--off)}
.c-btn-dark{background:var(--graphite);color:var(--off)}
.c-btn-dark:hover{background:var(--green);color:var(--graphite)}
.c-link{font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px}
.c-link:hover{text-decoration-thickness:3px}

/* ---------- Header ---------- */
.c-util{background:var(--concrete);border-bottom:1px solid var(--rule);color:var(--ink-2)}
.c-util .c-wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:36px}
.c-util p{margin:0;display:flex;gap:22px;flex-wrap:wrap}
.c-util a{text-decoration:none}
.c-util a:hover{text-decoration:underline}
.c-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--off);border-bottom:1px solid var(--graphite)}
.c-header-row{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:84px}
.c-brand{display:block;flex:none;padding-block:8px}
.c-brand img{height:60px;width:auto}
.c-nav{display:flex;align-items:center;gap:30px}
.c-nav a{position:relative;text-decoration:none;font-weight:500;font-size:.96rem;color:var(--ink);padding-block:6px}
.c-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--graphite);transition:right .2s}
.c-nav a:hover::after,.c-nav a[aria-current]::after{right:0}
.c-header-cta{display:flex;align-items:center;gap:20px}
.c-phone{font-family:var(--f-mono);font-size:.86rem;font-weight:500;text-decoration:none;white-space:nowrap}
.c-phone:hover{text-decoration:underline}
.c-header-cta .c-btn{padding:13px 16px;font-size:.92rem}
.c-menu{display:none;align-items:center;gap:10px;background:none;border:1.5px solid var(--graphite);color:var(--graphite);height:46px;padding:0 14px;cursor:pointer;font:600 .9rem var(--f-body)}
.c-menu i{position:relative;display:block;width:18px;height:12px}
.c-menu i::before,.c-menu i::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;transition:transform .2s,top .2s}
.c-menu i::before{top:2px}
.c-menu i::after{top:8px}
.c-menu[aria-expanded="true"] i::before{top:5px;transform:rotate(45deg)}
.c-menu[aria-expanded="true"] i::after{top:5px;transform:rotate(-45deg)}
.c-mobile{background:var(--off);border-top:1px solid var(--rule);max-height:calc(100dvh - 84px - env(safe-area-inset-top,0px));overflow-y:auto;overscroll-behavior:contain}
.c-mobile ul{list-style:none;margin:0;padding:6px 0 0}
.c-mobile li a{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-family:var(--f-display);font-weight:600;font-size:1.45rem}
.c-mobile li a span{font-family:var(--f-mono);font-size:.9rem}
.c-mobile .c-btn{width:100%;margin-top:22px}
.c-mobile-contact{display:grid;gap:4px;padding:20px 0 26px;color:var(--ink-2)}
.c-mobile-contact a{font-family:var(--f-mono);font-size:.95rem;color:var(--ink);text-decoration:none}

/* ---------- Hero ---------- */
.c-hero{background:var(--concrete);border-bottom:1px solid var(--graphite);overflow:hidden}
.c-hero-grid{grid-template-rows:auto auto}
.c-hero-copy{grid-column:main-start / 7;grid-row:1;padding:clamp(48px,6.5vw,96px) clamp(20px,3vw,48px) 104px 0;min-width:0}
.c-hero h1{margin:22px 0 0}
.c-h1-kicker{display:block;font-family:var(--f-body);font-weight:600;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.4;color:var(--ink);max-width:36ch;margin-bottom:26px}
.c-h1-display{display:block;font-family:var(--f-display);font-weight:760;font-size:clamp(2.6rem,5.1vw,5.3rem);line-height:.97;letter-spacing:-.028em;color:var(--graphite);text-wrap:balance}
.c-hl{background:linear-gradient(transparent 60%,var(--green) 60%,var(--green) 94%,transparent 94%);padding:0 .05em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.c-hero-sub{margin:28px 0 0;font-size:1.1rem;color:var(--ink-2);max-width:31em}
.c-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:34px}

.c-plate{grid-column:7 / full-end;grid-row:1;position:relative;margin:0;min-height:clamp(520px,44vw,700px);background:var(--paper);border-left:1px solid var(--graphite);overflow:hidden}
.c-plate img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-plate figcaption{position:absolute;left:0;bottom:0;z-index:2;background:var(--off);border-top:1px solid var(--graphite);border-right:1px solid var(--graphite);padding:10px 16px}
.c-plate-fallback{display:none}
.c-plate.no-photo .c-plate-fallback{display:flex;position:absolute;inset:0;flex-direction:column;padding:clamp(20px,2.4vw,36px) calc(var(--gr) + 8px) 76px clamp(20px,2.6vw,40px)}
.c-plate.no-photo figcaption{display:none}
.c-sheet-head{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--graphite);color:var(--ink-2)}
.c-sheet-head b{color:var(--graphite);font-weight:500}
.c-plate-fallback svg{flex:1;width:100%;height:auto;min-height:0;margin-top:14px}

.c-titleblock{grid-column:main-start / 10;grid-row:2;position:relative;z-index:3;margin:-56px 0 clamp(40px,4.5vw,64px);background:var(--graphite);color:var(--off);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.c-titleblock > div{padding:14px 18px;border-right:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light);min-width:0}
.c-titleblock > div:nth-child(3){border-right:0}
.c-titleblock .tb-email{grid-column:span 2;border-bottom:0}
.c-titleblock dt{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:3px}
.c-titleblock dd{margin:0;font-weight:600;font-size:.98rem;overflow-wrap:anywhere}
.c-titleblock a{text-decoration:none}
.c-titleblock a:hover{color:var(--green)}
.c-titleblock .tb-call{border-bottom:0;border-right:0}
.c-titleblock .tb-call dd a{font-family:var(--f-display);font-weight:700;font-size:clamp(1.4rem,1.9vw,1.75rem);white-space:nowrap;letter-spacing:-.01em;color:var(--green)}
.c-titleblock .tb-call dd a:hover{color:var(--off)}

/* ---------- Services directory ---------- */
.c-services{background:var(--off);padding-block:clamp(72px,9vw,128px)}
.c-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:22px 64px;align-items:end;border-top:1px solid var(--graphite);padding-top:26px}
.c-head .c-label{grid-column:1 / -1}
.c-dir{margin-top:clamp(40px,5vw,64px)}
.c-dir-cols{display:grid;grid-template-columns:118px minmax(0,1fr) minmax(0,1.45fr) 150px 44px;gap:24px;padding:0 0 10px;color:var(--ink-2)}
.c-group{border-top:2px solid var(--graphite)}
.c-group + .c-group{margin-top:44px}
.c-group-label{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0;padding:14px 0 12px;border-bottom:1px solid var(--rule)}
.c-group-label b{font-family:var(--f-display);font-weight:800;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase}
.c-group-label span{color:var(--ink-2)}
.c-rows{list-style:none;margin:0;padding:0}
.c-row{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr) minmax(0,1.45fr) 150px 44px;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--rule);transition:background .15s,box-shadow .15s}
.c-row:hover{background:var(--concrete);box-shadow:-16px 0 0 var(--concrete),16px 0 0 var(--concrete)}
.c-row:focus-within{outline:3px solid var(--graphite);outline-offset:-3px}
.c-row :focus-visible{outline:none}
.c-code{font-family:var(--f-mono);font-size:.8rem;color:var(--ink-2);letter-spacing:.04em}
.c-row h3{margin:0;font-family:var(--f-display);font-weight:640;font-size:clamp(1.4rem,2vw,1.85rem);line-height:1.08;letter-spacing:-.012em}
.c-row h3 a{text-decoration:none}
.c-row h3 a::after{content:"";position:absolute;inset:0}
.c-row p{margin:0;color:var(--ink-2);font-size:.97rem;line-height:1.5}
.c-for{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.c-go{width:44px;height:44px;border:1.5px solid var(--graphite);display:grid;place-items:center;font-family:var(--f-mono);transition:background .15s}
.c-row:hover .c-go{background:var(--green)}
.c-dir-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;margin-top:36px}
.c-dir-foot p{margin:0;color:var(--ink-2);max-width:40em}
.c-note{font-size:.84rem}

/* ---------- About ---------- */
.c-about{background:var(--concrete);padding-block:clamp(72px,9vw,128px)}
.c-about-grid{align-items:start}
.c-portrait{grid-column:full-start / 7;position:relative;margin:0;aspect-ratio:4/5;max-height:820px;width:100%;background:var(--steel);overflow:hidden}
.c-portrait img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-portrait-fallback{display:none}
.c-portrait.no-photo .c-portrait-fallback{display:grid;place-items:center;position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 22px,rgba(32,39,40,.06) 22px 23px),var(--steel)}
.c-portrait-fallback img{width:min(46%,300px);height:auto}
.c-portrait figcaption{position:absolute;right:0;bottom:0;left:0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--off);border-top:1px solid var(--graphite);padding:12px 18px;color:var(--ink)}
.c-about-copy{grid-column:8 / main-end;padding-top:8px;min-width:0}
.c-about-copy .c-h2{font-size:clamp(1.9rem,2.8vw,2.7rem);margin-top:18px}
.c-about-lead{margin:30px 0 0;font-family:var(--f-display);font-weight:520;font-size:clamp(1.3rem,1.7vw,1.6rem);line-height:1.3;letter-spacing:-.008em;color:var(--graphite)}
.c-about-copy > p:not(.c-label):not(.c-about-lead){color:var(--ink-2);margin:18px 0 0}
.c-notes{margin:34px 0 0;border-top:1px solid var(--graphite)}
.c-notes > div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 20px;padding:18px 0;border-bottom:1px solid var(--rule)}
.c-notes dt{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding-top:4px}
.c-notes dd{margin:0}
.c-notes h3{margin:0 0 4px;font-family:var(--f-body);font-weight:700;font-size:1.05rem}
.c-notes p{margin:0;color:var(--ink-2);font-size:.97rem}
.c-sign{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-top:30px}
.c-sign img{width:200px;height:auto}

/* ---------- Work (shown only when real photos exist) ---------- */
.c-work{background:var(--off);padding-block:clamp(72px,9vw,128px)}
.c-projects{display:grid;gap:clamp(48px,6vw,88px);margin-top:clamp(40px,5vw,64px)}
.c-project{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(24px,4vw,56px);align-items:end}
.c-project:nth-child(even){grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.c-project:nth-child(even) .c-project-img{order:2}
.c-project-img{position:relative;margin:0;aspect-ratio:3/2;max-width:100%;background:var(--concrete);overflow:hidden;border:1px solid var(--graphite)}
.c-project-img img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-project-img button.zoom{position:absolute;inset:0;background:none;border:0;cursor:zoom-in;padding:0}
.c-project h3{margin:10px 0 10px;font-family:var(--f-display);font-weight:650;font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.08}
.c-project-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--ink-2);margin:0 0 12px}
.c-project p{color:var(--ink-2);margin:0 0 12px}
.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1600px);max-height:92vh;color:var(--off)}
.lightbox::backdrop{background:rgba(32,39,40,.94)}
.lightbox img{max-width:100%;max-height:84vh;width:auto;height:auto;display:block;margin:0 auto}
.lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:12px}
.lightbox-close{background:var(--green);color:var(--graphite);border:0;font-weight:700;padding:10px 16px;cursor:pointer;font-family:var(--f-body)}

/* ---------- Process (the one charcoal sheet) ---------- */
.c-process{background:var(--charcoal);color:var(--off);padding-block:clamp(64px,8vw,112px)}
.c-process .c-head{border-top-color:var(--off)}
.c-process h2{margin:0;font-family:var(--f-display);font-weight:800;font-size:clamp(1.9rem,3vw,2.8rem);line-height:1;letter-spacing:.01em;text-transform:uppercase}
.c-process .c-lede{color:var(--concrete)}
.c-steps{list-style:none;margin:clamp(40px,5vw,64px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--off)}
.c-step{position:relative;padding:30px 28px 0 0;min-width:0}
.c-step + .c-step{padding-left:28px;border-left:1px solid var(--rule-light)}
.c-step::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;background:var(--green)}
.c-step + .c-step::before{left:-7px}
.c-step .n{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.c-step h3{margin:10px 0 10px;font-family:var(--f-display);font-weight:620;font-size:1.4rem;line-height:1.15}
.c-step p{margin:0;color:var(--concrete);font-size:.98rem}

/* ---------- Estimate: project intake ---------- */
.c-estimate{background:var(--concrete);padding-block:clamp(72px,9vw,128px);border-top:1px solid var(--graphite)}
.c-estimate-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,72px);align-items:start}
.c-estimate .c-h2{font-size:clamp(1.9rem,3vw,2.9rem);margin-top:18px}
.c-estimate .c-lede{margin-top:18px}
.c-contact{margin:32px 0 0;border-top:1px solid var(--graphite)}
.c-contact > div{padding:14px 0;border-bottom:1px solid var(--rule)}
.c-contact dt{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.c-contact dd{margin:3px 0 0;font-weight:600;overflow-wrap:anywhere}
.c-contact dd a{text-decoration:none}
.c-contact dd a:hover{text-decoration:underline}
.c-contact .big{font-family:var(--f-display);font-weight:720;font-size:clamp(1.8rem,2.6vw,2.3rem);letter-spacing:-.01em;line-height:1.1}
.c-contact .sub{display:block;font-weight:400;font-size:.92rem;color:var(--ink-2);margin-top:2px}

.c-form{background:var(--off);border:1.5px solid var(--graphite);min-width:0}
.c-form-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:14px clamp(18px,3vw,32px);background:var(--graphite);color:var(--off)}
.c-form-head b{font-family:var(--f-display);font-weight:650;font-size:1.05rem;letter-spacing:0;text-transform:none}
.c-form-head span{color:var(--steel)}
.c-form fieldset{margin:0;padding:clamp(20px,3vw,30px) clamp(18px,3vw,32px) 6px;border:0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.c-form legend{float:left;width:100%;grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:0;margin:0 0 4px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.c-form legend i{display:grid;place-items:center;width:24px;height:24px;background:var(--graphite);color:var(--off);font-style:normal;font-size:.72rem}
.c-form legend + *{clear:both}
.c-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.c-field.full{grid-column:1 / -1}
.c-field label{font-size:.88rem;font-weight:600;color:var(--ink)}
.c-field .req{color:var(--ink-2);font-weight:400}
.c-field input,.c-field select,.c-field textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--steel);border-bottom:2px solid var(--charcoal);border-radius:0;padding:13px 14px;width:100%;transition:border-color .15s,box-shadow .15s}
.c-field textarea{min-height:140px;resize:vertical}
.c-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--graphite) 50%),linear-gradient(135deg,var(--graphite) 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 14px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.c-field input:focus,.c-field select:focus,.c-field textarea:focus{outline:none;border-color:var(--graphite);box-shadow:inset 4px 0 0 var(--green)}
.c-field input:user-invalid,.c-field select:user-invalid,.c-field textarea:user-invalid{border-bottom-color:#B3261E}
.c-file{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border:1px dashed var(--charcoal);background:var(--paper);padding:14px}
.c-file input{border:0;background:none;padding:0;font-size:.92rem;color:var(--ink-2)}
.c-file input::file-selector-button{font:inherit;font-weight:600;background:var(--graphite);color:var(--off);border:0;padding:10px 14px;margin-right:12px;cursor:pointer}
.c-hint{margin:0;font-size:.85rem;color:var(--ink-2)}
.c-form-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 28px;align-items:center;padding:22px clamp(18px,3vw,32px) 26px}
.c-form-foot .c-privacy{margin:0;font-size:.86rem;color:var(--ink-2);max-width:46em}
.c-form-foot .c-privacy a{color:var(--ink)}
.c-form-foot .c-btn{min-width:220px}
.form-status{margin:0 clamp(18px,3vw,32px) 24px;padding:14px 16px;border-left:4px solid var(--graphite);background:var(--paper);font-size:.98rem}
.form-status.err{border-left-color:#B3261E}

/* ---------- Footer ---------- */
.c-footer{background:var(--graphite);color:var(--off)}
.c-footer-cols{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:36px;padding-block:64px 44px}
.c-footer-logo{width:min(100%,300px);height:auto}
.c-footer .based{margin:18px 0 0;color:var(--concrete);max-width:24em}
.c-footer h2{margin:0 0 14px;font-family:var(--f-mono);font-weight:500;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.c-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.c-footer-cols > *{min-width:0}
.c-footer li{overflow-wrap:anywhere}
.c-footer a{text-decoration:none;color:var(--off)}
.c-footer a:hover{color:var(--green)}
.c-footer .muted{color:var(--concrete)}
.c-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:18px;color:var(--steel);background:linear-gradient(var(--rule-light),var(--rule-light)) no-repeat var(--gl) 0 / calc(100% - var(--gl) - var(--gr)) 1px}
.c-footer-bottom a{color:var(--steel)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* ---------- Responsive ---------- */
@media (max-width:1140px){
  .c-nav,.c-phone{display:none}
  .c-menu{display:inline-flex}
  .c-footer-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-footer-cols > div:first-child{grid-column:1 / -1}
}
@media (max-width:980px){
  .c-hero-grid{grid-template-rows:auto auto auto}
  .c-hero-copy{grid-column:main-start / main-end;padding:40px 0 36px}
  .c-plate{grid-column:full-start / full-end;grid-row:2;min-height:0;aspect-ratio:4/3;border-left:0;border-top:1px solid var(--graphite)}
  .c-plate.no-photo{aspect-ratio:auto}
  .c-plate.no-photo .c-plate-fallback{position:relative;padding:20px var(--gr) 24px var(--gl)}
  .c-titleblock{grid-column:main-start / main-end;grid-row:3;margin:-28px 0 40px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-titleblock > div:nth-child(3){border-right:1px solid var(--rule-light)}
  .c-titleblock > div:nth-child(2){border-right:0}
  .c-titleblock .tb-email{grid-column:2;border-bottom:1px solid var(--rule-light);border-right:0}
  .c-titleblock .tb-call{grid-column:1 / -1}
  .c-plate.no-photo .c-plate-fallback{padding-bottom:48px}
  .c-head{grid-template-columns:1fr}
  .c-dir-cols{display:none}
  .c-row{grid-template-columns:minmax(0,1fr) 44px;gap:8px 16px;align-items:start;padding:22px 0}
  .c-row .c-code{grid-column:1;grid-row:1}
  .c-row h3{grid-column:1;grid-row:2}
  .c-row p{grid-column:1;grid-row:3}
  .c-row .c-for{grid-column:1;grid-row:4}
  .c-row .c-go{grid-column:2;grid-row:1 / span 2;align-self:center}
  .c-portrait{grid-column:full-start / full-end;aspect-ratio:4/3;max-height:70vh}
  .c-portrait figcaption{left:0}
  .c-about-copy{grid-column:main-start / main-end;padding-top:40px}
  .c-project,.c-project:nth-child(even){grid-template-columns:1fr}
  .c-project:nth-child(even) .c-project-img{order:0}
  .c-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
  .c-step:nth-child(3){padding-left:0;border-left:0}
  .c-step:nth-child(3)::before{left:0}
  .c-estimate-grid{grid-template-columns:1fr}
  .c-footer-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-footer-cols > div:first-child{grid-column:1 / -1}
}
@media (max-width:640px){
  body{font-size:16px}
  .c-util{display:none}
  .c-sheet-head .mid{display:none}
  .c-header-row{min-height:72px;gap:12px}
  .c-brand img{height:48px}
  .c-header-cta .c-btn{display:none}
  .c-h1-display{font-size:clamp(2.3rem,10.6vw,3.2rem);letter-spacing:-.022em}
  .c-actions .c-btn{flex:1 1 100%}
  .c-titleblock{grid-template-columns:1fr}
  .c-titleblock > div,.c-titleblock > div:nth-child(3){border-right:0}
  .c-titleblock .tb-email{grid-column:auto}
  .c-steps{grid-template-columns:1fr;border-top:0;border-left:2px solid var(--off);margin-left:6px}
  .c-step,.c-step + .c-step{padding:0 0 30px 26px;border-left:0}
  .c-step::before,.c-step + .c-step::before,.c-step:nth-child(3)::before{top:4px;left:-8px}
  .c-notes > div{grid-template-columns:1fr}
  .c-form fieldset{grid-template-columns:1fr}
  .c-form-foot{grid-template-columns:1fr}
  .c-form-foot .c-btn{width:100%}
  .c-footer-cols{grid-template-columns:1fr}
  .c-portrait{aspect-ratio:4/5}
}

/* =================================================================
   Refinements, review round 1: photo-ready hero, more concrete in the
   directory, clearer row hierarchy, intentional About placeholder,
   stronger calls to action, type sizes checked with Archivo (replaced in v7).
   ================================================================= */

/* Type floor: no label below ~12px */
.c-label{font-size:.76rem}
.c-mono{font-size:.76rem}
.c-titleblock dt{font-size:.72rem}
.c-notes dt{font-size:.74rem}
.c-footer h2{font-size:.76rem}

/* Hero: built for a large photo; the drawing is the temporary fallback */
.c-plate:not(.no-photo){background:var(--graphite)}
.c-plate img[data-photo]{object-position:var(--hero-focus,50% 50%)}
.c-plate:not(.no-photo)::after{content:"";position:absolute;inset:16px 16px 16px 16px;border:1px solid rgba(241,241,237,.6);pointer-events:none;z-index:1}
.c-plate figcaption{top:0;bottom:auto;border-top:0;border-bottom:1px solid var(--graphite);display:flex;gap:14px;align-items:center}
.c-plate figcaption::before{content:"";width:8px;height:8px;background:var(--green);outline:1px solid var(--graphite)}

/* Services: concrete bands inside the directory */
.c-dir-cols{background:var(--concrete);box-shadow:-16px 0 0 var(--concrete),16px 0 0 var(--concrete);padding:11px 0;color:var(--ink-3)}
.c-group-label{background:var(--concrete);box-shadow:-16px 0 0 var(--concrete),16px 0 0 var(--concrete);padding:13px 0;border-bottom:0}
.c-group-label span{color:var(--ink-3)}
.c-group + .c-group{margin-top:56px}
.c-row{padding:26px 0;align-items:center}
.c-code{font-size:.72rem;color:var(--ink-3);letter-spacing:.06em}
.c-row h3{font-weight:720;font-size:clamp(1.6rem,2.3vw,2.15rem);line-height:1.04;letter-spacing:-.016em}
.c-row p{font-size:.92rem;line-height:1.5;color:var(--ink-3);max-width:34em}
.c-for{color:var(--ink-3)}
.c-dir-foot{margin-top:56px;background:var(--concrete);border-top:2px solid var(--graphite);padding:26px clamp(20px,3vw,36px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px}
.c-dir-foot .ask{margin:0;font-family:var(--f-display);font-weight:600;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.3;color:var(--graphite);max-width:none}
.c-dir-foot .c-note{grid-column:1 / -1;margin:0;color:var(--ink-3);border-top:1px solid var(--rule);padding-top:14px}

/* About: a mounted print with crop marks until the real photo arrives */
.c-portrait{background:var(--off);border:1px solid var(--graphite);border-left:0}
.c-portrait.no-photo .c-portrait-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:repeating-linear-gradient(135deg,transparent 0 26px,rgba(32,39,40,.045) 26px 27px),var(--off)}
.c-portrait-fallback img{width:min(64%,420px);height:auto}
.c-portrait-fallback .where{color:var(--ink-2);display:flex;align-items:center;gap:10px}
.c-portrait-fallback .where::before,.c-portrait-fallback .where::after{content:"";width:28px;height:1px;background:var(--graphite)}
.c-portrait .cm{position:absolute;z-index:2;width:22px;height:22px;border-color:var(--graphite);border-style:solid;border-width:0}
.c-portrait .cm.tl{top:22px;left:calc(var(--gl) + 2px);border-top-width:1.5px;border-left-width:1.5px}
.c-portrait .cm.tr{top:22px;right:22px;border-top-width:1.5px;border-right-width:1.5px}
.c-portrait .cm.bl{bottom:66px;left:calc(var(--gl) + 2px);border-bottom-width:1.5px;border-left-width:1.5px}
.c-portrait .cm.br{bottom:66px;right:22px;border-bottom-width:1.5px;border-right-width:1.5px}
.c-portrait figcaption{background:var(--graphite);color:var(--off);border-top:0}
.c-portrait:not(.no-photo) .cm{display:none}

/* Calls to action */
.c-header-cta .c-btn-green:hover{background:var(--graphite);color:var(--off)}
.c-process-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:clamp(40px,5vw,56px);padding-top:28px;border-top:1px solid var(--rule-light)}
.c-process-cta .c-btn-green{border-color:var(--green)}
.c-process-cta .c-btn-green:hover{background:var(--off);color:var(--graphite);border-color:var(--off)}
.c-process-cta a.tel{color:var(--off);font-family:var(--f-display);font-weight:650;font-size:1.25rem;text-decoration:none}
.c-process-cta a.tel:hover{color:var(--green)}
.c-mobilebar{display:none}

@media (max-width:980px){
  .c-plate{aspect-ratio:5/4}
  .c-plate:not(.no-photo)::after{inset:12px}
  .c-dir-foot{grid-template-columns:1fr}
  .c-portrait{border-left:0;border-right:0}
  .c-portrait .cm.tl,.c-portrait .cm.bl{left:22px}
}
@media (max-width:640px){
  .c-code{font-size:.74rem}
  .c-row h3{font-size:1.6rem}
  .c-row p{font-size:.95rem}
  .c-dir-foot .c-btn{width:100%}
  .c-process-cta .c-btn{flex:1 1 100%}
  /* thumb-reach action bar */
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .c-mobilebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--off);border-top:1.5px solid var(--graphite);padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:8px;transition:transform .2s}
  .c-mobilebar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;font-weight:600;font-size:.98rem;text-decoration:none;border:1.5px solid var(--graphite)}
  .c-mobilebar .call{background:var(--off);color:var(--graphite)}
  .c-mobilebar .est{background:var(--green);color:var(--graphite)}
  .c-mobilebar.is-hidden{transform:translateY(110%)}
}

/* Directory columns: a little more room for the service name */
.c-dir-cols,.c-row{grid-template-columns:118px minmax(0,1.15fr) minmax(0,1.35fr) 150px 44px}
@media (max-width:980px){.c-row{grid-template-columns:minmax(0,1fr) 44px}}
.c-sign{justify-content:flex-start}
.c-footer-cols{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.35fr)}
@media (max-width:1140px){.c-footer-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.c-footer-cols{grid-template-columns:1fr}}

/* =================================================================
   Mobile refinements, review round 2
   ================================================================= */
.tb-short{display:none}
.c-row .c-sum{display:none}
@media (max-width:640px){
  /* 1. larger logo, compact bar */
  .c-header-row{min-height:76px}
  .c-brand{padding-block:6px}
  .c-brand img{height:58px}
  /* 2. condensed title block: two short cells, email, then the phone */
  .c-titleblock{grid-template-columns:repeat(2,minmax(0,1fr));margin:-24px 0 32px}
  .c-titleblock > div{padding:10px 14px;border-right:0}
  .c-titleblock > div.tb-contractor{display:none}
  .c-titleblock > div:nth-child(2),.c-titleblock > div.tb-left{border-right:1px solid var(--rule-light)}
  .c-titleblock .tb-email{grid-column:1 / -1;border-bottom:1px solid var(--rule-light)}
  .c-titleblock .tb-call{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:12px}
  .c-titleblock dt{font-size:.78rem;margin-bottom:1px}
  .c-titleblock dd{font-size:.95rem}
  .c-titleblock .tb-call dt{margin:0}
  .c-titleblock .tb-call dd a{font-size:1.6rem}
  .tb-long{display:none}
  .tb-short{display:inline}
  /* 3. scannable directory: name, one-line summary, subtle code */
  .c-row{grid-template-columns:minmax(0,1fr) 40px;gap:4px 14px;padding:18px 0}
  .c-row h3{grid-row:1;font-size:1.45rem}
  .c-row p.c-full-desc{display:none}
  .c-row .c-sum{display:block;grid-column:1;grid-row:2;font-size:.98rem;line-height:1.45;color:var(--ink-2)}
  .c-row .c-code{grid-column:1;grid-row:3;font-size:.78rem;color:var(--ink-3);opacity:.85;margin-top:2px}
  .c-row .c-for{display:none}
  .c-row .c-go{grid-row:1 / span 2;width:40px;height:40px}
  .c-group-label b{font-size:1.05rem}
  /* 4. shorter About placeholder */
  .c-portrait.no-photo{aspect-ratio:5/4}
  .c-portrait-fallback img{width:min(70%,300px)}
  /* 5. type floor on phones (~12.5px+) */
  .c-label,.c-mono{font-size:.8rem}
  .c-notes dt,.c-contact dt,.c-form legend{font-size:.8rem}
  .c-hint,.c-note,.c-form-foot .c-privacy{font-size:.9rem}
  .c-footer h2{font-size:.8rem}
  .c-footer-bottom{font-size:.78rem}
  .c-sheet-head{font-size:.78rem}
  .c-step .n{font-size:.8rem}
}
@media (min-width:981px){.c-portrait.no-photo{aspect-ratio:1/1}}

/* =================================================================
   Inner pages: service pages, Service Areas, projects, utility pages
   ================================================================= */
.c-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 10px;margin:0 0 26px;padding:0;font-family:var(--f-mono);font-size:.76rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.c-crumbs li+li::before{content:"/";margin-right:10px;color:var(--steel)}
.c-crumbs a{text-decoration:none}
.c-crumbs a:hover{text-decoration:underline}
.c-crumbs [aria-current]{color:var(--graphite);font-weight:500}

/* page hero */
.c-phero{background:var(--concrete);border-bottom:1px solid var(--graphite);overflow:hidden}
.c-phero .c-hero-copy{padding-bottom:104px}
.c-phero h1{margin:20px 0 0;font-family:var(--f-display);font-weight:760;font-size:clamp(2.4rem,4.3vw,4.3rem);line-height:.98;letter-spacing:-.026em;color:var(--graphite);text-wrap:balance;overflow-wrap:break-word}
.c-phero .c-hero-sub{margin-top:22px}
.c-pplate{grid-column:8 / full-end;grid-row:1;position:relative;margin:0;min-height:clamp(420px,36vw,560px);background:var(--paper);border-left:1px solid var(--graphite);overflow:hidden}
.c-pplate img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%)}
.c-pplate:not(.no-photo){background:var(--graphite)}
.c-pplate:not(.no-photo)::after{content:"";position:absolute;inset:16px;border:1px solid rgba(241,241,237,.6);pointer-events:none;z-index:1}
.c-sheet{display:none}
.c-pplate.no-photo .c-sheet{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:clamp(28px,3vw,44px) calc(var(--gr) + 16px) 92px clamp(28px,3vw,44px);background:repeating-linear-gradient(135deg,transparent 0 26px,rgba(32,39,40,.045) 26px 27px),var(--paper)}
.c-sheet .c-sheet-head{position:absolute;top:clamp(20px,2.4vw,32px);left:clamp(24px,2.6vw,40px);right:calc(var(--gr) + 16px)}
.c-sheet img{width:min(42%,240px);height:auto}
.c-sheet .code{font-family:var(--f-display);font-weight:620;font-size:clamp(1.3rem,2vw,1.8rem);color:var(--graphite);letter-spacing:.02em;text-align:center}
.c-sheet .code small{display:block;margin-top:6px;font-family:var(--f-mono);font-size:.76rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.c-titleblock.tb-4{grid-template-columns:repeat(3,minmax(0,1fr))}
.c-titleblock.tb-4 > div:nth-child(3){border-right:0}
.c-titleblock.tb-4 .tb-call{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:16px;border-right:0}

/* scope */
.c-scope{background:var(--off);padding-block:clamp(64px,8vw,112px)}
.c-scope-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(32px,5vw,72px);align-items:start;margin-top:clamp(32px,4vw,48px)}
.c-scope-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--graphite)}
.c-scope-list li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:6px 32px;padding:22px 0;border-bottom:1px solid var(--rule)}
.c-scope-list h3{margin:0;font-family:var(--f-display);font-weight:680;font-size:clamp(1.2rem,1.6vw,1.4rem);line-height:1.15;letter-spacing:-.008em}
.c-scope-list p{margin:0;color:var(--ink-2)}
.c-spec{position:sticky;top:110px;background:var(--graphite);color:var(--off)}
.c-spec-head{display:flex;justify-content:space-between;gap:12px;margin:0;padding:14px 18px;border-bottom:1px solid var(--rule-light);font-family:var(--f-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}
.c-spec-head b{color:var(--green);font-weight:500}
.c-spec dl{margin:0}
.c-spec dl div{padding:13px 18px;border-bottom:1px solid var(--rule-light)}
.c-spec dt{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);margin-bottom:3px}
.c-spec dd{margin:0;font-weight:600;font-size:.98rem}
.c-spec-cta{display:grid;gap:12px;padding:18px}
.c-spec-cta .c-btn{border-color:var(--green)}
.c-spec-cta .c-btn:hover{background:var(--off);color:var(--graphite);border-color:var(--off)}
.c-spec-cta a.tel{font-family:var(--f-display);font-weight:700;font-size:1.6rem;text-decoration:none;text-align:center;color:var(--green)}
.c-spec-cta a.tel:hover{color:var(--off)}

/* prose sections (approach, detail, surrounding areas) */
.c-prose-sec{padding-block:clamp(64px,8vw,112px)}
.c-prose-sec.on-concrete{background:var(--concrete)}
.c-prose-sec.on-off{background:var(--off)}
.c-prose-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:start;border-top:1px solid var(--graphite);padding-top:26px}
.c-prose-grid .c-h2{margin-top:16px;font-size:clamp(1.8rem,2.8vw,2.7rem)}
.c-prose p{margin:0 0 1.05em;max-width:38em;color:var(--ink-2);font-size:1.05rem}
.c-prose p:first-child{font-family:var(--f-display);font-weight:520;font-size:clamp(1.2rem,1.6vw,1.45rem);line-height:1.35;color:var(--graphite)}
.c-prose a{color:var(--graphite);font-weight:600;text-decoration:underline;text-decoration-color:var(--graphite);text-decoration-thickness:1.5px;text-underline-offset:4px}
.c-prose a:hover{background:var(--green)}
.c-prose .county{border-top:1px solid var(--graphite);padding-top:18px;margin-top:24px}
.c-prose .county h3{margin:0 0 6px;font-family:var(--f-mono);font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.c-prose .county .county-towns{font-family:var(--f-display);font-weight:700;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.1;color:var(--graphite);margin:0 0 10px}
.c-prose .county p:not(.county-towns){font-family:var(--f-body);font-weight:400;font-size:1.02rem;line-height:1.6;color:var(--ink-2)}

/* photo strip (only when real photos exist) */
.c-strip{background:var(--off);padding-block:0 clamp(56px,7vw,96px)}
.c-strip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.c-strip-grid figure{position:relative;margin:0;aspect-ratio:3/2;max-width:100%;background:var(--concrete);overflow:hidden;border:1px solid var(--graphite)}
.c-strip-grid img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-strip-grid figcaption{position:absolute;left:0;top:0;background:var(--off);border-right:1px solid var(--graphite);border-bottom:1px solid var(--graphite);padding:7px 12px;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.04em;text-transform:uppercase}
.c-strip-grid button.zoom{position:absolute;inset:0;z-index:2;background:none;border:0;cursor:zoom-in;padding:0}

/* FAQ */
.c-faq-sec{background:var(--off);padding-block:clamp(64px,8vw,112px)}
.c-faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,5vw,80px);align-items:start;border-top:1px solid var(--graphite);padding-top:26px}
.c-faq-grid .c-h2{margin-top:16px;font-size:clamp(1.8rem,2.8vw,2.7rem)}
.c-faq-ask{margin:18px 0 0;color:var(--ink-2)}
.c-faq{border-top:2px solid var(--graphite)}
.c-faq details{border-bottom:1px solid var(--rule)}
.c-faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:20px;align-items:center;padding:20px 0}
.c-faq summary::-webkit-details-marker{display:none}
.c-faq summary h3{margin:0;font-family:var(--f-display);font-weight:620;font-size:clamp(1.08rem,1.4vw,1.25rem);line-height:1.3}
.c-faq summary::after{content:"+";display:grid;place-items:center;width:36px;height:36px;border:1.5px solid var(--graphite);font-family:var(--f-mono);font-size:1.1rem;transition:background .15s}
.c-faq details[open] summary::after{content:"–";background:var(--green)}
.c-faq summary:hover::after{background:var(--green)}
.c-faq details p{margin:0 0 22px;max-width:44em;color:var(--ink-2)}

/* where we work + related (the charcoal band on inner pages) */
.c-where{background:var(--charcoal);color:var(--off);padding-block:clamp(64px,8vw,104px)}
.c-where-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);border-top:1px solid var(--off);padding-top:26px}
.c-where h2{margin:16px 0 14px;font-family:var(--f-display);font-weight:800;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1;text-transform:uppercase;letter-spacing:.01em}
.c-where p{color:var(--concrete);max-width:36em;margin:0}
.c-towns{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 22px;padding:0}
.c-towns li{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(241,241,237,.4);padding:6px 10px}
.c-where .c-link{color:var(--off)}
.c-where .c-link:hover{color:var(--green)}
.c-related{list-style:none;margin:18px 0 0;padding:0;border-top:2px solid var(--off)}
.c-related a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule-light);text-decoration:none;font-family:var(--f-display);font-weight:680;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.1}
.c-related a span{display:grid;place-items:center;width:40px;height:40px;border:1.5px solid var(--off);font-family:var(--f-mono);font-size:1rem;flex:none;transition:background .15s,color .15s}
.c-related a:hover span{background:var(--green);border-color:var(--green);color:var(--graphite)}

/* Service Areas */
.c-coverage{grid-column:8 / main-end;grid-row:1;align-self:center;background:var(--paper);border:1.5px solid var(--graphite);margin:clamp(40px,5vw,72px) 0 clamp(40px,5vw,72px) 24px}
.c-coverage-head{display:flex;justify-content:space-between;gap:12px;padding:12px 18px;background:var(--graphite);color:var(--off);font-family:var(--f-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}
.c-coverage-head b{color:var(--green);font-weight:500}
.c-coverage ul{list-style:none;margin:0;padding:8px 18px 14px;columns:2;column-gap:24px}
.c-coverage li{break-inside:avoid;padding:9px 0;border-bottom:1px solid var(--rule);font-weight:600}
.c-coverage .sub{padding:12px 18px 0;margin:0;border-top:1px solid var(--graphite);font-family:var(--f-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.c-phero.areas .c-hero-copy{grid-column:main-start / 8;padding-bottom:clamp(48px,6vw,88px)}
.c-regions{background:var(--off);padding-block:clamp(64px,8vw,112px)}
.c-region{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);padding:clamp(28px,3.5vw,44px) 0;border-top:1px solid var(--rule)}
.c-region:first-of-type{border-top:2px solid var(--graphite)}
.c-region h3{margin:0 0 10px;font-family:var(--f-display);font-weight:800;font-size:1rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.c-region .towns{margin:0;font-family:var(--f-display);font-weight:720;font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.04;letter-spacing:-.018em;color:var(--graphite)}
.c-region .towns span{display:block}
.c-region p:not(.towns){margin:0 0 1em;color:var(--ink-2);max-width:38em}
.c-region p a{color:var(--graphite);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:4px}
.c-region p a:hover{background:var(--green)}
.c-svcindex{background:var(--concrete);padding-block:clamp(64px,8vw,104px)}
.c-svcindex ul{list-style:none;margin:clamp(28px,4vw,44px) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;border-top:2px solid var(--graphite)}
.c-svcindex a{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:4px 16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.c-svcindex b{font-family:var(--f-display);font-weight:700;font-size:clamp(1.3rem,1.9vw,1.6rem);line-height:1.1}
.c-svcindex small{grid-column:1;font-size:.92rem;color:var(--ink-2)}
.c-svcindex i{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;width:40px;height:40px;border:1.5px solid var(--graphite);font-style:normal;font-family:var(--f-mono);transition:background .15s}
.c-svcindex a:hover i{background:var(--green)}

/* projects page */
.c-projects-page{background:var(--off);padding-block:clamp(48px,6vw,88px)}
.c-projects-page .c-project + .c-project{border-top:1px solid var(--rule);padding-top:clamp(40px,5vw,64px)}
.c-project-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.c-project-photos figure{position:relative;margin:0;aspect-ratio:4/3;max-width:100%;background:var(--concrete);overflow:hidden;border:1px solid var(--graphite)}
.c-project-photos figure.wide{grid-column:1 / -1;aspect-ratio:16/9}
.c-project-photos img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-project-photos figcaption{position:absolute;left:0;top:0;background:var(--off);border-right:1px solid var(--graphite);border-bottom:1px solid var(--graphite);padding:6px 10px;font-family:var(--f-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}
.c-project-photos figcaption.after{background:var(--green)}
.c-project-photos button.zoom{position:absolute;inset:0;z-index:2;background:none;border:0;cursor:zoom-in;padding:0}

/* utility pages: privacy, thank you, 404 */
.c-simple{background:var(--concrete);padding-block:clamp(56px,7vw,104px)}
.c-simple-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:start}
.c-simple h1{margin:18px 0 22px;font-family:var(--f-display);font-weight:760;font-size:clamp(2.4rem,5vw,4.6rem);line-height:.98;letter-spacing:-.026em;color:var(--graphite);text-wrap:balance}
.c-simple-body{max-width:44em}
.c-simple-body p{color:var(--ink-2);margin:0 0 1em}
.c-simple-body h2{margin:34px 0 8px;font-family:var(--f-display);font-weight:660;font-size:1.35rem;color:var(--graphite)}
.c-simple-body a,.c-simple a.text-link{color:var(--graphite);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.c-simple .muted{color:var(--ink-2)!important}
.c-simple .mono{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.c-simple-side{background:var(--off);border:1.5px solid var(--graphite)}
.c-simple-side .c-related{border-top:0;margin:0;padding:0 18px}
.c-simple-side .c-related a{border-bottom-color:var(--rule);font-size:1.25rem}
.c-simple-side .c-related a span{border-color:var(--graphite)}
.c-simple-side .c-spec-head{background:var(--graphite)}

@media (max-width:980px){
  .c-pplate{grid-column:full-start / full-end;grid-row:2;min-height:0;aspect-ratio:5/4;border-left:0;border-top:1px solid var(--graphite)}
  .c-pplate.no-photo{aspect-ratio:16/9}
  .c-pplate.no-photo .c-sheet{padding-bottom:56px}
  .c-phero .c-hero-copy{padding-bottom:36px}
  .c-titleblock.tb-4{grid-template-columns:repeat(3,minmax(0,1fr))}
  .c-scope-grid,.c-prose-grid,.c-faq-grid,.c-where-grid,.c-region,.c-simple-grid{grid-template-columns:1fr}
  .c-spec{position:static}
  .c-phero.areas .c-hero-copy{grid-column:main-start / main-end;padding-bottom:28px}
  .c-coverage{grid-column:main-start / main-end;grid-row:2;margin:0 0 48px}
  .c-project-photos{grid-template-columns:1fr}
}
@media (max-width:640px){
  .c-phero h1{font-size:clamp(2.2rem,10vw,3rem)}
  .c-pplate.no-photo{aspect-ratio:auto;min-height:220px}
  .c-pplate.no-photo .c-sheet{position:relative;inset:auto;padding:58px 20px 44px}
  .c-titleblock.tb-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-titleblock.tb-4 > div:nth-child(1){border-right:1px solid var(--rule-light)}
  .c-titleblock.tb-4 > div:nth-child(2){border-right:0}
  .c-titleblock.tb-4 > div:nth-child(3){grid-column:1 / -1;border-bottom:1px solid var(--rule-light)}
  .c-scope-list li{grid-template-columns:1fr;padding:18px 0}
  .c-strip-grid{grid-template-columns:1fr}
  .c-svcindex ul{grid-template-columns:1fr}
  .c-coverage ul{columns:1}
  .c-towns li{font-size:.8rem}
  .c-crumbs ol{font-size:.8rem}
  .c-spec dt,.c-spec-head,.c-coverage-head,.c-coverage .sub{font-size:.8rem}
}

/* ---- inner-page polish ---- */
.c-prose-grid,.c-faq-grid,.c-where-grid{position:relative;border-top:0}
.c-prose-grid::before,.c-faq-grid::before,.c-where-grid::before{content:"";position:absolute;top:0;left:var(--gl);right:var(--gr);height:1px;background:var(--graphite)}
.c-where-grid::before{background:var(--off)}
.c-prose-sec.on-concrete + .c-prose-sec.on-concrete{padding-top:0}
.c-phero .c-hero-copy{grid-column:main-start / 8}
.c-spec-head{flex-direction:column;gap:4px}
.c-titleblock dd a{white-space:nowrap}
@media (max-width:980px){.c-phero .c-hero-copy{grid-column:main-start / main-end}}
@media (max-width:640px){
  .c-titleblock{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
  .c-titleblock dd{font-size:.92rem}
  .c-pplate.no-photo .c-sheet{padding-top:72px}
  .c-sheet .c-sheet-head{top:20px;left:20px;right:20px}
}

/* =====================================================================================
   v7 · Typography (Barlow Semi Condensed + Manrope), Services dropdown, expandable
   directory rows, real jobsite photography and gallery. Layout and palette unchanged.
   ===================================================================================== */

/* ---------- Type ---------- */
body{font-size:16.5px;line-height:1.65;font-weight:450;letter-spacing:-.003em;font-feature-settings:"cv01","cv02"}
h1,h2,h3{font-kerning:normal}
.c-label{font-size:.74rem;font-weight:700;letter-spacing:.09em}
.c-mono{font-size:.82rem;font-weight:600;letter-spacing:.005em;text-transform:none}
.c-h2{font-weight:600;font-size:clamp(2.1rem,3.7vw,3.5rem);line-height:1.04;letter-spacing:-.006em}
.c-lede{font-size:1.07rem;line-height:1.62}
.c-btn{font-weight:700;letter-spacing:-.003em}
.c-btn .a{font-weight:600}
.c-nav a,.c-dd-btn{font-weight:600;font-size:.95rem}
.c-phone{font-size:.95rem;font-weight:700;letter-spacing:0}
.c-h1-kicker{font-weight:700;font-size:clamp(1rem,1.15vw,1.08rem);letter-spacing:-.003em;margin-bottom:22px}
.c-h1-display{font-weight:700;font-size:clamp(2.9rem,5.6vw,5.9rem);line-height:.98;letter-spacing:-.012em}
.c-phero h1,.c-simple h1{font-weight:700;line-height:1;letter-spacing:-.01em;font-size:clamp(2.5rem,4.6vw,4.6rem)}
.c-hero-sub{font-size:1.1rem;line-height:1.6}
.c-titleblock .tb-call dd a,.c-contact .big,.c-spec-cta a.tel{font-weight:700;letter-spacing:-.005em}
.c-about-lead,.c-prose p:first-child,.c-dir-foot .ask{font-weight:500;letter-spacing:-.004em;line-height:1.32}
.c-process h2,.c-where h2{font-weight:700;text-transform:none;letter-spacing:-.006em;font-size:clamp(2.1rem,3.4vw,3.2rem);line-height:1.02}
.c-step h3,.c-scope-list h3,.c-faq summary h3,.c-project h3,.c-related a,.c-svcindex b,.c-simple-body h2{font-weight:600;letter-spacing:-.004em}
.c-region .towns,.c-prose .county .county-towns{font-weight:600;letter-spacing:-.006em}
.c-region h3{font-family:var(--f-body);font-weight:700;font-size:.78rem;letter-spacing:.08em}
.c-crumbs ol{text-transform:none;letter-spacing:0;font-size:.86rem;font-weight:600}
.c-towns li{text-transform:none;letter-spacing:0;font-size:.86rem;font-weight:600}
.c-form legend{text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:700}
.c-form label{font-weight:600}
.c-form-head b{font-weight:700;font-size:1.15rem}
.c-strip-grid figcaption,.c-project-photos figcaption{text-transform:none;letter-spacing:0;font-size:.82rem;font-weight:700}
.c-for{text-transform:none;letter-spacing:0;font-size:.84rem;font-weight:600}
.c-footer h2{font-weight:700}
/* JetBrains Mono, kept for small technical labels */
.c-code,.c-titleblock dt,.c-sheet-head,.c-sheet .code small,.c-step .n,.c-spec-head,.c-spec dt,.c-dir-cols,.c-form legend i,.c-coverage-head{font-family:var(--f-tech)}
.c-code{font-size:.76rem}
.c-titleblock dt,.c-spec dt{font-size:.66rem}
@media (max-width:640px){
  body{font-size:16px}
  .c-h1-display{font-size:clamp(2.55rem,11.4vw,3.4rem);line-height:1;letter-spacing:-.01em}
  .c-phero h1,.c-simple h1{font-size:clamp(2.3rem,10vw,3rem)}
  .c-h2{font-size:clamp(2rem,8.6vw,2.5rem)}
}

/* ---------- Services dropdown (desktop) ---------- */
.c-nav{gap:26px}
.c-dd{position:relative}
.c-dd-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:6px 0;margin:0;color:var(--ink);font-family:var(--f-body);cursor:pointer;position:relative}
.c-dd-btn i{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s}
.c-dd-btn[aria-expanded="true"] i{transform:translateY(2px) rotate(-135deg)}
.c-dd-btn::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--graphite);transition:right .2s}
.c-dd-btn:hover::after,.c-dd-btn[aria-expanded="true"]::after,.c-dd-btn[data-current]::after{right:0}
.c-dd::before{content:"";position:absolute;left:-20px;right:-20px;top:100%;height:30px}   /* hover bridge to the panel */
.c-dd-panel{position:absolute;top:calc(100% + 26px);left:-28px;z-index:60;width:min(760px,calc(100vw - 48px));background:var(--off);border:1.5px solid var(--graphite);box-shadow:10px 10px 0 rgba(32,39,40,.14)}
.c-dd-panel[hidden]{display:none}
.c-dd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.c-dd-group{padding:22px 24px 18px}
.c-dd-group + .c-dd-group{border-left:1px solid var(--rule)}
.c-dd-h{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2)}
.c-dd-h::before{content:"";width:7px;height:7px;background:var(--green);outline:1px solid var(--graphite)}
.c-dd-group ul{list-style:none;margin:0;padding:0}
.c-nav .c-dd-group a{display:block;padding:8px 10px;margin:0 -10px;font-family:var(--f-display);font-weight:600;font-size:1.18rem;line-height:1.2;letter-spacing:-.003em;color:var(--graphite)}
.c-nav .c-dd-group a::after{display:none}
.c-nav .c-dd-group a:hover,.c-nav .c-dd-group a:focus-visible{background:var(--concrete)}
.c-nav .c-dd-group a:focus-visible{outline:2px solid var(--graphite);outline-offset:0}
.c-nav .c-dd-group a[aria-current]{box-shadow:inset 3px 0 0 var(--green);background:var(--concrete)}
.c-dd-foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--graphite);background:var(--concrete)}
.c-nav .c-dd-foot a{font-weight:700;font-size:.9rem;padding:4px 0}
.c-nav .c-dd-foot a::after{display:none}
.c-nav .c-dd-foot a:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- Services in the mobile menu ---------- */
.c-mobile li a{font-weight:600;font-size:1.5rem;letter-spacing:-.004em}
.c-mobile li a span{font-family:var(--f-body);font-weight:600}
.c-msvc-btn{display:flex;width:100%;justify-content:space-between;align-items:center;padding:17px 0;background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink);font-family:var(--f-display);font-weight:600;font-size:1.5rem;line-height:1.2;text-align:left;cursor:pointer}
.c-msvc-btn i{position:relative;width:30px;height:30px;border:1.5px solid var(--graphite);flex:none}
.c-msvc-btn i::before,.c-msvc-btn i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;transform:translate(-50%,-50%)}
.c-msvc-btn i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .18s}
.c-msvc-btn[aria-expanded="true"] i{background:var(--green)}
.c-msvc-btn[aria-expanded="true"] i::after{transform:translate(-50%,-50%) rotate(0deg)}
.c-msvc-panel{padding:6px 0 14px;border-bottom:1px solid var(--rule)}
.c-msvc-panel[hidden]{display:none}
.c-msvc-panel .c-dd-group{padding:14px 0 4px}
.c-msvc-panel .c-dd-group + .c-dd-group{border-left:0}
.c-msvc-panel ul{list-style:none;margin:0;padding:0 0 0 2px;border-left:2px solid var(--graphite)}
.c-mobile .c-msvc-panel li a{display:flex;align-items:center;min-height:46px;padding:8px 14px;border-bottom:0;font-family:var(--f-body);font-weight:600;font-size:1.06rem;letter-spacing:-.003em}
.c-mobile .c-msvc-panel li a[aria-current]{background:var(--concrete);box-shadow:inset 3px 0 0 var(--green)}
.c-mobile .c-msvc-panel li a:active{background:var(--concrete)}
.c-mobile a.c-msvc-all{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;min-height:46px;background:var(--concrete);text-decoration:none;font-weight:700;font-size:1rem;border-bottom:0}

/* ---------- Homepage directory: expandable rows ---------- */
.c-dir-cols,.c-row{grid-template-columns:118px minmax(0,1fr) 190px 44px}
.c-row{padding:0;align-items:center;gap:0 24px}
.c-row:hover{background:transparent;box-shadow:none}
.c-row:focus-within{outline:0}
.c-row h3{margin:0;font-weight:600;font-size:inherit;line-height:inherit;letter-spacing:0}
.c-row-btn{display:grid;gap:4px;width:100%;padding:24px 0;background:none;border:0;color:inherit;text-align:left;font:inherit;cursor:pointer}
.c-row .c-go,.c-row .c-for,.c-row .c-code{cursor:pointer}
.c-row-btn .nm{font-family:var(--f-display);font-weight:600;font-size:clamp(1.55rem,2.2vw,2rem);line-height:1.08;letter-spacing:-.006em;color:var(--graphite)}
.c-row .c-sum{display:block;font-family:var(--f-body);font-weight:500;font-size:.98rem;line-height:1.45;color:var(--ink-2)}
.c-row-btn:focus-visible{outline:none}
.c-row:has(.c-row-btn:focus-visible){outline:3px solid var(--graphite);outline-offset:-3px}
.c-row:has(.c-row-btn:hover){background:var(--concrete);box-shadow:-16px 0 0 var(--concrete),16px 0 0 var(--concrete)}
.c-row .c-go{position:relative;font-size:0}
.c-row .c-go::before,.c-row .c-go::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:var(--graphite);transform:translate(-50%,-50%)}
.c-row .c-go::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .18s}
.c-row.is-open .c-go{background:var(--green)}
.c-row.is-open .c-go::after{transform:translate(-50%,-50%) rotate(0deg)}
.c-row-btn:hover ~ .c-go{background:var(--green)}
.c-row-panel{grid-column:2 / -1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px 40px;align-items:start;padding:0 0 28px}
.c-row-panel[hidden]{display:none}
.c-row-panel > p{margin:0;font-size:1.02rem;line-height:1.62;color:var(--ink);max-width:36em}
.c-row-inc{border-left:2px solid var(--graphite);padding-left:18px}
.c-row .c-row-inc-h{margin:0 0 6px;font-size:.72rem;max-width:none;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2)}
.c-row-inc ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.c-row-inc li{font-weight:600;font-size:.95rem;line-height:1.4}
.c-row-inc li::before{content:"";display:inline-block;width:6px;height:6px;margin:0 10px 2px 0;background:var(--green);outline:1px solid var(--graphite)}
.c-row-more{grid-column:1;justify-self:start;padding:14px 18px;font-size:.95rem}
.c-row.is-open{background:var(--concrete);box-shadow:-16px 0 0 var(--concrete),16px 0 0 var(--concrete)}
@media (max-width:980px){
  .c-row{grid-template-columns:minmax(0,1fr) 44px;gap:0 16px;padding:0;align-items:center}
  .c-row .c-code{display:none}
  .c-row h3{grid-column:1;grid-row:1}
  .c-row .c-for{display:none}
  .c-row .c-go{grid-column:2;grid-row:1;align-self:center}
  .c-row-panel{grid-column:1 / -1;grid-row:2;grid-template-columns:1fr;padding:0 0 22px}
  .c-row-panel > p{grid-column:1}
  .c-row-more{grid-column:1}
}
@media (max-width:640px){
  .c-row{grid-template-columns:minmax(0,1fr) 40px;gap:0 14px;padding:0}
  .c-row-btn{padding:18px 0}
  .c-row-btn .nm{font-size:1.5rem}
  .c-row .c-sum{display:block;font-size:.97rem}
  .c-row .c-go{width:40px;height:40px;grid-row:1}
  .c-row-more{width:100%;justify-content:space-between}
}

/* ---------- Real photography ---------- */
.c-plate img[data-photo],.c-portrait img[data-photo],.c-pplate img[data-photo]{background:var(--charcoal)}
.c-pplate:not(.no-photo) .c-sheet{display:none}
.c-portrait:not(.no-photo) figcaption{justify-content:space-between}

/* Service page photo strip */
.c-strip{padding-block:clamp(56px,7vw,96px)}
.c-strip .c-head{margin-bottom:clamp(24px,3vw,36px)}
.c-strip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.c-strip-grid.n1{grid-template-columns:minmax(0,1fr)}
.c-strip-grid.n1 figure{aspect-ratio:16/9}
.c-strip-grid.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.c-strip-grid.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.c-strip-grid figure{aspect-ratio:4/5}
.c-strip-grid.n2 figure{aspect-ratio:4/3}

/* Homepage gallery */
.c-gallery{list-style:none;margin:clamp(36px,4.5vw,56px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.c-gal-item{display:grid;gap:8px;align-content:start;min-width:0}
.c-gal-item.wide{grid-column:span 2;grid-row:span 2}
.c-gal-img{position:relative;margin:0;aspect-ratio:4/3;background:var(--concrete);overflow:hidden;border:1px solid var(--graphite)}
.c-gal-item.wide .c-gal-img{aspect-ratio:auto;height:100%;min-height:100%}
.c-gal-item.wide{grid-template-rows:minmax(0,1fr) auto}
.c-gal-img img[data-photo]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.c-gal-img:hover img[data-photo]{transform:scale(1.025)}
.c-gal-img button.zoom{position:absolute;inset:0;z-index:2;background:none;border:0;cursor:zoom-in;padding:0}
.c-gal-img button.zoom:focus-visible{outline:3px solid var(--green);outline-offset:-6px}
.c-gal-img figcaption{position:absolute;left:0;bottom:0;z-index:1;max-width:calc(100% - 12px);background:var(--off);border-top:1px solid var(--graphite);border-right:1px solid var(--graphite);padding:7px 12px;font-size:.86rem;line-height:1.3}
.c-gal-img figcaption b{font-weight:700}
.c-gal-meta{font-size:.86rem;font-weight:600;color:var(--ink-2)}
.c-gal-meta a{color:var(--ink);text-underline-offset:3px}
@media (max-width:980px){
  .c-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c-strip-grid,.c-strip-grid.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .c-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .c-gal-item.wide{grid-column:1 / -1;grid-row:auto}
  .c-gal-item.wide .c-gal-img{aspect-ratio:4/3;height:auto}
  .c-gal-img figcaption{font-size:.78rem;padding:5px 9px}
  .c-gal-meta{font-size:.8rem}
  .c-strip-grid,.c-strip-grid.n2,.c-strip-grid.n4{grid-template-columns:1fr}
  .c-strip-grid figure,.c-strip-grid.n2 figure{aspect-ratio:4/3}
}
.c-gal-t{display:none}
@media (max-width:640px){
  .c-gal-img figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;padding:0;border:0}
  .c-gal-meta{display:grid;gap:1px;line-height:1.35}
  .c-gal-t{display:block;color:var(--ink);font-size:.86rem}
}
.c-row .c-row-panel > *{grid-row:auto}
.c-row .c-row-panel > p{max-width:36em}
.c-mobile a.c-msvc-all{font-family:var(--f-body)}
