
  :root{
    --bg-0:#0E2117;
    --bg-1:#152C1F;
    --bg-2:#1C3626;
    --line:#2D4A38;
    --paper:#F4EFE3;
    --paper-dim:#C9D6C6;
    --muted:#8FA894;
    --amber:#E7A33E;
    --amber-dim:#B87F2C;
    --rust:#C9683B;
    --radius:2px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg-0);
    color:var(--paper);
    font-family:'Public Sans',Arial,sans-serif;
    font-size:16px;
    line-height:1.55;
  }
  h1,h2,h3,.display{
    font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;
    font-weight:700;
    letter-spacing:0.01em;
    margin:0;
    color:var(--paper);
    text-transform:none;
  }
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  img{max-width:100%;display:block;}

  /* ---- blueprint corner marks, used sparingly on featured elements ---- */
  .blueprint{position:relative;}
  .blueprint::before,.blueprint::after{
    content:"";position:absolute;width:14px;height:14px;
    border-top:1.5px solid var(--amber);border-left:1.5px solid var(--amber);
    top:-1px;left:-1px;
  }
  .blueprint::after{
    top:auto;left:auto;bottom:-1px;right:-1px;
    border-top:none;border-left:none;
    border-bottom:1.5px solid var(--amber);border-right:1.5px solid var(--amber);
  }

  /* ---------------- NAV ---------------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(14,33,23,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:20px 0;
  }
  .logo{
    font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;
    font-size:26px;font-weight:800;letter-spacing:0.01em;
    display:flex;align-items:center;gap:8px;
  }
  .logo .dot{color:var(--amber);}
  .nav-links{display:flex;gap:36px;align-items:center;}
  .nav-links a{
    font-size:15px;color:var(--paper-dim);
    padding:6px 0;border-bottom:1px solid transparent;
    transition:color .15s, border-color .15s;
  }
  .nav-links a:hover{color:var(--paper);border-color:var(--amber);}
  .nav-actions{display:flex;align-items:center;gap:20px;}
  .btn{
    display:inline-block;
    padding:11px 22px;
    border-radius:var(--radius);
    font-size:14.5px;font-weight:600;
    cursor:pointer;border:1px solid transparent;
    transition:transform .12s ease, background .15s;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-amber{background:var(--amber);color:#12210E;}
  .btn-amber:hover{background:#f0b158;}
  .btn-ghost{border-color:var(--line);color:var(--paper-dim);}
  .btn-ghost:hover{color:var(--paper);border-color:var(--amber);}

  /* ---------------- HERO ---------------- */
  .hero{
    padding:96px 0 88px;
    border-bottom:1px solid var(--line);
    background:
      radial-gradient(ellipse at 85% 15%, rgba(231,163,62,0.08), transparent 55%),
      var(--bg-0);
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{display:grid;grid-template-columns:1.05fr 0.85fr;gap:64px;align-items:center;}
  .eyebrow-line{
    display:flex;align-items:center;gap:10px;margin-bottom:22px;
    color:var(--amber);font-size:13.5px;font-weight:600;
  }
  .eyebrow-line .tick{width:22px;height:1px;background:var(--amber);}
  .hero h1{
    font-size:60px;line-height:1.02;color:var(--paper);
    max-width:15ch;
  }
  .hero p.lede{
    margin-top:26px;font-size:18px;color:var(--paper-dim);max-width:46ch;
  }
  .search-panel{
    margin-top:38px;
    background:var(--bg-1);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:8px;
    display:flex;gap:8px;
    flex-wrap:wrap;
  }
  .search-field{
    flex:1;min-width:180px;
    padding:14px 16px;
    background:var(--bg-2);
    border-radius:var(--radius);
  }
  .search-field label{
    display:block;font-size:11.5px;color:var(--muted);
    text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px;
  }
  .search-field input{
    background:none;border:none;color:var(--paper);
    font-family:'Public Sans',Arial,sans-serif;font-size:15px;width:100%;outline:none;
  }
  .search-field input::placeholder{color:var(--muted);}
  .search-panel .btn-amber{padding:0 26px;font-size:15px;align-self:stretch;display:flex;align-items:center;}

  .trust-row{
    margin-top:34px;display:flex;gap:40px;flex-wrap:wrap;
  }
  .trust-row .item .num{
    font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;font-size:30px;font-weight:700;color:var(--amber);
  }
  .trust-row .item .lbl{font-size:13px;color:var(--muted);margin-top:2px;}

  /* hero visual: mocked contractor profile card */
  .hero-visual{position:relative;}
  .profile-card{
    background:var(--bg-1);
    border:1px solid var(--line);
    padding:26px;
    position:relative;
  }
  .profile-card .top{display:flex;gap:14px;align-items:center;}
  .avatar{
    width:58px;height:58px;border-radius:50%;
    background:linear-gradient(135deg,#3C6B4B,#1C3626);
    display:flex;align-items:center;justify-content:center;
    font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;font-weight:700;font-size:20px;color:var(--amber);
    flex-shrink:0;
  }
  .profile-card .name{font-size:18px;font-weight:700;font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;}
  .profile-card .trade{font-size:13.5px;color:var(--muted);margin-top:2px;}
  .rating-line{display:flex;align-items:center;gap:6px;margin-top:14px;font-size:13.5px;color:var(--paper-dim);}
  .stars{color:var(--amber);letter-spacing:1px;font-size:14px;}
  .avail-badge{
    margin-top:16px;display:inline-flex;align-items:center;gap:7px;
    font-size:12.5px;color:#B7E3B0;background:rgba(120,190,110,0.12);
    border:1px solid rgba(120,190,110,0.3);
    padding:6px 11px;border-radius:20px;
  }
  .avail-badge .dot{width:6px;height:6px;border-radius:50%;background:#7ED26F;}
  .mini-cal{margin-top:20px;border-top:1px solid var(--line);padding-top:18px;}
  .mini-cal .cal-lbl{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px;}
  .cal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;}
  .cal-slot{
    text-align:center;padding:9px 0;font-size:12.5px;
    background:var(--bg-2);border-radius:var(--radius);color:var(--paper-dim);
  }
  .cal-slot.open{color:var(--bg-0);background:var(--amber);font-weight:600;}
  .floating-tag{
    position:absolute;top:-16px;right:22px;
    background:var(--rust);color:var(--paper);
    font-size:12px;font-weight:600;padding:7px 12px;
    transform:rotate(-2deg);
  }

  /* ---------------- CATEGORIES ---------------- */
  .section{padding:88px 0;border-bottom:1px solid var(--line);}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap;}
  .section-head h2{font-size:36px;max-width:20ch;}
  .section-head .sub{color:var(--muted);font-size:15px;max-width:38ch;}

  .cat-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
    background:var(--line);border:1px solid var(--line);
  }
  .cat-card{
    background:var(--bg-1);padding:30px 24px;
    display:flex;flex-direction:column;gap:16px;
    transition:background .15s;
    cursor:pointer;
  }
  .cat-card:hover{background:var(--bg-2);}
  .cat-icon{width:34px;height:34px;color:var(--amber);}
  .cat-card .name{font-size:17px;font-weight:600;font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;}
  .cat-card .count{font-size:13px;color:var(--muted);}

  /* ---------------- FEATURED PROFESSIONALS ---------------- */
  .pro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .pro-card{
    background:var(--bg-1);border:1px solid var(--line);
    padding:24px;display:flex;flex-direction:column;gap:14px;
  }
  .pro-card .photo{
    height:150px;border-radius:var(--radius);
    background:linear-gradient(160deg,#2C4E37,#132A1C);
    display:flex;align-items:end;padding:14px;
    position:relative;
  }
  .pro-card .photo .badge{
    font-size:11px;font-weight:600;color:#12210E;background:var(--amber);
    padding:4px 9px;border-radius:20px;
  }
  .pro-card .name{font-size:19px;font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;font-weight:700;}
  .pro-card .trade{color:var(--muted);font-size:13.5px;}
  .pro-card .meta{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--paper-dim);margin-top:2px;}
  .pro-card .price{color:var(--amber);font-weight:600;}
  .pro-card .cta{
    margin-top:6px;text-align:center;padding:10px;
    border:1px solid var(--line);font-size:13.5px;color:var(--paper-dim);
    transition:border-color .15s, color .15s;
  }
  .pro-card:hover .cta{border-color:var(--amber);color:var(--paper);}

  /* ---------------- HOW IT WORKS ---------------- */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .step{background:var(--bg-0);padding:36px 30px;}
  .step .n{
    font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;font-size:44px;font-weight:800;color:var(--amber);
    line-height:1;
  }
  .step h3{margin-top:16px;font-size:20px;}
  .step p{margin-top:10px;color:var(--muted);font-size:14.5px;max-width:32ch;}

  /* ---------------- PRO CTA STRIP ---------------- */
  .pro-strip{
    background:var(--bg-1);
    display:grid;grid-template-columns:1.3fr 0.7fr;gap:40px;align-items:center;
    padding:56px 0;
  }
  .pro-strip .inner{padding:0 32px;}
  .pro-strip h2{font-size:32px;max-width:16ch;}
  .pro-strip p{color:var(--paper-dim);margin-top:14px;max-width:44ch;}
  .pro-strip .btns{margin-top:24px;display:flex;gap:14px;}

  /* ---------------- FOOTER ---------------- */
  footer{padding:64px 0 40px;}
  .foot-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px;}
  footer .logo{margin-bottom:14px;}
  footer .foot-desc{color:var(--muted);font-size:14px;max-width:32ch;}
  .foot-col h4{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:16px;font-weight:600;}
  .foot-col a{display:block;font-size:14.5px;color:var(--paper-dim);margin-bottom:11px;}
  .foot-col a:hover{color:var(--amber);}
  .foot-bottom{
    margin-top:56px;padding-top:24px;border-top:1px solid var(--line);
    display:flex;justify-content:space-between;color:var(--muted);font-size:13px;flex-wrap:wrap;gap:10px;
  }

  @media (max-width:960px){
    .hero .wrap{grid-template-columns:1fr;}
    .hero h1{font-size:42px;}
    .cat-grid{grid-template-columns:repeat(2,1fr);}
    .pro-grid{grid-template-columns:1fr;}
    .steps{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;}
    .pro-strip{grid-template-columns:1fr;}
    .nav-links{display:none;}
  }

