/* Apex Guided Desk Estimate · DE-03 v2.0 · simplified requester experience */
.desk-intake-page [hidden] { display:none !important; }
.desk-intake-page { background:#050506; }
.desk-main {
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 5%, rgba(196,30,58,.11), transparent 27%),
    radial-gradient(circle at 8% 46%, rgba(255,255,255,.025), transparent 23%),
    #050506;
}
.desk-hero {
  position:relative;
  min-height:560px;
  padding:152px max(5vw,40px) 78px;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);
  align-items:center;
  gap:clamp(44px,7vw,110px);
  border-bottom:1px solid rgba(255,255,255,.08);
  isolation:isolate;
}
.desk-hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(90deg,rgba(5,5,6,.99) 0%,rgba(5,5,6,.92) 57%,rgba(5,5,6,.67) 100%),
    linear-gradient(180deg,transparent 0%,rgba(196,30,58,.04) 74%,rgba(5,5,6,.96) 100%);
}
.desk-hero-grid {
  position:absolute;
  inset:0;
  z-index:-3;
  opacity:.24;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,black 0%,transparent 93%);
}
.desk-hero-copy { max-width:900px; }
.desk-hero h1 {
  margin:0;
  max-width:880px;
  font:600 clamp(49px,7vw,94px)/.96 'Space Grotesk',sans-serif;
  letter-spacing:-.055em;
  text-wrap:balance;
}
.desk-hero-copy > p {
  max-width:780px;
  margin:28px 0 0;
  color:rgba(255,255,255,.65);
  font:300 clamp(17px,1.55vw,21px)/1.65 'IBM Plex Sans',sans-serif;
}
.desk-hero-note {
  width:fit-content;
  max-width:730px;
  margin-top:32px;
  padding:15px 18px;
  display:flex;
  align-items:flex-start;
  gap:13px;
  border:1px solid rgba(52,211,153,.24);
  background:rgba(52,211,153,.038);
}
.desk-hero-note strong,.desk-hero-note span { display:block; }
.desk-hero-note strong {
  margin-bottom:4px;
  color:rgba(255,255,255,.9);
  font:500 10px/1.3 'IBM Plex Mono',monospace;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.desk-hero-note div > span { color:rgba(255,255,255,.52); font:300 13px/1.55 'IBM Plex Sans',sans-serif; }
.desk-house-stage {
  position:relative;
  min-height:400px;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid rgba(255,255,255,.11);
  background:linear-gradient(150deg,rgba(255,255,255,.025),rgba(255,255,255,.006));
  box-shadow:0 30px 80px rgba(0,0,0,.28);
}
.desk-house-stage::before,.desk-house-stage::after {
  content:"";
  position:absolute;
  width:22px;
  height:22px;
  border-color:rgba(230,57,70,.76);
  border-style:solid;
}
.desk-house-stage::before { left:-1px; top:-1px; border-width:2px 0 0 2px; }
.desk-house-stage::after { right:-1px; bottom:-1px; border-width:0 2px 2px 0; }
.desk-house-graphic { width:100%; max-height:315px; overflow:visible; }
.desk-house-graphic path { fill:none; vector-effect:non-scaling-stroke; }
.desk-house-graphic .house-grid path { stroke:rgba(255,255,255,.27); stroke-width:1; }
.desk-house-graphic .house-body path { stroke:rgba(255,255,255,.72); stroke-width:2.1; }
.desk-house-graphic .house-roof { transform-box:fill-box; transform-origin:center bottom; transition:transform .55s cubic-bezier(.2,.75,.2,1),filter .4s ease; }
.desk-house-graphic .house-roof path { stroke:url(#houseGlow); stroke-width:2.6; }
.desk-house-stage:hover .house-roof,.desk-house-stage:focus-within .house-roof { transform:translateY(-22px); filter:drop-shadow(0 12px 12px rgba(230,57,70,.18)); }
.desk-house-graphic .house-measure path { stroke:rgba(52,211,153,.55); stroke-width:1.35; stroke-dasharray:4 4; }
.desk-house-graphic .house-measure text { fill:rgba(52,211,153,.75); font:500 9px 'IBM Plex Mono',monospace; letter-spacing:.18em; text-anchor:middle; }
.desk-house-caption { display:grid; gap:4px; padding:15px 17px 2px; border-top:1px solid rgba(255,255,255,.08); }
.desk-house-caption span { color:var(--apex-red-glow); font:500 9px/1.3 'IBM Plex Mono',monospace; letter-spacing:.18em; }
.desk-house-caption strong { font:500 25px/1.2 'Space Grotesk',sans-serif; }
.desk-house-caption small { color:rgba(255,255,255,.44); font:300 13px/1.5 'IBM Plex Sans',sans-serif; }

.desk-workspace { width:min(1280px,92vw); margin:0 auto; padding:52px 0 110px; }
.desk-progress {
  position:sticky;
  top:0;
  z-index:12;
  margin-bottom:24px;
  padding:15px 19px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(7,8,10,.93);
  backdrop-filter:blur(14px);
  box-shadow:0 12px 36px rgba(0,0,0,.25);
}
.desk-progress-copy { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:10px; color:rgba(255,255,255,.48); font:500 9px/1.2 'IBM Plex Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.desk-progress-track { height:3px; background:rgba(255,255,255,.09); overflow:hidden; }
.desk-progress-track span { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--apex-red),var(--apex-red-glow)); box-shadow:0 0 14px rgba(230,57,70,.5); transition:width .25s ease; }

.desk-form {
  position:relative;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(140deg,rgba(255,255,255,.023),rgba(255,255,255,.006)),#090a0d;
  box-shadow:0 32px 90px rgba(0,0,0,.3);
}
.desk-form::before { content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,var(--apex-red),rgba(230,57,70,.2) 44%,transparent 86%); }
.desk-section { padding:clamp(38px,5vw,66px); }
.desk-section + .desk-section,.desk-section + #scopeSections,#scopeSections + .desk-section,#scopeSections .desk-section + .desk-section { border-top:1px solid rgba(255,255,255,.09); }
.desk-section[hidden],#scopeSections[hidden],.desk-conditional-panel[hidden],.desk-other-field[hidden],.desk-item-panel[hidden],.desk-opening-panel[hidden],.desk-roof-detail[hidden],.desk-site-panel[hidden] { display:none !important; }
.desk-section-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px; align-items:start; margin-bottom:34px; }
.desk-section-heading > div { max-width:920px; }
.desk-section-heading span,.desk-subheading > span { display:block; margin-bottom:11px; color:var(--apex-red-glow); font:500 9px/1.4 'IBM Plex Mono',monospace; letter-spacing:.2em; text-transform:uppercase; }
.desk-section-heading h2 { margin:0; font:500 clamp(31px,3.8vw,50px)/1.08 'Space Grotesk',sans-serif; letter-spacing:-.037em; text-wrap:balance; }
.desk-section-heading p { max-width:850px; margin:15px 0 0; color:rgba(255,255,255,.54); font:300 15px/1.7 'IBM Plex Sans',sans-serif; }
.desk-section-heading > b { color:rgba(255,255,255,.12); font:500 clamp(36px,5vw,64px)/.85 'IBM Plex Mono',monospace; letter-spacing:-.08em; }

