@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;src:url('/assets/fonts/BricolageGrotesque-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;src:url('/assets/fonts/BricolageGrotesque-800.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;src:url('/assets/fonts/SourceSans3-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;src:url('/assets/fonts/SourceSans3-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;src:url('/assets/fonts/SourceSans3-700.woff2') format('woff2');font-display:swap}
/* ============================================================
   DESCHUTES CONCIERGE HANDYMAN — handymanmemberships.com
   Locked design system: "Design B" (approved by Bob 2026-08-20)
   Gate: Design-Tells-Banlist.md. Kill the tokens and the
   sameness, keep the machinery. No eyebrow kickers, no pill
   buttons or arrow glyphs, no card grids, no checkmark pairs,
   no rounded CTA slabs, no gradient scrims, no blur headers.
   Vary section skeletons: no two consecutive sections alike.
   ============================================================ */

:root{
  /* palette */
  --bg:#F7F3EC;          /* warm paper, page ground */
  --surface:#FFFFFF;     /* sparing, for photos/forms only */
  --ink:#1F2A30;         /* headings, dark panels, footer */
  --body:#3C474D;        /* body text on light */
  --muted:#4E5A60;       /* secondary text */
  --faint:#6A7378;       /* small print */
  --line:#D9CFBD;        /* warm rules on paper */
  --line-cool:#E1E5E3;   /* rules on white */
  --accent:#C0592B;      /* rust: buttons, rules, numerals, free-price */
  --accent-soft:#F6DFD2; /* text on rust bands */
  --on-ink:#C9D2D4;      /* body text on ink panels */
  --radius:3px;          /* the only radius on the site */
  /* type */
  --display:'Bricolage Grotesque',Arial,sans-serif;  /* 600/800 */
  --text:'Source Sans 3',Arial,sans-serif;            /* 400/600/700 */
}

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--text);background:var(--bg);color:var(--ink);
  line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 34px}
.sec{padding:84px 0}

/* type scale */
.d,h1,h2{font-family:var(--display);font-weight:800;letter-spacing:-.015em;line-height:1.05}
h1{font-size:56px}
h2{font-size:42px;margin-bottom:12px}
h3{font-size:19px;font-weight:700}
.lede{color:var(--muted);font-size:18px;max-width:620px}
.smallprint{font-size:13px;color:var(--faint)}

/* the heading rule (replaces eyebrow kickers — never label text) */
.rulehead{width:46px;height:4px;background:var(--accent);margin-bottom:18px}

/* buttons: solid, square-ish, no arrow glyphs, ever */
.btn{display:inline-block;background:var(--accent);color:#fff;font-weight:700;
  font-size:16px;padding:15px 26px;border:none;border-radius:var(--radius);cursor:pointer}
.btn.ink{background:var(--ink)}
.tlink{font-weight:600;font-size:15.5px;border-bottom:2px solid var(--accent);padding-bottom:2px}

/* header: solid, real rule, phone as a first-class object */
header.site{background:var(--bg);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:26px;height:80px}
header.site img{height:46px}                    /* logo_dark.png on light */
header.site nav{display:flex;gap:22px}
header.site nav a{font-weight:600;font-size:15px;opacity:.8}
header.site .right{margin-left:auto;display:flex;align-items:center;gap:20px}
header.site .tel{font-weight:700;font-size:16px}

/* hero: full-bleed photo + OPAQUE ink panel (no gradient scrims).
   Keep the photo's subject visible beside the panel. */
