/* ============================================================
   Contact / Estimate / Careers — clean, modern form experience
   Loaded only on those three pages (see render.php).
   One idea per screen: compact hero, calm intro, one focused card.
   ============================================================ */

/* ---------- Compact hero (contact + estimate) ---------- */
.page-contact .inner-hero-clean .inner-hero-grid,
.page-estimate .inner-hero-clean .inner-hero-grid{min-height:0!important;padding-top:8px!important;padding-bottom:20px!important}
.page-contact .inner-hero-clean .inner-hero-copy,
.page-estimate .inner-hero-clean .inner-hero-copy{max-width:760px!important;padding:12px 0 8px!important}
.page-contact .inner-hero-clean h1,.page-estimate .inner-hero-clean h1{font-size:clamp(40px,5vw,68px)!important;line-height:1!important;letter-spacing:-.05em!important}
.page-contact .inner-hero-clean .inner-hero-copy>p,.page-estimate .inner-hero-clean .inner-hero-copy>p{max-width:560px;font-size:17px;line-height:1.7}
.page-careers .careers-copy h1{max-width:14ch}
.page-careers .careers-hero .careers-copy h1 em{color:#91ff57!important}

/* ---------- Form section ---------- */
body .contact-section{position:relative;overflow:clip;padding:88px 0 112px!important;background:var(--paper)!important}
body .contact-section:before{content:"";position:absolute;right:-180px;top:-120px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(145,255,87,.22),transparent 65%);pointer-events:none}
body .contact-layout{position:relative;display:grid!important;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr)!important;gap:72px!important;align-items:start!important}