.desk-choice-fieldset { border:0; padding:0; margin:0; }
.desk-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.desk-choice-card {
  position:relative;
  min-height:235px;
  padding:27px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:13px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.018);
  cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
  overflow:hidden;
}
.desk-choice-card::before { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(to bottom right,black,transparent 78%); }
.desk-choice-card:hover { transform:translateY(-3px); border-color:rgba(230,57,70,.58); box-shadow:0 14px 36px rgba(0,0,0,.2); }
.desk-choice-card:has(input:checked) { border-color:rgba(52,211,153,.54); background:linear-gradient(145deg,rgba(52,211,153,.06),rgba(255,255,255,.018)); }
.desk-choice-card:has(input:checked)::after { content:""; position:absolute; right:20px; top:20px; width:9px; height:9px; border-radius:50%; background:var(--microbial-glow); box-shadow:0 0 14px rgba(52,211,153,.76); }
.desk-choice-card input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.desk-choice-code { position:relative; color:var(--apex-red-glow); font:500 9px/1.4 'IBM Plex Mono',monospace; letter-spacing:.16em; }
.desk-choice-card strong { position:relative; margin-top:11px; font:500 clamp(24px,2.4vw,32px)/1.1 'Space Grotesk',sans-serif; }
.desk-choice-card > span:nth-of-type(2) { position:relative; color:rgba(255,255,255,.53); font:300 14px/1.65 'IBM Plex Sans',sans-serif; }
.desk-choice-card em { position:relative; margin-top:auto; color:rgba(255,255,255,.33); font:500 9px/1.2 'IBM Plex Mono',monospace; letter-spacing:.13em; text-transform:uppercase; font-style:normal; }
.desk-choice-card:has(input:checked) em { color:var(--microbial-glow); }