.hero{position:relative;min-height:600px;display:flex;align-items:stretch}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center 30%}
.hero .panelwrap{position:relative;width:100%;display:flex;align-items:center}
.hero .panelwrap .wrap{display:flex;justify-content:flex-end;width:100%}
.hero .panel{background:var(--ink);color:#fff;max-width:560px;padding:58px 54px;margin:64px 34px 64px 0}
.hero h1{color:#fff}
.hero .sub{color:var(--on-ink);font-size:19px;margin:18px 0 26px}
.hero .lic{margin-top:18px;color:#8DA0A6;font-size:13px}

/* trust: one written sentence between rules (never an icon bar) */
.trustline{border-bottom:1px solid var(--line)}
.trustline .wrap{padding:18px 34px;text-align:center;font-size:15.5px;color:var(--body)}

/* split section: photo + prose (sentences, never checkmark pairs) */
.two{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center}
.two img{width:100%;height:440px;object-fit:cover;border-radius:var(--radius);display:block}
.two p{margin-bottom:14px;font-size:16.5px;color:var(--body)}

/* steps: plain numerals over top rules (never circles) */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:38px}
.step{border-top:3px solid var(--ink);padding-top:18px}
.step .n{font-family:var(--display);font-weight:800;font-size:40px;color:var(--accent);line-height:1}
.step h3{margin:10px 0 6px}
.step p{color:var(--muted);font-size:15.5px}

/* photo gallery: square-ish, captions BELOW (never overlaid, never rounded cards) */
.gal6{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.g img{width:100%;height:250px;object-fit:cover;border-radius:var(--radius);display:block}
.g .cap{font-size:14px;color:var(--muted);padding:8px 2px 0}

/* ruled list (replaces card grids everywhere) */
.rlist{margin-top:34px;column-count:2;column-gap:70px}
.ritem{break-inside:avoid;border-bottom:1px solid var(--line);padding:14px 0}
.ritem h3{font-size:17px;margin-bottom:3px}
.ritem p{color:var(--muted);font-size:15px}

/* full-bleed photo band with a solid caption plate (no scrims) */
.band{position:relative}
.band img{width:100%;height:440px;object-fit:cover;display:block}
.band .plate{position:absolute;left:34px;bottom:34px;background:var(--ink);color:#fff;
  padding:22px 28px;max-width:460px}
.band .plate .t{font-family:var(--display);font-weight:800;font-size:24px}
.band .plate .s{color:var(--on-ink);font-size:15px;margin-top:6px}

/* pricing: a table, not cards. Point prices live on ONE hub URL (/rates/). */
.pricetable{margin-top:38px;border-top:3px solid var(--ink)}
.prow{display:grid;grid-template-columns:230px 1fr 170px;gap:26px;align-items:baseline;
  padding:24px 4px;border-bottom:1px solid var(--line)}
.prow .nm{font-family:var(--display);font-weight:800;font-size:21px}
.prow .ds{color:var(--muted);font-size:15.5px}
.prow .pr{font-family:var(--display);font-weight:800;font-size:24px;text-align:right}
.prow.free .nm,.prow.free .pr{color:var(--accent)}

/* reviews: quotes over rust rules (never star-card grids) */
.revrow{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:34px}
.rev{border-top:3px solid var(--accent);padding-top:18px}
.rev p{font-size:16px;font-style:italic;color:#2C373D}
.rev .who{margin-top:12px;font-weight:700;font-size:14px}

/* faq: plain ruled Q&A (no accordion chrome) */
.faqlist{max-width:800px}
.faqlist .qa{border-bottom:1px solid var(--line);padding:20px 0}
.faqlist h3{font-size:18px;margin-bottom:6px}
.faqlist p{color:var(--muted);font-size:15.5px}

/* final ask: full-width edge-to-edge rust band (never a rounded inset slab) */
.finalband{background:var(--accent);color:#fff;text-align:center;padding:84px 0}
.finalband h2{color:#fff;font-size:48px}
.finalband p{color:var(--accent-soft);font-size:17.5px;margin:10px 0 26px}
.finalband .tel{margin-top:16px;color:var(--accent-soft);font-size:15px}

/* forms: square fields, honest labels */
.field label{font-weight:600;font-size:13px;color:var(--body);display:block;margin-bottom:6px}
.field input,.field textarea{width:100%;border:1.5px solid #C6CDCA;border-radius:var(--radius);
  padding:12px;font-size:15.5px;font-family:var(--text);background:#fff}

/* footer: ink, logo_white.png, license line always present */
footer.site{background:var(--ink);color:#B9C4C8;padding:44px 0 52px}
footer.site .wrap{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap}
footer.site img{height:52px}
footer.site .col{font-size:13.5px;line-height:1.8}
footer.site a:hover{color:#fff}

@media(max-width:900px){
  .two,.revrow,.steps{grid-template-columns:1fr}
  .rlist{column-count:1}
  .gal6{grid-template-columns:1fr 1fr}
  .prow{grid-template-columns:1fr;gap:6px}
  h1{font-size:42px}h2{font-size:34px}
}

/* interior page extensions */
header.site .wrap{height:92px;max-width:1280px}
header.site img{height:38px}
header.site nav{gap:18px}
header.site nav a,header.site .tel{white-space:nowrap}
@media(max-width:1240px){header.site nav{display:none}}
.lgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
@media(max-width:980px){
 .svcgrid{grid-template-columns:1fr 1fr}
 .intro{display:flex;flex-direction:column}
 .formfloat{float:none;width:auto;order:9;margin:30px 0 4px}
 .iwrap .pagehead h1{font-size:36px}
 .cl-grid{grid-template-columns:1fr;gap:34px}
 .cl-copy h2{font-size:34px}
}
@media(max-width:900px){
 header.site img{height:32px}
 header.site .tel{font-size:15px}
 header.site .right .btn{font-size:14px;padding:12px 16px;white-space:nowrap}
 .hero{display:block;min-height:0}
 .hero .bg{position:relative;inset:auto;height:62vw;min-height:250px;max-height:430px;background-position:42% 30%}
 .hero .panelwrap .wrap{display:block;padding:0}
 .hero .panel{margin:0;max-width:none;padding:38px 28px 42px}
 .hero h1{font-size:40px}
 .lgrid,.rgrid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:740px){
 body{padding-bottom:58px}
 .stickybar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:60}
 .stickybar a{text-align:center;padding:16px 10px;font-weight:700;font-size:15.5px;color:#fff}
 .sb-call{background:var(--ink)}
 .sb-book{background:var(--accent)}
 .pagephoto{height:240px}
 .ctastrip .cs-t{font-size:19px}
 .wrap{padding:0 22px}
 .sec{padding:56px 0}
 h2{font-size:30px}
 header.site .wrap{height:70px;gap:14px}
 header.site img{height:30px}
 header.site .right{gap:12px}
 header.site .right .btn{display:none}
 header.site .tel{font-size:15.5px}
 .hero h1{font-size:34px}
 .hero .sub{font-size:17px}
 .trustline .wrap{font-size:13.5px;padding:14px 22px}
 .band img{height:300px}
 .band .plate{position:static;max-width:none}
 .pagehead h1{font-size:32px}
 .finalband h2{font-size:32px}
 .finalband{padding:60px 0}
 .leadform{max-width:none}
 .two img{height:300px}
 .prow .pr{text-align:left}
}
@media(max-width:620px){
 .gal6{grid-template-columns:1fr}
 .g img{height:230px}
 footer.site .cols{grid-template-columns:1fr}
 .strip5{grid-template-columns:1fr}
}
.herobg{background-image:url('/assets/img/hero-home.jpg')}
@media(min-width:1500px){
 .herobg{background-image:url('/assets/img/hero-home-wide.jpg')!important}
 .hero{min-height:76vh;max-height:860px}
 .hero .panel{max-width:600px}
}
.crumbs{font-size:13.5px;color:var(--faint);padding:16px 0}
.iwrap .pagehead h1{max-width:none;font-size:48px}
.intro{margin-top:16px}
.intro::after{content:"";display:block;clear:both}
.formfloat{float:right;width:400px;margin:6px 0 28px 48px}
.intro .def{font-size:17px;color:var(--body);margin-bottom:14px}
.photowrap{display:flow-root;margin-top:26px}
.railquote{margin-top:16px;font-size:14.5px;font-style:italic;color:var(--body);border-top:3px solid var(--accent);padding-top:12px}
.rq-who{font-style:normal;font-weight:700;font-size:13px;margin-top:6px}
.ctarow{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}
.pagephoto{width:100%;height:340px;object-fit:cover;border-radius:var(--radius);display:block}
.svcgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px;margin-top:34px}
.svccard{display:block;border-bottom:1px solid var(--line);padding-bottom:18px}
.svccard img{width:100%;height:200px;object-fit:cover;border-radius:var(--radius);display:block}
.svccard h3{font-size:18px;margin:14px 0 4px}
.svccard p{color:var(--muted);font-size:14.5px;line-height:1.5}
.isec{margin-top:52px}
.ctastrip{border-top:3px solid var(--ink);border-bottom:1px solid var(--line);margin-top:52px;padding:22px 0}
.ctastrip .cs-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ctastrip .cs-t{font-family:var(--display);font-weight:800;font-size:21px;max-width:420px;line-height:1.25}
.ctastrip .cs-a{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.closing{background:var(--accent);padding:72px 0}
.cl-grid{display:grid;grid-template-columns:1fr 460px;gap:60px;align-items:center}
.cl-copy h2{color:#fff;font-size:44px}
.cl-copy p{color:var(--accent-soft);font-size:17.5px;margin:10px 0 18px}
.cl-tel{color:#fff;font-weight:700;font-size:17px}
.cl-tel a{border-bottom:2px solid rgba(255,255,255,.5)}
.cl-lic{color:#F0CDBA;margin-top:14px}
.closing .leadform{border-color:#8E3D1B}
.stickybar{display:none}
.crumbs a{border-bottom:1px solid var(--line)}
.pagehead{padding:26px 0 8px}
.pagehead h1{font-size:46px;max-width:820px}
.pagehead .lede{margin-top:12px}
.prose{max-width:720px}
.prose p{margin-bottom:16px;font-size:16.5px;color:var(--body)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:start}
.split img{width:100%;object-fit:cover;border-radius:var(--radius);display:block}
.imgcap{font-size:14px;color:var(--muted);padding:8px 2px 0}
.related{margin-top:44px;border-top:3px solid var(--ink);padding-top:18px}
.related .t{font-weight:700;font-size:15px;margin-bottom:10px}
.related a{display:inline-block;margin:0 22px 8px 0;font-weight:600;border-bottom:2px solid var(--accent);padding-bottom:2px}
.leadform{border:2px solid var(--ink);border-radius:var(--radius);padding:26px;background:#fff;max-width:520px}
.leadform h2{font-size:22px;margin-bottom:4px}
.leadform .sub{font-size:14px;color:var(--faint);margin-bottom:18px}
.leadform .f{margin-bottom:14px}
.leadform textarea{min-height:84px;resize:vertical}
.leadform .btn{width:100%;text-align:center}
.leadform .fine{margin-top:12px;text-align:center}
.leadform .ok{display:none;padding:18px 6px;font-size:16.5px}
.leadform .err{display:none;padding:10px 6px;font-size:14px;color:#8A3B22}
.hp{position:absolute;left:-9999px;opacity:0}
.qlist{margin-top:26px}
.telbig{font-weight:700;font-size:18px}
.notice{font-size:13px;color:var(--faint);border-top:1px solid var(--line);margin-top:34px;padding-top:14px}
footer.site .cols{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1fr;gap:34px}
footer.site h4{color:#fff;font-size:13.5px;letter-spacing:.04em;margin-bottom:10px;font-weight:700}
footer.site .col a{display:block;padding:2.5px 0}
footer.site .cloud a{display:inline;padding:0}
footer.site .cloud{line-height:2}
footer.site .cloud a{border-bottom:1px solid #3A4A52;margin-right:10px;white-space:nowrap}
footer.site .base{border-top:1px solid #33424B;margin-top:30px;padding-top:18px;font-size:12.5px;color:#8FA0A6;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
@media(max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.pagehead h1{font-size:36px}}
/* responsive overrides, keep last */
@media(max-width:980px){
 .svcgrid{grid-template-columns:1fr 1fr}
 .intro{display:flex;flex-direction:column}
 .formfloat{float:none;width:auto;order:9;margin:30px 0 4px}
 .iwrap .pagehead h1{font-size:36px}
 .cl-grid{grid-template-columns:1fr;gap:34px}
 .cl-copy h2{font-size:34px}
}
@media(max-width:740px){
 body{padding-bottom:58px}
 .stickybar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:60}
 .stickybar a{text-align:center;padding:16px 10px;font-weight:700;font-size:15.5px;color:#fff}
 .sb-call{background:var(--ink)}
 .sb-book{background:var(--accent)}
 .pagephoto{height:240px}
 .svcgrid{grid-template-columns:1fr;gap:26px}
 .svccard img{height:210px}
 .ctastrip .cs-t{font-size:19px}
 .cl-copy h2{font-size:30px}
 html,body{overflow-x:hidden}
 header.site img{height:26px}
 header.site .tel .tl{display:none}
 header.site .tel{font-size:15px}
}
@media(max-width:400px){
 header.site img{height:22px}
 header.site .tel{font-size:14px}
}
