
@import url('https://fonts.googleapis.com/css2?family=Anton&family=Public+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --concrete:#EDEAE3;
  --concrete-dark:#DEDAD0;
  --charcoal:#24262B;
  --charcoal-soft:#34373E;
  --slate:#3F4A52;
  --chalk:#F7F5EF;
  --caution:#F5B700;
  --rust:#A6521B;
  --white:#FAFAF8;
  --line:rgba(36,38,43,0.18);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--concrete); color:var(--charcoal); font-family:'Public Sans', sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Anton', sans-serif; font-weight:400; text-transform:uppercase; letter-spacing:0.01em; line-height:0.97;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
section{padding:92px 0;}
@media(max-width:720px){section{padding:60px 0;} .wrap{padding:0 20px;}}

.dim{display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--charcoal-soft);}
.dim::before, .dim::after{content:""; height:1px; flex:1; background:var(--line);}
.dim::before{max-width:24px;}
.dim-num{background:var(--concrete); padding:0 4px;}

header{position:sticky; top:0; z-index:50; background:rgba(237,234,227,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:inherit; cursor:pointer;}
.brand-mark{width:34px; height:34px; border:2px solid var(--charcoal); display:flex; align-items:center; justify-content:center; font-family:'Anton', sans-serif; font-size:16px; flex-shrink:0; background:var(--chalk); color:var(--slate);}
.brand-name{font-family:'Anton', sans-serif; font-size:18px; letter-spacing:0.01em; text-transform:uppercase;}
.brand-name span{color:var(--rust);}
nav.links{display:flex; gap:28px; font-size:14px; font-weight:600;}
nav.links a:hover{color:var(--rust);}
.cta-group{display:flex; gap:10px;}
.cta{background:var(--charcoal); color:var(--white); font-weight:700; font-size:13px; letter-spacing:0.03em; text-transform:uppercase; padding:11px 18px; border:2px solid var(--charcoal); transition:all .15s ease; white-space:nowrap;}
.cta:hover{background:var(--caution); border-color:var(--caution); color:var(--charcoal);}
.cta.outline{background:transparent; color:var(--charcoal);}
.cta.outline:hover{background:var(--charcoal); color:var(--white);}
@media(max-width:900px){nav.links{display:none;} .cta.outline{display:none;}}

.hero{padding:64px 0 40px;}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.09em; text-transform:uppercase; color:var(--rust); margin-bottom:18px;}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--rust);}
.hero h1{font-size:clamp(38px,5.4vw,60px); margin-bottom:20px;}
.hero h1 em{font-style:normal; color:var(--rust);}
.hero p.lede{font-size:17px; max-width:480px; color:var(--charcoal-soft); margin-bottom:30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

.deckboard{position:relative; background:var(--slate); aspect-ratio:4/5; overflow:hidden; border:1px solid var(--line);}
.deckboard::before{content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px); background-size:24px 24px;}
.deckboard svg{position:relative; width:100%; height:100%;}
.deckboard-tag{position:absolute; top:20px; left:20px; color:var(--chalk); font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; opacity:0.75;}
.deckboard-label{position:absolute; bottom:18px; left:18px; right:18px; color:var(--chalk); font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; opacity:0.85; display:flex; justify-content:space-between;}

.locations-strip{border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.locations-strip .wrap{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
@media(max-width:720px){.locations-strip .wrap{grid-template-columns:1fr;}}
.loc{padding:26px 24px; border-right:1px solid var(--line);}
.loc:last-child{border-right:none;}
@media(max-width:720px){.loc{border-right:none; border-bottom:1px solid var(--line);}}
.loc .city{font-family:'Anton', sans-serif; font-size:18px; margin-bottom:6px;}
.loc .addr{font-size:13px; color:var(--charcoal-soft); margin-bottom:4px;}
.loc .lic{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--rust); text-transform:uppercase; margin-top:6px;}
.loc .phone{font-family:'IBM Plex Mono',monospace; font-size:13px; margin-top:8px; font-weight:500;}

.section-head{margin-bottom:46px; max-width:640px;}
.section-head .dim{margin-bottom:14px;}
.section-head h2{font-size:clamp(28px,4vw,42px);}
.section-head p{color:var(--charcoal-soft); margin-top:14px; font-size:15px;}

.services{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:840px){.services{grid-template-columns:1fr;}}
.service{background:var(--concrete); padding:34px 28px;}
.service .ico{width:38px; height:38px; margin-bottom:20px; color:var(--rust);}
.service h3{font-size:20px; margin-bottom:10px; text-transform:none; font-family:'Public Sans',sans-serif; font-weight:800;}
.service p{font-size:14.5px; color:var(--charcoal-soft); margin-bottom:14px;}
.brandlist{display:flex; flex-wrap:wrap; gap:6px;}
.brandlist span{font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:0.04em; border:1px solid var(--line); padding:4px 8px; color:var(--charcoal-soft);}

.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media(max-width:720px){.gallery-grid{grid-template-columns:1fr;}}
.gphoto{aspect-ratio:4/3; position:relative; overflow:hidden; background:var(--concrete-dark); border:1px solid var(--line); display:flex; align-items:flex-end;}
.gphoto img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.gphoto .tag{position:relative; z-index:1; background:var(--charcoal); color:var(--white); font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; padding:8px 12px; margin:14px;}

.faith{background:var(--charcoal); color:var(--white);}
.faith .wrap{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media(max-width:900px){.faith .wrap{grid-template-columns:1fr; gap:32px;}}
.faith .dim{color:rgba(250,250,248,0.5);}
.faith .dim::before,.faith .dim::after{background:rgba(250,250,248,0.2);}
.faith h2{color:var(--white); font-size:clamp(28px,4vw,40px); margin-bottom:18px;}
.faith p{color:rgba(250,250,248,0.72); font-size:15.5px; margin-bottom:16px; max-width:460px;}
.give-badge{border:2px solid var(--caution); color:var(--caution); display:inline-block; padding:10px 16px; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:22px; transform:rotate(-2deg);}

.social-row{display:flex; flex-wrap:wrap; gap:10px;}
.social-pill{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--line); padding:10px 16px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.04em; text-transform:uppercase;
  background:var(--white); color:var(--charcoal); transition:all .15s ease;
}
.social-pill:hover{background:var(--charcoal); color:var(--white); border-color:var(--charcoal);}
.social-pill svg{width:15px; height:15px; flex-shrink:0;}
.faith .social-pill{background:rgba(250,250,248,0.06); color:var(--white); border-color:rgba(250,250,248,0.2);}
.faith .social-pill:hover{background:var(--caution); color:var(--charcoal); border-color:var(--caution);}
.impact-list{display:grid; gap:14px;}
.impact-item{display:flex; gap:14px; align-items:flex-start; padding:16px 18px; background:rgba(250,250,248,0.05); border:1px solid rgba(250,250,248,0.12);}
.impact-item .k{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--caution); text-transform:uppercase; min-width:26px;}
.impact-item p{margin:0; color:rgba(250,250,248,0.85); font-size:14px;}