.desk-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.desk-field { display:flex; flex-direction:column; gap:9px; min-width:0; }
.desk-field-wide { grid-column:1/-1; }
.desk-field label,.desk-mini-field label,.desk-select-field label {
  color:rgba(255,255,255,.68);
  font:500 10px/1.4 'IBM Plex Mono',monospace;
  letter-spacing:.095em;
  text-transform:uppercase;
}
.desk-field label span,.desk-routing-question h3 span { color:var(--apex-red-glow); }
.desk-field input,.desk-field select,.desk-field textarea,.desk-mini-field input,.desk-mini-field select,.desk-line-input {
  width:100%;
  min-height:52px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:0;
  background:rgba(255,255,255,.023);
  color:rgba(255,255,255,.92);
  padding:13px 14px;
  font:300 16px/1.45 'IBM Plex Sans',sans-serif;
  outline:none;
  color-scheme:dark;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.desk-field textarea { resize:vertical; }
.desk-field input::placeholder,.desk-field textarea::placeholder { color:rgba(255,255,255,.3); }
.desk-field input:focus,.desk-field select:focus,.desk-field textarea:focus,.desk-mini-field input:focus,.desk-mini-field select:focus,.desk-line-input:focus { border-color:rgba(230,57,70,.7); background:rgba(255,255,255,.038); box-shadow:0 0 0 3px rgba(230,57,70,.08); }
.desk-field input[aria-invalid=true],.desk-field select[aria-invalid=true],.desk-field textarea[aria-invalid=true],.desk-mini-field input[aria-invalid=true] { border-color:rgba(230,57,70,.9); box-shadow:0 0 0 2px rgba(230,57,70,.08); }
.desk-check-line { display:flex; align-items:center; min-height:52px; padding:13px 15px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.018); }
.desk-check-line label { display:flex; align-items:center; gap:11px; color:rgba(255,255,255,.66); font:300 14px/1.5 'IBM Plex Sans',sans-serif; }
.desk-check-line input,.desk-inline-options input,.desk-pill-grid input,.desk-structure-card input,.desk-site-options input,.desk-damage-card input,.desk-certify input,.desk-simple-toggle input { width:18px; height:18px; flex:0 0 auto; accent-color:var(--apex-red-glow); }

.desk-question-block,.desk-routing-question {
  margin-top:27px;
  padding:24px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.014);
}
.desk-question-block legend { padding:0 8px; color:rgba(255,255,255,.9); font:500 21px/1.3 'Space Grotesk',sans-serif; }
.desk-question-block > p { margin:3px 0 17px; color:rgba(255,255,255,.48); font:300 14px/1.55 'IBM Plex Sans',sans-serif; }
.desk-inline-options { display:flex; flex-wrap:wrap; gap:11px; }
.desk-inline-options label {
  min-width:118px;
  padding:13px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.018);
  color:rgba(255,255,255,.75);
  font:400 14px/1.4 'IBM Plex Sans',sans-serif;
  cursor:pointer;
}
.desk-inline-options label:has(input:checked) { border-color:rgba(52,211,153,.5); background:rgba(52,211,153,.045); }
.desk-conditional-panel { margin-top:20px; padding:24px; border:1px solid rgba(52,211,153,.22); background:rgba(52,211,153,.025); }