/* left intro: no box, just typography */
body .contact-copy{position:sticky;top:104px;padding:0!important;background:none!important;box-shadow:none!important;border:0!important;color:var(--ink)!important}
body .contact-copy .eyebrow{color:#5f7f4c!important}
body .contact-copy h2{font-size:clamp(32px,3.4vw,50px)!important;line-height:1.04!important;letter-spacing:-.045em!important;color:var(--ink)!important;margin:12px 0 18px!important;max-width:16ch}
body .contact-copy>p{font-size:16.5px!important;line-height:1.75!important;color:#5d6470!important;max-width:440px}
body .contact-points{display:grid;gap:0;margin:30px 0 26px!important;border-top:1px solid var(--line)}
body .contact-points div{position:relative;padding:18px 0 18px 30px!important;background:none!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important}
body .contact-points div:before{content:"";position:absolute;left:0;top:23px;width:16px;height:16px;border-radius:50%;background:#91ff57}
body .contact-points div:after{content:"";position:absolute;left:5px;top:28px;width:6px;height:3px;border-left:2px solid #0b1608;border-bottom:2px solid #0b1608;transform:rotate(-45deg)}
body .contact-points b{display:block;font-size:15.5px!important;color:var(--ink)!important;margin-bottom:3px;letter-spacing:-.01em}
body .contact-points span{display:block;font-size:14px!important;line-height:1.6!important;color:#69707b!important}
body .contact-copy>a{display:inline-flex;align-items:center;gap:8px;margin:0 22px 8px 0;font-size:15px;font-weight:800;color:var(--ink)!important;padding:0;border:0}
body .contact-copy>a:not(.contact-estimate-link){border-bottom:2px solid #91ff57;padding-bottom:2px}
body .contact-copy>a:hover{color:#4d6b3a!important}
body .contact-estimate-link{color:#4d6b3a!important}

/* form card */
body .project-form{padding:48px 48px 40px!important;border-radius:28px!important;background:#fff!important;border:1px solid rgba(17,21,33,.08)!important;box-shadow:0 2px 4px rgba(15,20,30,.03),0 40px 90px rgba(15,20,30,.09)!important}
body .project-form-header{display:block!important;padding:0 0 26px!important;margin:0 0 6px!important;border:0!important}
body .project-form-header-mark,body .project-form-eyebrow{display:none!important}
body .project-form-header h3{font-size:clamp(24px,2.2vw,30px)!important;letter-spacing:-.04em;margin:0 0 6px!important}
body .project-form-header p{margin:0!important;font-size:15px;color:#69707b}
body .project-form .form-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:22px 20px!important}
body .project-form .form-grid .full,body .project-form .full{grid-column:1/-1}
body .project-form label>span:first-child{display:block;font-size:13px!important;font-weight:700!important;color:#2a303b!important;margin-bottom:8px!important}
body .project-form input:not([type=checkbox]):not([type=radio]),body .project-form select,body .project-form textarea{width:100%;min-height:54px;padding:14px 16px!important;border:1px solid rgba(17,21,33,.14)!important;border-radius:14px!important;background-color:#fff!important;font:inherit;font-size:15.5px;color:var(--ink);box-shadow:none!important;transition:border-color .2s ease,box-shadow .2s ease}
body .project-form textarea{min-height:150px;line-height:1.65;resize:vertical}
body .project-form select{appearance:none;-webkit-appearance:none;padding-right:46px!important;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1.5l6 6 6-6' stroke='%23111521' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 18px center!important}
body .project-form input::placeholder,body .project-form textarea::placeholder{color:#a2a7ae}
body .project-form input:hover,body .project-form select:hover,body .project-form textarea:hover{border-color:rgba(17,21,33,.3)!important}
body .project-form input:focus,body .project-form select:focus,body .project-form textarea:focus{outline:0;border-color:var(--ink)!important;box-shadow:0 0 0 4px rgba(145,255,87,.4)!important}
body .project-form .consent{display:flex!important;flex-direction:row!important;gap:12px;align-items:flex-start;margin-top:22px!important;padding:0!important;background:none!important;border:0!important;font-size:13.5px;line-height:1.6;color:#5d6470}
body .project-form .consent input{flex:0 0 20px;width:20px!important;height:20px;min-height:0!important;margin:2px 0 0!important;padding:0!important;accent-color:#111521}
body .project-form .consent a,body .project-form .form-note a{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:2px}
body .project-form button[type=submit],body .project-form>.button-accent{width:100%;min-height:58px;margin-top:24px;border:0!important;font-size:16px;font-weight:800;box-shadow:none!important;transition:background .25s ease,color .25s ease,transform .25s ease}
body .project-form button[type=submit]:hover{background:var(--ink)!important;color:#fff!important;transform:translateY(-2px)}
body .project-form .form-note{margin:16px 0 0!important;font-size:12.5px!important;line-height:1.6;color:#7a8088!important;text-align:center}
body .project-form .form-alert{border-radius:14px;margin-bottom:22px}

/* ---------- Careers: why-join cards ---------- */
.page-careers .cards-section p{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important}

/* ---------- Estimate: single focused column ---------- */
body .estimate-section .estimate-guide{display:none!important}
body .estimate-section .estimate-layout{grid-template-columns:minmax(0,860px)!important;justify-content:center;gap:22px!important}
body .estimate-section .project-form{padding:44px 48px 40px!important}
.fx-assure{margin:0;text-align:center;font-size:13.5px;line-height:1.7;color:#69707b}
.fx-assure a{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:2px}

/* stepper */
.fx-progress{list-style:none;counter-reset:fxs;display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 38px;padding:0}
.fx-progress li{counter-increment:fxs;position:relative;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:#9aa0a8;white-space:nowrap}
.fx-progress li:before{content:counter(fxs);flex:0 0 32px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(17,21,33,.18);background:#fff;font-size:12.5px;font-weight:800;color:#9aa0a8;transition:all .3s ease}
.fx-progress li:after{content:"";flex:1;height:2px;margin:0 14px 0 4px;background:rgba(17,21,33,.1);border-radius:2px}
.fx-progress li:last-child{flex:none}
.fx-progress li:last-child:after{display:none}
/* current */
.estimate-form:has([data-estimate-step="1"]:not([hidden])) .fx-progress li:nth-child(1),
.estimate-form:has([data-estimate-step="2"]:not([hidden])) .fx-progress li:nth-child(2),
.estimate-form:has([data-estimate-step="3"]:not([hidden])) .fx-progress li:nth-child(3),
.estimate-form:has([data-estimate-step="4"]:not([hidden])) .fx-progress li:nth-child(4){color:var(--ink)}
.estimate-form:has([data-estimate-step="1"]:not([hidden])) .fx-progress li:nth-child(1):before,
.estimate-form:has([data-estimate-step="2"]:not([hidden])) .fx-progress li:nth-child(2):before,
.estimate-form:has([data-estimate-step="3"]:not([hidden])) .fx-progress li:nth-child(3):before,
.estimate-form:has([data-estimate-step="4"]:not([hidden])) .fx-progress li:nth-child(4):before{background:var(--ink);border-color:var(--ink);color:#fff}
/* done */
.estimate-form:has([data-estimate-step="2"]:not([hidden])) .fx-progress li:nth-child(-n+1):before,
.estimate-form:has([data-estimate-step="3"]:not([hidden])) .fx-progress li:nth-child(-n+2):before,
.estimate-form:has([data-estimate-step="4"]:not([hidden])) .fx-progress li:nth-child(-n+3):before{content:"✓";background:#91ff57;border-color:#91ff57;color:#0b1608}
.estimate-form:has([data-estimate-step="2"]:not([hidden])) .fx-progress li:nth-child(-n+1):after,
.estimate-form:has([data-estimate-step="3"]:not([hidden])) .fx-progress li:nth-child(-n+2):after,
.estimate-form:has([data-estimate-step="4"]:not([hidden])) .fx-progress li:nth-child(-n+3):after{background:#91ff57}
.estimate-form:has([data-estimate-step="2"]:not([hidden])) .fx-progress li:nth-child(-n+1),
.estimate-form:has([data-estimate-step="3"]:not([hidden])) .fx-progress li:nth-child(-n+2),
.estimate-form:has([data-estimate-step="4"]:not([hidden])) .fx-progress li:nth-child(-n+3){color:#4d6b3a}

/* step heading */
body .estimate-step-heading{margin-bottom:26px}
body .estimate-step-heading span{font-size:11.5px!important;font-weight:800;letter-spacing:.16em;color:#5f7f4c!important}
body .estimate-step-heading h3{font-size:clamp(26px,2.6vw,34px)!important;letter-spacing:-.045em;margin:8px 0 8px!important}
body .estimate-step-heading p{font-size:15.5px;line-height:1.7;color:#69707b!important;margin:0!important;max-width:560px}

/* project choices: clean selectable cards */
body .estimate-project-choices{display:grid!important;grid-template-columns:1fr 1fr;gap:12px!important;border:0;padding:0;margin:0 0 28px}
body .estimate-project-choice{position:relative;display:block!important;min-height:0!important;padding:20px 22px!important;border:1px solid rgba(17,21,33,.12)!important;border-radius:16px!important;background:#fff!important;cursor:pointer;transition:border-color .2s ease,box-shadow .25s ease,transform .25s ease,background .2s ease}
body .estimate-project-choice:hover{border-color:rgba(17,21,33,.4)!important;transform:translateY(-2px)}
body .estimate-project-choice.is-selected,body .estimate-project-choice:has(input:checked){border-color:var(--ink)!important;background:#f7fff1!important;box-shadow:0 0 0 1px var(--ink)}
body .estimate-project-choice input{position:absolute;opacity:0;pointer-events:none}
body .estimate-choice-mark{position:absolute;right:18px;top:18px;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(17,21,33,.25);transition:all .2s ease}
body .estimate-project-choice:has(input:checked) .estimate-choice-mark{background:#91ff57;border-color:var(--ink)}
body .estimate-project-choice:has(input:checked) .estimate-choice-mark:after{content:"";position:absolute;left:6px;top:5px;width:7px;height:4px;border-left:2px solid #0b1608;border-bottom:2px solid #0b1608;transform:rotate(-45deg)}
body .estimate-choice-copy{display:block!important;padding-right:30px}
body .estimate-choice-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}
body .estimate-choice-meta small{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7c8279;background:none;padding:0}
body .estimate-choice-meta b{font-size:10px;font-weight:800;padding:3px 9px;border-radius:999px;background:#91ff57;color:#0b1608}
body .estimate-project-choice strong{display:block;font-size:17px;line-height:1.3;letter-spacing:-.02em;margin:0 0 5px}
body .estimate-choice-description{font-size:13.5px;line-height:1.55;color:#69707b}
body .estimate-choice-arrow{display:none!important}
body .estimate-step-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-top:28px}
body .estimate-step-actions .button-outline{border:0!important;background:none!important;color:#5d6470!important;padding-left:0}
body .estimate-step-actions .button-outline:hover{color:var(--ink)!important}
body .estimate-step>.button-accent,body .estimate-step-actions .button-accent{min-height:54px;padding:0 28px;border:0!important;box-shadow:none!important}
body .estimate-step>.button-accent:hover,body .estimate-step-actions .button-accent:hover{background:var(--ink)!important;color:#fff!important}
body .estimate-form button[type=submit]{width:auto;margin-top:0}

/* scope fields + features */
body .estimate-scope-fields:not([hidden]){display:grid!important;grid-template-columns:1fr 1fr;gap:22px 20px}
body .estimate-scope-fields>label:only-child{grid-column:1/-1}
body .estimate-features{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:0}
body .estimate-features legend{font-size:13px;font-weight:700;margin-bottom:12px;padding:0;color:#2a303b}
body .estimate-features label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px;text-align:left;padding:14px 16px;border:1px solid rgba(17,21,33,.12);border-radius:14px;background:#fff;font-size:14.5px;cursor:pointer;transition:border-color .2s ease,background .2s ease}
body .estimate-features label:hover{border-color:rgba(17,21,33,.4)}
body .estimate-features label:has(input:checked){border-color:var(--ink);background:#f7fff1}
body .estimate-features input{flex:0 0 18px;width:18px!important;height:18px;min-height:0!important;padding:0!important;accent-color:#111521}
body .estimate-mobile-bundle{border:1px dashed rgba(17,21,33,.25);border-radius:16px;padding:18px 20px;background:#f7fff1;margin:0}
body .estimate-mobile-bundle legend{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#4d6b3a;padding:0 8px}
body .estimate-mobile-bundle-choice{display:flex!important;flex-direction:row!important;gap:14px;align-items:flex-start;text-align:left;cursor:pointer}
body .estimate-mobile-bundle-choice input{flex:0 0 20px;width:20px!important;height:20px;min-height:0!important;margin-top:3px;padding:0!important;accent-color:#111521}
body .estimate-mobile-bundle-choice strong{display:block;font-size:16px;margin-bottom:4px}
body .estimate-mobile-bundle-choice small{display:block;font-size:13.5px;line-height:1.6;color:#69707b}

/* result */
body .estimate-form .estimate-result{margin:0 0 26px;padding:30px 32px!important;border:0!important;border-radius:20px!important;background:#0a0e17!important;color:#fff!important}
body .estimate-form .estimate-result>div>span{font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#91ff57!important}
body .estimate-form .estimate-result strong[data-estimate-range]{display:block;font-size:clamp(34px,4.4vw,56px);letter-spacing:-.05em;line-height:1.05;margin:10px 0 4px;color:#fff!important}
body .estimate-form .estimate-result small,body .estimate-form .estimate-result p{color:rgba(255,255,255,.68)!important}
body .estimate-form .estimate-result ul{border-top-color:rgba(255,255,255,.14)!important}
body .estimate-form .estimate-result li{color:rgba(255,255,255,.78)!important;border-color:rgba(255,255,255,.1)!important}
body .estimate-form .estimate-result li b,body .estimate-form .estimate-result li strong{color:#fff!important}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  body .contact-layout{grid-template-columns:1fr!important;gap:40px!important}
  body .contact-copy{position:static}
  body .contact-copy h2{max-width:none}
  body .contact-section{padding:64px 0 80px!important}
}
@media(max-width:640px){
  body .project-form,body .estimate-section .project-form{padding:28px 20px 26px!important;border-radius:22px!important}
  body .project-form input:not([type=checkbox]):not([type=radio]),body .project-form select,body .project-form textarea{font-size:16px!important}
  body .project-form .form-grid,body .estimate-scope-fields:not([hidden]){grid-template-columns:1fr}
  body .estimate-project-choices,body .estimate-features{grid-template-columns:1fr}
  .fx-progress li{font-size:0;gap:0}
  .fx-progress li:after{margin:0 6px}
  .fx-progress li:before{font-size:12.5px}
  body .estimate-step-actions{flex-direction:column-reverse;align-items:stretch}
  body .estimate-step-actions .button{width:100%;justify-content:center}
  body .estimate-step>.button-accent{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  body .estimate-project-choice,body .project-form button[type=submit]{transition:none}
}

/* ---------- Tightening ---------- */
.page-contact .inner-hero-clean h1,.page-estimate .inner-hero-clean h1{max-width:none!important}
.page-contact .inner-hero-clean,.page-estimate .inner-hero-clean{min-height:0!important;padding-top:132px!important;padding-bottom:56px!important}
.page-contact .inner-hero-clean .inner-hero-grid,.page-estimate .inner-hero-clean .inner-hero-grid{padding:0!important}
body .contact-copy{align-self:start!important;margin:0!important}
.page-careers body .contact-copy h2,body.page-careers .contact-copy h2{font-size:clamp(28px,2.7vw,38px)!important;max-width:18ch}
body .project-form select,body .project-form input:not([type=checkbox]):not([type=radio]){line-height:1.35!important}