.testimonials{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:840px){.testimonials{grid-template-columns:1fr;}}
.tcard{background:var(--white); border:1px solid var(--line); padding:26px; display:flex; flex-direction:column; height:100%;}
.tcard .stars{color:var(--caution); font-size:14px; margin-bottom:14px; letter-spacing:2px;}
.tcard p.q{font-size:14.5px; color:var(--charcoal-soft); flex:1; margin-bottom:16px;}
.tcard .who{font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--charcoal);}

.quote-section .wrap{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media(max-width:900px){.quote-section .wrap{grid-template-columns:1fr; gap:36px;}}
.quote-info h2{font-size:clamp(28px,4vw,42px); margin-bottom:18px;}
.quote-info p{color:var(--charcoal-soft); margin-bottom:26px; max-width:420px;}
.info-row{display:flex; gap:14px; align-items:flex-start; margin-bottom:16px; font-size:14.5px;}
.info-row .k{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; color:var(--rust); letter-spacing:0.06em; min-width:96px;}

form.permit{background:var(--white); border:1px solid var(--line); padding:30px;}
form.permit .form-title{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--charcoal-soft); border-bottom:1px dashed var(--line); padding-bottom:14px; margin-bottom:20px; display:flex; justify-content:space-between;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:6px; color:var(--charcoal-soft);}
.field input, .field select, .field textarea{width:100%; border:1px solid var(--line); background:var(--concrete); padding:11px 12px; font-family:'Public Sans',sans-serif; font-size:14.5px; color:var(--charcoal);}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--rust); outline-offset:1px;}
.field textarea{resize:vertical; min-height:80px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media(max-width:480px){.row2{grid-template-columns:1fr;}}
button.submit{width:100%; background:var(--caution); border:2px solid var(--charcoal); color:var(--charcoal); font-weight:800; letter-spacing:0.04em; text-transform:uppercase; padding:15px; font-size:14px; cursor:pointer; transition:all .15s ease;}
button.submit:hover{background:var(--charcoal); color:var(--white);}
.form-note{font-size:12px; color:var(--charcoal-soft); margin-top:12px; text-align:center;}

footer{background:var(--charcoal); color:rgba(250,250,248,0.7); padding:52px 0 26px;}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:32px; margin-bottom:36px;}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr; gap:26px;}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr; gap:26px;}}
.foot-grid h4{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--caution); margin-bottom:14px;}
.foot-grid p, .foot-grid a{font-size:14px; display:block; margin-bottom:8px; color:rgba(250,250,248,0.7);}
.foot-grid a:hover{color:var(--white);}
.foot-bottom{border-top:1px solid rgba(250,250,248,0.15); padding-top:20px; font-size:12px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:'IBM Plex Mono',monospace; color:rgba(250,250,248,0.45);}

/* sticky mobile call bar */
.call-bar{display:none;}
@media(max-width:720px){
  .call-bar{
    display:flex; position:fixed; bottom:0; left:0; right:0; z-index:100;
    border-top:1px solid var(--line); background:var(--white);
    box-shadow:0 -4px 16px rgba(0,0,0,0.08);
  }
  .call-bar a{
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
    padding:15px 10px; font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600;
    letter-spacing:0.03em; text-transform:uppercase;
  }
  .call-bar a.call{background:var(--charcoal); color:var(--white);}
  .call-bar a.quote{background:var(--caution); color:var(--charcoal);}
  body{padding-bottom:56px;}
}

/* map embed */
.map-embed{border:1px solid var(--line); overflow:hidden; margin-top:32px;}
.map-embed iframe{width:100%; height:340px; display:block; border:0;}

@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