.desk-routing-question { margin-top:0; margin-bottom:18px; }
.desk-routing-question h3 { margin:0 0 18px; font:500 22px/1.25 'Space Grotesk',sans-serif; }
.desk-pill-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }
.desk-pill-grid label { position:relative; min-height:62px; cursor:pointer; }
.desk-pill-grid input { position:absolute; opacity:0; pointer-events:none; }
.desk-pill-grid label > span {
  height:100%;
  padding:15px 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.018);
  color:rgba(255,255,255,.68);
  font:400 14px/1.35 'IBM Plex Sans',sans-serif;
  transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.desk-pill-grid label:hover > span { transform:translateY(-2px); border-color:rgba(230,57,70,.5); box-shadow:0 12px 28px rgba(0,0,0,.18); }
.desk-pill-grid input:checked + span { border-color:rgba(52,211,153,.52); background:rgba(52,211,153,.05); color:#fff; box-shadow:inset 0 0 30px rgba(52,211,153,.035); }
.desk-other-field { margin-top:16px; }
.desk-notes-field { margin-top:22px; }

.desk-structure-selector { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.desk-structure-card {
  position:relative;
  min-height:210px;
  padding:22px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.018);
  cursor:pointer;
  overflow:hidden;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
.desk-structure-card:hover { transform:translateY(-3px); border-color:rgba(230,57,70,.55); box-shadow:0 15px 34px rgba(0,0,0,.2); }
.desk-structure-card.is-active,.desk-structure-card:has(input:checked) { border-color:rgba(52,211,153,.48); background:rgba(52,211,153,.035); }
.desk-structure-card > input { position:absolute; right:17px; top:17px; }
.desk-structure-card strong { margin-top:auto; font:500 23px/1.15 'Space Grotesk',sans-serif; }
.desk-structure-card small { color:rgba(255,255,255,.41); font:300 13px/1.45 'IBM Plex Sans',sans-serif; }
.desk-structure-icon { width:66px; height:66px; display:grid; place-items:center; border:1px solid rgba(230,57,70,.38); color:var(--apex-red-glow); font:500 24px/1 'IBM Plex Mono',monospace; }
.desk-mini-house { width:95px; height:82px; }
.desk-mini-house svg { width:100%; height:100%; overflow:visible; }
.desk-mini-house path { fill:none; stroke:rgba(255,255,255,.65); stroke-width:2; vector-effect:non-scaling-stroke; }
.desk-mini-house .mini-roof { transform-origin:center bottom; transform-box:fill-box; transition:transform .4s ease; }
.desk-structure-card:hover .mini-roof { transform:translateY(-10px); }
.desk-mini-house .mini-roof path { stroke:var(--apex-red-glow); }
.desk-inline-field { margin-top:18px; max-width:600px; }

.desk-measure-callout {
  margin-bottom:22px;
  padding:17px 19px;
  display:flex;
  align-items:center;
  gap:17px;
  border-left:3px solid var(--microbial-glow);
  background:rgba(52,211,153,.04);
}
.desk-measure-callout strong { flex:0 0 auto; color:var(--microbial-glow); font:500 9px/1.2 'IBM Plex Mono',monospace; letter-spacing:.16em; }
.desk-measure-callout span { color:rgba(255,255,255,.62); font:300 14px/1.55 'IBM Plex Sans',sans-serif; }
.desk-tabs { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:20px; }
.desk-tab {
  padding:12px 15px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.018);
  color:rgba(255,255,255,.58);
  font:500 10px/1.2 'IBM Plex Mono',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
}
.desk-tab.is-active { border-color:rgba(52,211,153,.52); background:rgba(52,211,153,.045); color:#fff; }
.desk-stack { display:grid; gap:16px; }
.desk-structure-panel[hidden] { display:none !important; }
.desk-elevation-list { display:grid; gap:16px; }
.desk-elevation-card { border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.012); overflow:hidden; }
.desk-elevation-header {
  width:100%;
  min-height:86px;
  padding:18px 20px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:15px;
  border:0;
  background:linear-gradient(90deg,rgba(255,255,255,.025),rgba(255,255,255,.008));
  color:#fff;
  text-align:left;
  cursor:pointer;
}
.desk-elevation-header:hover { background:linear-gradient(90deg,rgba(230,57,70,.075),rgba(255,255,255,.012)); }
.desk-elevation-number { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(230,57,70,.45); color:var(--apex-red-glow); font:500 11px/1 'IBM Plex Mono',monospace; }
.desk-elevation-title strong { display:block; font:500 22px/1.2 'Space Grotesk',sans-serif; }
.desk-elevation-title span { display:block; margin-top:4px; color:rgba(255,255,255,.42); font:300 12px/1.4 'IBM Plex Sans',sans-serif; }
.desk-elevation-status { display:flex; align-items:center; gap:11px; color:rgba(255,255,255,.45); font:500 9px/1.2 'IBM Plex Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.desk-elevation-status::after { content:"+"; color:var(--apex-red-glow); font-size:19px; }
.desk-elevation-card.is-open .desk-elevation-status::after { content:"−"; }
.desk-elevation-card.is-complete .desk-elevation-status { color:var(--microbial-glow); }
.desk-elevation-body { padding:0 20px 24px; border-top:1px solid rgba(255,255,255,.08); }
.desk-elevation-body[hidden] { display:none; }
.desk-guide-step { padding:24px 0; }
.desk-guide-step + .desk-guide-step { border-top:1px solid rgba(255,255,255,.08); }
.desk-guide-heading { display:grid; grid-template-columns:auto 1fr; gap:13px; align-items:start; margin-bottom:18px; }
.desk-guide-heading b { width:31px; height:31px; display:grid; place-items:center; border-radius:50%; background:rgba(230,57,70,.12); border:1px solid rgba(230,57,70,.38); color:var(--apex-red-glow); font:500 11px/1 'IBM Plex Mono',monospace; }
.desk-guide-heading strong { display:block; font:500 20px/1.25 'Space Grotesk',sans-serif; }
.desk-guide-heading span { display:block; margin-top:4px; color:rgba(255,255,255,.44); font:300 13px/1.5 'IBM Plex Sans',sans-serif; }
.desk-measure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.desk-mini-field { display:flex; flex-direction:column; gap:8px; }
.desk-calc-strip { margin-top:14px; padding:14px 16px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 18px; border:1px solid rgba(52,211,153,.2); background:rgba(52,211,153,.025); }
.desk-calc-strip span { color:rgba(255,255,255,.46); font:400 12px/1.4 'IBM Plex Sans',sans-serif; }
.desk-calc-strip strong { color:var(--microbial-glow); font:500 15px/1.3 'IBM Plex Mono',monospace; }
.desk-simple-toggle { margin-top:15px; padding:13px 15px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.014); }
.desk-simple-toggle label { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.62); font:300 14px/1.45 'IBM Plex Sans',sans-serif; cursor:pointer; }
.desk-gable-fields,.desk-override-fields { margin-top:14px; padding:15px; border:1px dashed rgba(255,255,255,.14); }
.desk-opening-question { margin-bottom:15px; }
.desk-opening-question > strong { display:block; margin-bottom:10px; font:500 16px/1.3 'Space Grotesk',sans-serif; }
.desk-opening-actions { display:flex; gap:9px; }
.desk-opening-actions button {
  min-width:90px;
  padding:11px 14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.018);
  color:rgba(255,255,255,.65);
  font:500 10px/1.2 'IBM Plex Mono',monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.desk-opening-actions button.is-selected { border-color:rgba(52,211,153,.5); background:rgba(52,211,153,.045); color:#fff; }
.desk-opening-panel { margin-top:12px; padding:15px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.012); }
.desk-opening-row { display:grid; grid-template-columns:.7fr 1fr 1fr auto; gap:10px; align-items:end; }
.desk-opening-row + .desk-opening-row { margin-top:10px; }
.desk-row-remove {
  min-width:43px;
  height:52px;
  border:1px solid rgba(230,57,70,.35);
  background:rgba(230,57,70,.035);
  color:var(--apex-red-glow);
  cursor:pointer;
}
.desk-add-row,.desk-add-elevation {
  margin-top:12px;
  padding:11px 14px;
  border:1px solid rgba(230,57,70,.42);
  background:rgba(230,57,70,.03);
  color:#fff;
  font:500 9px/1.2 'IBM Plex Mono',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
}
.desk-add-elevation { width:100%; min-height:58px; margin-top:15px; border-style:dashed; }
.desk-damage-title { margin:0 0 13px; color:rgba(255,255,255,.78); font:500 19px/1.3 'Space Grotesk',sans-serif; }
.desk-damage-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }
.desk-damage-card {
  position:relative;
  min-height:92px;
  padding:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.018);
  cursor:pointer;
  overflow:hidden;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.desk-damage-card::before {
  content:"";
  position:absolute;
  inset:-60% -25%;
  background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.12) 50%,transparent 58%);
  transform:translateX(-65%) rotate(8deg);
  transition:transform .55s ease;
}
.desk-damage-card:hover::before { transform:translateX(65%) rotate(8deg); }
.desk-damage-card:hover { transform:translateY(-3px); border-color:rgba(230,57,70,.62); box-shadow:0 15px 32px rgba(0,0,0,.22),inset 0 0 26px rgba(230,57,70,.035); }
.desk-damage-card:has(input:checked) { border-color:rgba(52,211,153,.52); background:rgba(52,211,153,.045); box-shadow:inset 0 0 30px rgba(52,211,153,.04); }
.desk-damage-card input { position:absolute; opacity:0; }
.desk-damage-card span { position:relative; font:500 15px/1.3 'Space Grotesk',sans-serif; }
.desk-item-panels { display:grid; gap:12px; margin-top:15px; }
.desk-item-panel { padding:18px; border:1px solid rgba(52,211,153,.18); background:rgba(52,211,153,.02); }
.desk-item-panel h4 { margin:0 0 14px; font:500 19px/1.25 'Space Grotesk',sans-serif; }
.desk-item-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.desk-extent-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.desk-extent-options label { position:relative; }
.desk-extent-options input { position:absolute; opacity:0; }
.desk-extent-options span { min-height:51px; padding:12px; display:flex; align-items:center; justify-content:center; text-align:center; border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.62); font:400 13px/1.35 'IBM Plex Sans',sans-serif; cursor:pointer; }
.desk-extent-options input:checked + span { border-color:rgba(52,211,153,.48); background:rgba(52,211,153,.04); color:#fff; }
.desk-required-hint { margin-top:8px; color:rgba(230,57,70,.78); font:400 11px/1.4 'IBM Plex Sans',sans-serif; }

.desk-roof-card { border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.012); }
.desk-roof-card-header { padding:20px; display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; border-bottom:1px solid rgba(255,255,255,.08); }
.desk-roof-icon { width:58px; height:58px; display:grid; place-items:center; border:1px solid rgba(230,57,70,.38); color:var(--apex-red-glow); font:500 10px/1.2 'IBM Plex Mono',monospace; }
.desk-roof-card-header strong { display:block; font:500 23px/1.2 'Space Grotesk',sans-serif; }
.desk-roof-card-header span { display:block; margin-top:4px; color:rgba(255,255,255,.42); font:300 13px/1.4 'IBM Plex Sans',sans-serif; }
.desk-roof-card-body { padding:20px; }
.desk-roof-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.desk-roof-options label { position:relative; }
.desk-roof-options input { position:absolute; opacity:0; }
.desk-roof-options span { height:100%; min-height:66px; padding:13px; display:flex; align-items:center; justify-content:center; text-align:center; border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.58); font:400 13px/1.35 'IBM Plex Sans',sans-serif; cursor:pointer; }
.desk-roof-options input:checked + span { border-color:rgba(52,211,153,.5); background:rgba(52,211,153,.045); color:#fff; }
.desk-roof-detail { margin-top:16px; padding:17px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.012); }
.desk-roof-detail + .desk-roof-detail { margin-top:12px; }
.desk-roof-detail h4 { margin:0 0 14px; font:500 19px/1.3 'Space Grotesk',sans-serif; }