/* Application components extend the supplied prototype. No third-party assets are requested. */
:root{--muted:#B0C1B2}h1{font-size:clamp(32px,4vw,54px);line-height:1.08}h2{font-size:30px;line-height:1.2;margin-bottom:18px}h3{font-size:21px}p{margin:10px 0 18px}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea{touch-action:manipulation}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--amber);outline-offset:4px}.btn{min-height:44px;justify-content:center;text-align:center;white-space:normal}.btn-amber{color:#102016;border:1px solid var(--amber)}.btn-ghost{background:transparent}input,select,textarea{display:block;width:100%;padding:12px;background:var(--bg-0);color:var(--paper);border:1px solid #63806B;border-radius:2px}select option{background:var(--bg-0)}input[type=checkbox]{width:22px;height:22px;accent-color:var(--amber)}textarea{resize:vertical}label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}fieldset{min-width:0}legend{padding:0 8px}.language{display:flex;align-items:center;gap:3px}.language-button{background:none;border:0;padding:9px 5px;min-height:44px;color:var(--muted)}.language-button.chosen{color:var(--amber);font-weight:bold}.account-bar{border-bottom:1px solid var(--line);background:var(--bg-1)}.account-links{display:flex;gap:22px;align-items:center;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;font-size:14px}.link-button{border:0;background:none;padding:0}.skip{position:absolute;left:8px;top:-100px;z-index:99;background:var(--amber);color:#102016;padding:10px}.skip:focus{top:8px}.search-panel select{border:0;background:transparent;padding:0;font-size:14px;min-height:32px}.search-panel input{border:0;min-height:32px}.search-panel .btn{align-self:stretch}.hero h1{font-size:clamp(42px,5vw,68px);max-width:12ch;line-height:1.02}.house-art svg{width:100%;height:235px;stroke:var(--amber);fill:none;stroke-width:2}.house-art .detail{stroke:var(--line);stroke-dasharray:4;stroke-width:1}.workflow-pills{display:flex;gap:8px;flex-wrap:wrap}.workflow-pills span{font-size:12px;background:var(--bg-2);padding:8px}.category-number{font-size:24px;color:var(--amber);font-family:monospace}.initials{position:absolute;right:24px;top:0;font-size:92px;font-weight:bold;color:#4A7255;letter-spacing:-8px}.photo .badge{position:relative}.empty{padding:36px;border:1px dashed #63806B;grid-column:1/-1}.empty h3{margin-bottom:15px}.empty .btn{margin-top:14px}.muted{color:var(--muted)}.amber{color:var(--amber)}.small{font-size:13px}.panel{padding:28px;background:var(--bg-1);border:1px solid var(--line);margin:24px 0}.narrow{max-width:740px}.two-col{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px;align-items:start}.split{display:flex;gap:22px;align-items:center;justify-content:space-between;flex-wrap:wrap}.form-stack{display:flex;flex-direction:column;gap:18px}.form-stack .btn{align-self:start}.form-field .help{font-size:13px;color:var(--muted);margin-top:6px}.help ul{padding-left:20px}.errorlist{color:#FFB5A8;padding-left:20px}.errorlist li{margin:5px 0}.text-link{color:var(--amber);text-decoration:underline;text-underline-offset:4px}.status-pill{font-size:13px;display:inline-block;background:#243F2C;color:#D4E9C7;padding:6px 12px;border:1px solid #54725D;border-radius:30px;white-space:nowrap}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.profile-heading{display:flex;gap:20px;align-items:center;margin:36px 0}.profile-heading h1{font-size:42px}.booking-panel{position:sticky;top:115px}.results-heading{margin-top:34px}.results-heading form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.results-heading select{width:auto}.job-row{display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center}.job-row:hover{border-color:var(--amber)}.job-row p{margin:5px 0}.alerts{padding-top:20px}.alert{padding:18px;border:1px solid #7D9E82;background:var(--bg-1)}.alert.error{border-color:#D88A76}dl{display:grid;grid-template-columns:minmax(100px,1fr) minmax(150px,2fr);gap:12px 20px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.table-scroll{overflow-x:auto;margin:24px 0}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:14px;border:1px solid var(--line);vertical-align:top}th{background:var(--bg-2);font-size:13px}td{font-size:14px}.pagination{margin-top:32px;justify-content:center;gap:24px}.pro-join{background:var(--bg-1)}.pro-join h2{max-width:18ch;font-size:42px}.pro-join p{max-width:50ch}.invoice-wrap{max-width:960px}.invoice-paper{background:#FFFDF7;color:#17281D;padding:48px}.invoice-paper h1,.invoice-paper h2,.invoice-paper h3{color:#17281D}.invoice-paper dt{color:#4C5F50}.invoice-paper th{background:#E4EBE3}.invoice-paper td,.invoice-paper th{border-color:#BDCABD}.invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:32px}.totals{margin-left:auto;max-width:350px}.totals dd{text-align:right}.mono{font-family:monospace}.cancellation{margin-top:28px}.line-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.line-form .form-field:first-of-type{grid-column:1/-1}.invoice-paper .status-pill{color:#17281D;background:#E4EBE3}
@media(max-width:700px){.wrap{padding-left:18px;padding-right:18px}nav{flex-wrap:wrap;gap:10px;padding:16px 0}.logo{font-size:25px}.nav-actions{gap:8px}.nav-actions .btn{font-size:12px;padding:8px}.hero{padding:48px 0}.hero .wrap{gap:30px}.hero h1{max-width:15ch}.search-panel{flex-direction:column;align-items:stretch}.search-field{border:0;width:100%;padding:12px}.search-panel .btn{width:100%}.section{padding:44px 0}.section-head{margin-bottom:24px}.two-col{grid-template-columns:1fr;gap:12px}.booking-panel{position:static}.profile-heading h1{font-size:30px}.panel{padding:20px}.account-links{gap:14px;font-size:13px}.job-row{grid-template-columns:1fr auto}.job-row>span:last-child{display:none}.invoice-paper{padding:22px}.invoice-parties{grid-template-columns:1fr;gap:8px}.line-form{grid-template-columns:1fr}.foot-grid{gap:20px}.category-number{font-size:19px}.cat-card{padding:23px 16px}.pro-join h2{font-size:34px}.trust-row{gap:20px}.trust-row .num{font-size:25px}.hero .search-panel{display:flex}}
@media print{header,footer,.account-bar,.no-print,.alerts,.skip{display:none!important}body{background:white;color:black}.section{padding:0;border:0}.wrap{max-width:none;padding:0}.invoice-paper{padding:0;background:white;color:black;font-size:11pt}.invoice-paper h1{font-size:25pt}.table-scroll{overflow:visible}table{page-break-inside:auto}tr{break-inside:avoid}thead{display:table-header-group}.invoice-paper .status-pill{border:1px solid #999}.invoice-paper h3{break-after:avoid}a{text-decoration:none}}

/* Public information pages and the professional invitation. */
.professional-invitation{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:80px;align-items:center;max-width:1140px}
.invitation-copy h2{font-size:clamp(32px,4vw,46px);max-width:17ch;line-height:1.2}
.public-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
.booking-growth{position:relative;border:1px solid var(--line);padding:32px;max-width:340px}
.booking-growth:before,.booking-growth:after{content:"";position:absolute;width:18px;height:18px;border-color:var(--amber)}
.booking-growth:before{top:-1px;left:-1px;border-top:1px solid var(--amber);border-left:1px solid var(--amber)}
.booking-growth:after{bottom:-1px;right:-1px;border-bottom:1px solid var(--amber);border-right:1px solid var(--amber)}
.booking-growth h3{font-family:inherit;font-size:20px;font-weight:500;line-height:1.5}
.booking-growth p{color:var(--muted)}
.booking-growth .growth-value{font-size:50px;font-weight:700;line-height:1.1;color:var(--amber);margin:28px 0 16px}
.booking-growth .growth-detail{font-size:12px;line-height:1.6;margin-bottom:0}
.information-page{max-width:880px}.information-page h1{margin-bottom:24px}.information-page .lede{max-width:65ch}
.information-section{margin:36px 0}.information-section h2,.company-details h2{font-size:25px}.information-section p{line-height:1.8}
.company-details{border-top:1px solid var(--line);padding-top:28px;margin-top:40px}.company-details dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px}.company-details dd{margin:0}.company-details address{font-style:normal;line-height:1.7}
@media(max-width:700px){.professional-invitation{grid-template-columns:1fr;gap:32px}.booking-growth{max-width:none}.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}.foot-bottom{flex-direction:column;gap:12px}.company-details dl{grid-template-columns:1fr;gap:6px}.company-details dd{margin-bottom:12px}}

fieldset{min-width:0}input[type=checkbox]{display:inline-block;margin-right:8px}fieldset.panel{padding:18px}details summary{cursor:pointer;margin-bottom:16px}.panel{overflow-wrap:anywhere}
.password-control{position:relative}.password-control input{padding-right:54px}.password-eye{position:absolute;right:3px;top:3px;bottom:3px;width:44px;min-height:44px;border:1px solid #63806B;border-radius:2px;background:#142B1E;color:#F4F1DF;display:flex;align-items:center;justify-content:center}.password-eye:hover{background:#254532}.password-eye[aria-pressed=true]{background:#142B1E;color:#E7A33E;border-color:#E7A33E}.password-eye svg{flex:none;stroke:currentColor}.password-eye:focus-visible{outline:3px solid #E7A33E;outline-offset:2px}


/* Separate the FAQ heading from the preceding bordered guidance cards. */
.home-questions-title{margin-top:48px}
@media(max-width:700px){.home-questions-title{margin-top:32px}}

#registration-errors{border:2px solid #FFB5A8;padding:20px;color:#FFB5A8}
#registration-errors h2{font-size:22px;margin-bottom:12px}
#registration-errors a{text-decoration:underline;text-underline-offset:3px}
#registration-errors ul{padding-left:20px}
.form-field [aria-invalid="true"]{border:2px solid #FFB5A8}

/* Keep native date/time controls readable and within narrow mobile panels. */
input[type="date"],input[type="time"],input[type="datetime-local"]{color-scheme:dark;min-width:0;max-width:100%;min-height:48px;color:#F4F1DF}
input::-webkit-date-and-time-value{text-align:left;min-height:1.5em}
.working-calendar .two-col>div,.working-calendar .form-field{min-width:0}
#calendar-exceptions .help{line-height:1.6}
@media(max-width:700px){.working-calendar .panel h2{font-size:26px}.working-calendar .panel{padding:20px}}

/* Company logos preserve source transparency and proportions, without a white matte. */
.company-avatar{width:96px;height:96px;object-fit:contain;border-radius:12px;padding:6px;background:#203B2B;flex-shrink:0;border:1px solid var(--line)}
.pro-card .photo{background:linear-gradient(155deg,#294634,#1B3324);overflow:hidden;border:1px solid rgba(200,220,197,.12)}
.pro-card .photo .company-card-image{position:absolute;inset:12px;width:calc(100% - 24px);height:calc(100% - 24px);object-fit:contain;background:transparent}
.pro-card .verification-line{display:flex;align-items:center;min-height:25px}
.pro-card .verification-line .badge{display:inline-flex;align-items:center;padding:4px 9px;font-size:11px;font-weight:600;border-radius:20px;color:#12210E;background:var(--amber);line-height:1.35}


/* Human-first homepage photography. Clear overlays keep the old design system. */
.hero-photo{min-width:0;isolation:isolate;border:1px solid var(--line);background:var(--bg-2);overflow:hidden;min-height:485px;display:flex;align-items:flex-end}
.hero-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.hero-photo:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 22%,rgba(7,24,15,.44) 53%,rgba(7,24,15,.96) 100%)}
.hero-photo-caption{padding:30px;width:100%}
.hero-photo-caption .hero-photo-eyebrow{display:block;color:#F1B65D;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}
.hero-photo-caption h2{font-size:clamp(25px,2.4vw,34px);line-height:1.12;margin:0}
.hero-photo-caption p{font-size:14px;color:#F1F4EC;max-width:42ch;margin:9px 0 15px}
.hero-photo-caption .workflow-pills{margin-top:10px}
.hero-photo-caption .workflow-pills span{background:rgba(12,34,23,.84);border:1px solid rgba(255,255,255,.22);color:var(--paper)}
@media(max-width:900px){.hero-photo{min-height:420px}.hero-photo-caption{padding:22px}}
@media(max-width:700px){.hero-photo{min-height:335px}.hero-photo>img{object-position:center 45%}}

/* Photo categories: all services receive the same quiet, navigable image treatment. */
.cat-card{min-width:0;gap:13px;overflow:hidden;align-content:start}
.cat-card .cat-photo{height:146px;display:block;position:relative;overflow:hidden;background:linear-gradient(135deg,#2E4D39,#172D20);margin:-30px -24px 7px}
.cat-card .cat-photo:after{content:"";position:absolute;inset:0;border-bottom:1px solid rgba(255,255,255,.10);background:linear-gradient(0deg,rgba(6,26,15,.16),transparent 65%);pointer-events:none}
.cat-card .cat-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.03);transition:transform .25s ease}
.cat-card:hover .cat-photo img{transform:scale(1.045)}
.cat-card .category-number{line-height:1.1}
.cat-card .count{line-height:1.5;min-height:2.5em}
@media (prefers-reduced-motion:reduce){.cat-card .cat-photo img{transition:none}.cat-card:hover .cat-photo img{transform:none}}
/* A second human moment makes the process tangible without copying Remppatori. */
.how-photo-feature{position:relative;border:1px solid var(--line);height:250px;overflow:hidden;background:var(--bg-2);margin:0 0 26px}
.how-photo-feature img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 44%}
.how-photo-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,28,17,.94),rgba(8,28,17,.50) 44%,transparent 82%);pointer-events:none}
.how-photo-copy{position:absolute;z-index:1;left:32px;top:50%;transform:translateY(-50%);max-width:410px}
.how-photo-copy span{font-size:13px;color:#F2B45C;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.how-photo-copy p{font-size:clamp(19px,2vw,27px);color:var(--paper);font-family:'Arial Narrow','Liberation Sans Narrow',Arial,sans-serif;font-weight:700;line-height:1.25;margin:12px 0 0}
@media(max-width:700px){.cat-card .cat-photo{height:128px;margin:-23px -16px 3px}.cat-card .count{font-size:12px}.how-photo-feature{height:260px}.how-photo-copy{left:20px;right:20px;max-width:300px}.how-photo-feature:after{background:linear-gradient(90deg,rgba(8,28,17,.91),rgba(8,28,17,.35))}}

/* Public project pictures are separate from the private job-photo flow. */
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 8px}
.portfolio-item{margin:0;min-width:0;background:var(--bg-2);border:1px solid var(--line);overflow:hidden}
.portfolio-item img{display:block;width:100%;height:170px;object-fit:cover;background:linear-gradient(135deg,#2C4E37,#132A1C)}
.portfolio-item figcaption,.portfolio-item>p{padding:0 12px;overflow-wrap:anywhere}
.portfolio-item figcaption{padding:10px 12px}
.portfolio-item form{padding:0 10px 12px;margin-top:10px}
.portfolio-item form .btn{width:100%}
.portfolio-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.5;cursor:pointer}
.portfolio-consent input{margin:3px 0 0;flex:none}
.portfolio-public{margin:30px 0}
.portfolio-public h2{margin-bottom:4px}
.portfolio-manage .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.portfolio-grid,.portfolio-manage .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-item img{height:135px}}
@media(max-width:430px){.portfolio-grid,.portfolio-manage .portfolio-grid{grid-template-columns:1fr}.portfolio-item img{height:215px}}

/* The original blueprint house now anchors the professional sign-up section. */
.pro-join-house{
  min-width:0;
  min-height:305px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  border:1px solid var(--line);
  background:radial-gradient(ellipse at 50% 45%,#284633 0%,var(--bg-1) 68%);
}
.pro-join-house .house-art{width:100%;max-width:390px}
.pro-join-house .house-art svg{display:block;width:100%;height:auto;max-height:250px;stroke:var(--amber);fill:none;stroke-width:2}
.pro-join-house .house-art .detail{stroke:#52745A;stroke-width:1;stroke-dasharray:4 4}
@media(max-width:700px){
  .pro-join-house{min-height:215px;padding:24px}
  .pro-join-house .house-art{max-width:300px}
  .pro-join-house .house-art svg{max-height:195px}
}

/* Service category landing pages: results first, guidance second. */
.section.service-landing{padding-top:48px}
.service-breadcrumb{font-size:14px;color:var(--paper-dim);margin:0 0 24px}
.service-intro{max-width:880px}
.service-intro .lede{margin-bottom:0}
.service-results{margin-top:44px}
.service-results-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.service-results-top h2{margin:0 0 8px}
.service-results-top p{margin:0;color:var(--paper-dim)}
.service-results-top .btn{flex-shrink:0}
.service-results .pro-grid>p{grid-column:1/-1;border:1px solid var(--line);background:var(--bg-1);padding:28px;margin:0}
.service-guidance{border-top:1px solid var(--line);margin-top:72px;padding-top:36px}
.service-guidance>h2{margin-bottom:24px}
.service-guidance .two-col{gap:28px}
.service-guidance .panel{margin:0}
.service-guidance .panel h3{font-size:23px;margin:0 0 12px}
.service-guidance .panel p+h3{margin-top:26px}
.service-faq{margin-top:28px}
@media(max-width:700px){
  .section.service-landing{padding-top:28px}
  .service-results{margin-top:32px}
  .service-results-top{align-items:stretch}
  .service-results-top .btn{width:100%}
  .service-guidance{margin-top:48px;padding-top:24px}
  .service-guidance .two-col{gap:16px}
}

/* Required-field convention: accessible native validation and understated UI. */
.required-marker{color:var(--amber);font-weight:700}
.required-fields-note{color:var(--paper-dim);font-size:13px;line-height:1.5;margin:0 0 10px}
.form-stack>.required-fields-note{align-self:stretch}

/* Job workflow clarity and accessible, separated time recording controls. */
.active-role{display:inline-flex;align-items:center;border:1px solid #65816c;border-radius:100px;padding:6px 12px;color:#eaf2e5;background:#25432f;font-size:13px;font-weight:700;white-space:nowrap}
.role-context{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--amber);margin:0 0 7px}
.job-parties{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:16px;row-gap:8px;margin:16px 0}
.job-parties dt{font-weight:700;color:var(--paper-dim)}
.job-parties dd{margin:0;overflow-wrap:anywhere}
.message-role{font-size:12px;color:var(--amber);font-weight:600;margin-left:5px}
.actual-time .form-field:has(input[name^="start_"]),.actual-time .form-field:has(input[name^="end_"]){min-width:0}
.actual-time .form-field input[type="date"],.actual-time .form-field input[type="time"]{display:inline-block;width:calc(50% - 8px);min-width:145px;vertical-align:middle;margin:6px 8px 6px 0}
.actual-time .form-field input[type="time"]{margin-right:0}
@media(max-width:560px){.active-role{font-size:12px;padding:5px 9px}.actual-time .form-field input[type="date"],.actual-time .form-field input[type="time"]{display:block;width:100%;margin:7px 0}.job-parties{column-gap:10px}}