.desk-site-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.desk-site-options label { min-height:86px; padding:14px; display:flex; align-items:center; justify-content:center; gap:9px; text-align:center; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.018); color:rgba(255,255,255,.62); font:400 13px/1.35 'IBM Plex Sans',sans-serif; cursor:pointer; }
.desk-site-options label:has(input:checked) { border-color:rgba(52,211,153,.5); background:rgba(52,211,153,.04); color:#fff; }
.desk-site-panel { margin-top:14px; padding:18px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.012); }
.desk-site-panel h3 { margin:0 0 15px; font:500 20px/1.3 'Space Grotesk',sans-serif; }
.desk-tree-row { display:grid; grid-template-columns:.55fr 1fr 1fr 1fr auto; gap:10px; align-items:end; }
.desk-tree-row + .desk-tree-row { margin-top:10px; }

.desk-support-box { margin-top:23px; padding:22px; display:flex; align-items:center; justify-content:space-between; gap:25px; border:1px solid rgba(255,255,255,.11); background:linear-gradient(100deg,rgba(230,57,70,.035),rgba(255,255,255,.012)); }
.desk-support-box div > span { display:block; margin-bottom:7px; color:var(--apex-red-glow); font:500 9px/1.3 'IBM Plex Mono',monospace; letter-spacing:.16em; }
.desk-support-box strong { display:block; font:500 20px/1.3 'Space Grotesk',sans-serif; }
.desk-support-box p { margin:7px 0 0; color:rgba(255,255,255,.44); font:300 13px/1.55 'IBM Plex Sans',sans-serif; }
.desk-support-box a { flex:0 0 auto; padding:14px 17px; border:1px solid rgba(230,57,70,.52); color:#fff; text-decoration:none; font:500 9px/1.2 'IBM Plex Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.desk-support-box a:hover { background:rgba(230,57,70,.08); border-color:var(--apex-red-glow); }

.desk-review-actions { display:flex; flex-wrap:wrap; gap:11px; margin-bottom:17px; }
.desk-review-button,.desk-secondary-button,.desk-text-button {
  min-height:48px;
  padding:13px 17px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.02);
  color:#fff;
  font:500 9px/1.2 'IBM Plex Mono',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
}
.desk-review-button { border-color:rgba(230,57,70,.55); background:rgba(230,57,70,.055); }
.desk-text-button { border-color:transparent; color:rgba(255,255,255,.42); }
.desk-review-warnings { margin-bottom:15px; padding:16px; border:1px solid rgba(230,57,70,.38); background:rgba(230,57,70,.05); color:rgba(255,255,255,.74); font:300 13px/1.6 'IBM Plex Sans',sans-serif; }
.desk-review-warnings strong { display:block; margin-bottom:6px; color:var(--apex-red-glow); font:500 9px/1.3 'IBM Plex Mono',monospace; letter-spacing:.13em; }
.desk-review-summary { min-height:250px; max-height:560px; overflow:auto; margin:0; padding:20px; white-space:pre-wrap; border:1px solid rgba(255,255,255,.11); background:#050608; color:rgba(255,255,255,.72); font:400 12px/1.7 'IBM Plex Mono',monospace; }
.desk-certify { margin-top:18px; padding:17px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.015); }
.desk-certify label { display:flex; align-items:flex-start; gap:11px; color:rgba(255,255,255,.65); font:300 14px/1.55 'IBM Plex Sans',sans-serif; }
.desk-submit-row { margin-top:20px; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.desk-submit-row p { max-width:560px; margin:0; color:rgba(255,255,255,.38); font:300 12px/1.55 'IBM Plex Sans',sans-serif; }
.desk-submit-row .estimate-submit-button { min-width:310px; min-height:58px; font-size:10px; }

.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

@media (max-width:1050px) {
  .desk-hero { grid-template-columns:1fr; padding-top:140px; }
  .desk-house-stage { min-height:330px; max-width:650px; }
  .desk-pill-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .desk-roof-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .desk-site-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .desk-hero { min-height:auto; padding:126px 5vw 55px; gap:35px; }
  .desk-house-stage { min-height:290px; }
  .desk-workspace { width:min(94vw,1280px); padding-top:30px; }
  .desk-section { padding:34px 22px; }
  .desk-section-heading { grid-template-columns:1fr; gap:8px; }
  .desk-section-heading > b { display:none; }
  .desk-choice-grid,.desk-field-grid,.desk-structure-selector,.desk-item-grid { grid-template-columns:1fr; }
  .desk-field-wide { grid-column:auto; }
  .desk-damage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .desk-opening-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .desk-opening-row .desk-row-remove { grid-column:1/-1; width:100%; height:42px; }
  .desk-tree-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .desk-tree-row .desk-row-remove { grid-column:1/-1; width:100%; height:42px; }
  .desk-support-box,.desk-submit-row { align-items:stretch; flex-direction:column; }
  .desk-support-box a,.desk-submit-row .estimate-submit-button { width:100%; min-width:0; justify-content:center; }
  .desk-roof-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
  .desk-hero { padding:112px 18px 44px; }
  .desk-hero h1 { font-size:47px; }
  .desk-hero-copy > p { font-size:16px; }
  .desk-house-stage { min-height:260px; padding:13px; }
  .desk-house-caption strong { font-size:21px; }
  .desk-workspace { width:100%; padding:18px 0 70px; }
  .desk-progress { margin:0 10px 14px; padding:13px 14px; }
  .desk-form { border-left:0; border-right:0; }
  .desk-section { padding:31px 17px; }
  .desk-section-heading h2 { font-size:31px; }
  .desk-section-heading p { font-size:14px; }
  .desk-choice-card { min-height:215px; padding:22px; }
  .desk-choice-card strong { font-size:25px; }
  .desk-field input,.desk-field select,.desk-field textarea,.desk-mini-field input,.desk-mini-field select,.desk-line-input { font-size:16px; }
  .desk-pill-grid,.desk-measure-grid,.desk-item-grid,.desk-extent-options,.desk-roof-options,.desk-site-options { grid-template-columns:1fr; }
  .desk-inline-options { display:grid; grid-template-columns:1fr; }
  .desk-inline-options label { width:100%; }
  .desk-structure-selector { gap:11px; }
  .desk-structure-card { min-height:175px; }
  .desk-measure-callout { align-items:flex-start; flex-direction:column; gap:7px; }
  .desk-elevation-header { grid-template-columns:auto 1fr; }
  .desk-elevation-status { grid-column:2; }
  .desk-elevation-body { padding:0 15px 20px; }
  .desk-damage-grid { grid-template-columns:1fr 1fr; }
  .desk-damage-card { min-height:78px; padding:12px; }
  .desk-opening-row,.desk-tree-row { grid-template-columns:1fr; }
  .desk-opening-row .desk-row-remove,.desk-tree-row .desk-row-remove { grid-column:auto; }
  .desk-calc-strip { flex-direction:column; }
  .desk-support-box { padding:18px; }
  .desk-review-summary { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) {
  .desk-house-graphic .house-roof,.desk-mini-house .mini-roof,.desk-damage-card::before,.desk-choice-card,.desk-structure-card,.desk-pill-grid label > span { transition:none!important; }
}
.desk-universal-pricing { margin-top:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,.08); }
.desk-custom-elevation-entry { margin-top:16px; padding:17px; border:1px dashed rgba(255,255,255,.13); background:rgba(255,255,255,.009); }
