/* Focused funnel layout: the form is the page. */
.landing-stage{background:linear-gradient(150deg,#f6f2e9 0%,#edf6f0 60%,#f2f7f4 100%);border-bottom:1px solid var(--line);padding:72px 16px 78px}
.landing-shell{max-width:720px;margin:auto}
.landing-card{background:var(--paper);border:1px solid rgba(30,74,55,.13);border-radius:20px;box-shadow:var(--shadow);padding:clamp(30px,6vw,54px);text-align:center}
.landing-card h1{font:600 clamp(2.25rem,6vw,4rem)/1.02 Georgia,"Times New Roman",serif;letter-spacing:-.04em;margin:14px auto 20px;max-width:620px}
.landing-card>p:not(.eyebrow):not(.save-note){color:var(--muted);font-size:1.02rem;line-height:1.7;max-width:600px;margin:0 auto}
.landing-postcode{margin:30px auto 0;max-width:570px;text-align:left}
.landing-postcode>label{margin-bottom:8px}
.landing-postcode .lookup-row{margin-bottom:0}
.landing-postcode input{text-transform:uppercase}
.landing-card .save-note{text-align:center;margin-bottom:0}
.funnel-page .slim-header .nav-shell{height:64px}
.slim-nav{gap:16px}
.slim-nav a{font-size:.84rem;font-weight:700;color:var(--green-dark);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:9px 14px;background:#fff}
.slim-nav a:hover{border-color:var(--green);color:var(--green)}
@media(max-width:760px){.slim-nav{position:static;display:flex!important;flex-direction:row;background:transparent;border:0;box-shadow:none;padding:0}.slim-nav a{padding:8px 12px;font-size:.78rem}}
.funnel-stage{background:linear-gradient(150deg,#f6f2e9 0%,#edf6f0 60%,#f2f7f4 100%);border-bottom:1px solid var(--line);padding:34px 16px 54px;min-height:calc(100vh - 64px)}
.funnel-shell{max-width:660px;margin:auto}
.focus-funnel{border-radius:20px}
.funnel-shell .message{margin:0 0 14px}
.welcome-back{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;background:var(--green-deep);color:#fff;border-radius:12px;padding:14px 18px;margin-bottom:14px;font-size:.86rem;line-height:1.5}
.welcome-back a{color:#9fe3c3;font-weight:750}
.welcome-back .wb-badge{display:inline-grid;place-items:center;background:rgba(255,255,255,.14);border-radius:50px;padding:4px 11px;font-size:.7rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.funnel-progress{padding:20px 28px 0}
.funnel-progress-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.funnel-progress-meta #progress-label{color:var(--green)}
.funnel-progressbar{height:6px;background:var(--mint);border-radius:50px;overflow:hidden}
.funnel-progressbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--green-dark));border-radius:50px;transition:width .35s ease}
.step-heading.center{text-align:center}
.step-heading.center h1{font:600 clamp(1.9rem,4.6vw,2.7rem)/1.1 Georgia,serif;letter-spacing:-.03em;margin:10px 0}
.step-heading.center p{max-width:460px;margin:8px auto 0}

/* Boot state: keep the card visually stable until the session is ready, so
   restored sessions and homepage postcode hand-offs land once, without jumps. */
.funnel-boot{display:none}
.funnel-wrap[data-booting] .funnel-progress,.funnel-wrap[data-booting] #funnel{visibility:hidden;height:0;overflow:hidden;padding:0}
.funnel-wrap[data-booting] .funnel-boot{display:grid;place-items:center;align-content:center;gap:14px;min-height:380px;color:var(--muted);font-size:.86rem}
.funnel-wrap[data-booting] .funnel-boot p{margin:0}

/* First step: one obvious action */
.lookup-hero{grid-template-columns:1fr;gap:12px;max-width:440px;margin:0 auto 6px}
.lookup-hero input{min-height:56px;font-size:1.08rem;text-align:center;text-transform:uppercase;letter-spacing:.06em}
.lookup-hero .big-cta{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.lookup-hero .big-cta svg{width:19px;height:19px;transition:transform .2s ease}
.lookup-hero .big-cta:hover svg{transform:translateX(3px)}
.value-points{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0;margin:24px 0 14px}
.value-points li{display:grid;justify-items:center;gap:3px;text-align:center;background:var(--mint-soft);border:1px solid var(--line);border-radius:12px;padding:15px 10px}
.value-points svg{width:26px;height:26px;color:var(--green);margin-bottom:5px}
.value-points strong{font-size:.84rem}
.value-points span{color:var(--muted);font-size:.75rem}
.big-cta{padding:17px 22px;font-size:1.02rem}

/* Busy buttons: keep size, swap label for a spinner */
button.is-loading{position:relative;color:transparent!important;pointer-events:none;opacity:1}
button.is-loading svg{visibility:hidden}
button.is-loading::after{content:"";position:absolute;inset:0;margin:auto;width:19px;height:19px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}

/* Calmer step transition */
.step.active{animation:step-in .32s cubic-bezier(.25,.7,.3,1)}
@keyframes step-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.welcome-back{animation:step-in .32s cubic-bezier(.25,.7,.3,1)}
.success-mark{animation:pop-in .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes pop-in{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
.save-note.center{text-align:center}
.funnel-footnote{text-align:center;color:var(--muted);font-size:.78rem;margin-top:16px}
.manual-address{margin-top:14px;padding:15px;border:1px dashed var(--line);border-radius:10px;background:var(--mint-soft)}
.address-results{margin:0 0 13px}
.address-option.selected{background:var(--mint);font-weight:750}
.address-option.selected::before{content:"✓ ";color:var(--green)}
.qualification-grid{grid-template-columns:1fr 1fr 1fr;margin-top:15px}
textarea{width:100%;border:1px solid #cfdad4;background:#fcfdfc;border-radius:8px;padding:11px 13px;color:var(--ink);outline:none;font:inherit;resize:vertical}
textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,107,77,.12)}
.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0}
.tag-option{background:#fff;border:1.5px solid var(--line);color:var(--muted);border-radius:50px;padding:8px 14px;font-size:.78rem;font-weight:750;box-shadow:none}
.tag-option.active{background:var(--green);border-color:var(--green);color:#fff}
.tag-option.done:not(.active){border-color:var(--green);color:var(--green)}
.tag-option.done::after{content:" ✓";font-weight:900}

/* Camera capture: guided permission → live camera → captured review */
.camera-intro{display:grid;justify-items:center;text-align:center;gap:11px;max-width:440px;margin:0 auto;background:linear-gradient(165deg,#173a2b,#0c1e17);color:#eaf3ee;border-radius:16px;padding:34px 24px}
.camera-intro-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff}
.camera-intro-icon svg{width:30px;height:30px}
.camera-intro h3{font:600 1.3rem/1.2 Georgia,serif;margin:0}
.camera-intro p{color:#b7cec3;font-size:.86rem;line-height:1.55;max-width:350px;margin:0}
.camera-intro button{margin-top:5px;padding:14px 26px}
.camera-hint{color:#8fb0a3!important;font-size:.74rem;margin:0}

.camera-frame{position:relative;aspect-ratio:3/4;max-width:440px;max-height:68vh;margin:0 auto;background:#0c1a14;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.camera-frame video,.camera-frame img{width:100%;height:100%;object-fit:cover;display:block}
.camera-guide{position:absolute;inset:18px;border:1.5px solid rgba(255,255,255,.26);border-radius:12px;pointer-events:none;z-index:1}
.camera-topbar{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:8px;z-index:3}
.cam-lens{display:flex;align-items:center;height:44px;margin-right:auto;max-width:60%;background:rgba(8,20,15,.5);border-radius:50px;padding:0 4px;backdrop-filter:blur(6px)}
.cam-lens select{max-width:100%;min-height:40px;background:transparent;border:0;color:#fff;font-size:.78rem;font-weight:700;padding:0 10px;box-shadow:none;text-overflow:ellipsis}
.cam-lens select option{color:#14231e}
.cam-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(8,20,15,.5);color:#fff;padding:0;box-shadow:none;backdrop-filter:blur(6px)}
.camera-topbar .cam-icon:first-child{margin-left:auto}
.cam-icon svg{width:20px;height:20px}
.cam-icon.active{background:var(--green)}
.camera-bottombar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;padding:20px;background:linear-gradient(transparent,rgba(5,15,11,.6));z-index:3}
.shutter{width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.22);border:0;padding:0;display:grid;place-items:center;box-shadow:none;backdrop-filter:blur(3px)}
.shutter i{display:block;width:56px;height:56px;border-radius:50%;background:#fff;border:3px solid rgba(0,0,0,.14);transition:transform .12s ease}
.shutter:active i{transform:scale(.85)}

/* Captured photo review: rotate, retake, tag, note */
.capture-review{max-width:440px;margin:14px auto 0;display:grid;gap:12px}
.capture-review-bar{display:flex;gap:8px;justify-content:center}
.cam-pill{display:inline-flex;align-items:center;gap:7px;border-radius:50px;padding:11px 18px;font-size:.82rem;font-weight:700;background:#fff;border:1.5px solid var(--line);color:var(--ink);box-shadow:none}
.cam-pill svg{width:17px;height:17px}
.cam-pill:hover{border-color:var(--green);color:var(--green)}
.capture-review-label{font-size:.8rem;font-weight:750;color:var(--muted);margin:2px 0 -5px;text-align:center}
.capture-review .tag-row{justify-content:center;margin:0}
.photo-note,.custom-tag{gap:6px;font-size:.8rem}
.photo-note small,.custom-tag small{color:var(--muted);font-weight:500}
.custom-tag{margin-top:-2px}
#add-another{display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:440px;margin:14px auto 0}
#add-another svg{width:18px;height:18px}
.photo-card figcaption small{display:block;font-weight:500;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Saved photo gallery */
.photo-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 0}
.photo-card{position:relative;margin:0;border-radius:10px;overflow:hidden;background:var(--mint);aspect-ratio:4/3;animation:step-in .3s ease}
.photo-card img{width:100%;height:100%;object-fit:cover;display:block}
.photo-card figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(8,22,16,.78));color:#fff;font-size:.68rem;font-weight:750;padding:16px 8px 6px}
.photo-card.no-preview figcaption{background:none;position:static;display:grid;place-items:center;height:100%;color:var(--green-dark)}
.photo-remove{position:absolute;top:5px;right:5px;width:26px;height:26px;border-radius:50%;background:rgba(8,20,15,.6);color:#fff;padding:0;font-size:1.05rem;line-height:1;box-shadow:none;display:grid;place-items:center}
.photo-remove:hover{background:var(--danger)}

/* Editing from review / after submission */
.edit-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--warning);border:1px solid #e4c46f;border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:.82rem;font-weight:700}
.edit-bar button{padding:8px 13px;font-size:.74rem;white-space:nowrap}
.review-edit{background:transparent;color:var(--green);box-shadow:none;padding:2px 4px;font-size:.74rem;text-decoration:underline;white-space:nowrap}
.complete-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:6px}
.review-summary{display:grid;gap:9px;margin-bottom:16px}
.review-summary .review-row{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--mint-soft);border:1px solid var(--line);border-radius:9px;padding:11px 14px;font-size:.85rem}
.review-summary .review-row span{color:var(--muted);white-space:nowrap}
.review-summary .review-row strong{text-align:right;margin-left:auto}
.request-id-panel{display:grid;gap:5px;justify-items:center;background:var(--mint-soft);border:2px dashed var(--green);border-radius:13px;padding:18px;margin:20px auto;max-width:340px}
.request-id-panel span{font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.request-id-panel strong{font:700 1.9rem/1 ui-monospace,Consolas,monospace;letter-spacing:.06em}
.request-id-panel small{color:var(--muted);text-align:center}
.step label + .estimate-warning{margin-top:16px}
.photo-handoff-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px;border:1px solid #2d4867;border-radius:10px;background:#10243a}
.photo-handoff-card p{margin:5px 0 0;color:#9eb0c3;font-size:.82rem;line-height:1.45}
.photo-handoff-card .button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:48px;white-space:normal}
.photo-handoff-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#17385d;color:#79baff}
.photo-handoff-icon svg{width:26px;height:26px}
.photo-skip-note{display:grid;gap:4px;margin-top:14px;padding:13px 15px;border-left:3px solid #315c8c;background:#0d2035;color:#9eb0c3;font-size:.8rem;line-height:1.45}
.photo-skip-note strong{color:#dcecff}
/* Self-set price: even spacing and a full-width confirm button */
#self-value-panel{display:grid;gap:13px}
#self-value-panel label{gap:8px}
#self-value-panel .primary{width:100%;margin:0}
@media(max-width:760px){
  .landing-stage{padding:28px 10px 42px}
  .landing-card{padding:28px 18px;border-radius:14px}
  .landing-card h1{font-size:clamp(2.15rem,11vw,3.2rem)}
  .funnel-stage{padding:14px 10px 40px}
  .funnel-progress{padding:16px 18px 0}
  .value-points{gap:7px}
  .value-points li{padding:12px 6px}
  .value-points svg{width:22px;height:22px}
  .value-points strong{font-size:.76rem}
  .value-points span{font-size:.68rem}
  .qualification-grid{grid-template-columns:1fr}
  .review-summary .review-row{flex-direction:column;align-items:start;gap:3px}
  .review-summary .review-row strong{text-align:left;margin-left:0}
  .photo-list{grid-template-columns:1fr 1fr}
  .edit-bar{flex-direction:column;align-items:stretch;text-align:center}
  .photo-handoff-card{grid-template-columns:auto minmax(0,1fr)}
  .photo-handoff-card .button{grid-column:1/-1;width:100%}
  .offer-page .actions{display:grid;grid-template-columns:1fr;align-items:stretch}
  .offer-page .actions>button,.offer-page .actions>.button{width:100%;min-height:48px;white-space:normal;line-height:1.2}
  .offer-page .actions>.back{order:2}
  .offer-page .choice-grid{grid-template-columns:1fr}
  .offer-page .choice-grid button{width:100%;white-space:normal}
  .offer-page .valuation-fallback-actions{display:grid;grid-template-columns:1fr}
  .offer-page .valuation-fallback-actions button{width:100%;white-space:normal;line-height:1.2}
}

/* Track page */
.track-shell{max-width:620px;margin:auto;padding:38px 16px 70px}
.track-card{background:#fff;border:1px solid rgba(30,74,55,.13);border-radius:18px;box-shadow:var(--shadow);padding:28px}
.track-card h1{font:600 1.9rem/1.15 Georgia,serif;letter-spacing:-.02em;margin:8px 0 6px}
.track-card>p{color:var(--muted);font-size:.9rem;margin-top:0}
.track-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin:18px 0 6px}
.track-form input{text-transform:uppercase;font-family:ui-monospace,Consolas,monospace;letter-spacing:.05em}
.track-result{margin-top:20px;border-top:1px solid var(--line);padding-top:20px}
.track-result-head{display:flex;justify-content:space-between;align-items:start;gap:12px;flex-wrap:wrap}
.track-result-head strong{font:700 1.25rem ui-monospace,Consolas,monospace}
.track-status-pill{background:var(--mint);color:var(--green-dark);border-radius:50px;padding:7px 14px;font-size:.78rem;font-weight:850}
.track-detail{color:var(--muted);font-size:.9rem;line-height:1.6}
.track-stages{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0;margin:20px 0 8px}
.track-stages li{display:grid;gap:7px;justify-items:center;font-size:.72rem;font-weight:750;color:#87928d;text-align:center}
.track-stages li i{display:block;width:100%;height:6px;border-radius:50px;background:var(--mint)}
.track-stages li.reached{color:var(--green)}
.track-stages li.reached i{background:var(--green)}
.track-stages li.current{color:var(--green-dark)}
.track-meta{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.78rem;margin-top:12px}
.my-requests{margin-top:26px}
.my-requests h2{font:600 1.2rem Georgia,serif;margin:0 0 4px}
.my-requests>p{color:var(--muted);font-size:.82rem;margin-top:0}
.request-list{display:grid;gap:9px;margin-top:12px}
.request-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;background:var(--mint-soft);border:1px solid var(--line);border-radius:11px;padding:13px 16px;box-shadow:none;color:var(--ink)}
.request-item:hover{border-color:var(--green)}
.request-item .ri-id{font:700 .92rem ui-monospace,Consolas,monospace}
.request-item .ri-prop{display:block;color:var(--muted);font-size:.78rem;font-weight:500}
.request-item .ri-status{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:50px;padding:5px 11px;font-size:.7rem;font-weight:800;color:var(--green-dark)}
@media(max-width:560px){
  .photo-handoff-card{grid-template-columns:1fr;justify-items:start}
  .photo-handoff-card .button{grid-column:auto}
  .track-shell{padding:20px 12px 50px}
  .track-card{padding:22px 16px}
  .track-form{grid-template-columns:1fr}
  .track-form button{width:100%}
  .track-stages li{font-size:.62rem}
  .request-item{flex-wrap:wrap}
}

/* Dark blue commercial public experience */
.landing-stage,
.funnel-stage {
  background:
    radial-gradient(circle at 82% 12%, rgba(49, 127, 222, 0.24), transparent 34%),
    radial-gradient(circle at 8% 78%, rgba(20, 75, 140, 0.25), transparent 32%),
    linear-gradient(140deg, var(--navy-950), var(--navy-800));
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

.landing-stage {
  padding-top: 64px;
  padding-bottom: 72px;
}

.landing-shell {
  max-width: 1180px;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  gap: 70px;
  align-items: center;
}

.landing-card,
.focus-funnel,
.track-card {
  background: rgba(9, 24, 42, 0.94);
  border: 1px solid rgba(121, 186, 255, 0.18);
  border-radius: 14px;
  box-shadow: 0 30px 80px rgba(2, 13, 29, 0.34);
  backdrop-filter: blur(18px);
}

.landing-card {
  border-top: 5px solid var(--blue-600);
  padding: clamp(30px, 5vw, 50px);
  text-align: left;
  animation: panel-in 0.7s cubic-bezier(.2, .8, .2, 1) both;
}

.landing-card h1,
.step-heading.center h1,
.step-heading h2,
.track-card h1,
.my-requests h2,
.camera-intro h3 {
  font-family: var(--font-display);
  font-weight: 800;
}

.landing-card h1,
.step-heading.center h1 {
  letter-spacing: -0.05em;
}

.landing-card h1 {
  max-width: 540px;
  margin-left: 0;
  font-size: clamp(3.2rem, 5.5vw, 5.25rem);
}

.landing-card > p:not(.eyebrow):not(.save-note) {
  max-width: 440px;
  margin-left: 0;
  color: #a9bbcf;
}

.landing-card .save-note {
  text-align: left;
}

.landing-card .eyebrow,
.funnel-progress-meta #progress-label {
  color: var(--blue-400);
}

.landing-postcode input,
.lookup-hero input {
  border-width: 2px;
  border-color: #2c4767;
  background: #071321;
  color: var(--ink);
}

.slim-nav a {
  color: #d8e5f4;
  border-color: #29435f;
  border-radius: 6px;
  background: var(--surface-2);
}

.slim-nav a:hover {
  border-color: var(--blue-600);
  color: #fff;
  background: var(--blue-50);
}

.funnel-progressbar {
  background: #1c334d;
}

.funnel-progressbar i {
  background: linear-gradient(90deg, var(--blue-600), #3a8cec);
}

.welcome-back {
  background: linear-gradient(115deg, var(--navy-900), var(--navy-800));
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.welcome-back a {
  color: #9bc7ff;
}

.value-points li,
.review-summary .review-row,
.request-item {
  background: var(--surface-2);
  border-color: #29435f;
  border-radius: 8px;
}

.value-points li {
  border-top: 3px solid #285d99;
}

.value-points svg,
.review-edit,
.request-id-panel span,
.track-stages li.reached,
.track-stages li.current,
.tag-option.done:not(.active) {
  color: var(--blue-400);
}

.track-stages li.reached i {
  background: var(--blue-600);
}

textarea {
  border-color: #2d4663;
  background: #081524;
  color: var(--ink);
  border-radius: 7px;
}

textarea:focus {
  border-color: var(--blue-600);
  box-shadow: 0 0 0 3px rgba(23, 104, 209, 0.13);
}

.tag-option {
  background: var(--surface-2);
  color: #bfd0e4;
  border-color: #2d4867;
  border-radius: 7px;
}

.tag-option.active {
  background: var(--blue-600);
  border-color: var(--blue-600);
  color: #fff;
}

.camera-intro {
  background:
    radial-gradient(circle at 80% 0%, rgba(58, 140, 236, 0.28), transparent 38%),
    linear-gradient(155deg, var(--navy-800), var(--navy-950));
  color: #f4f8fd;
  border-radius: 12px;
}

.camera-intro p {
  color: #c4d3e7;
}

.camera-hint {
  color: #9eb4cf !important;
}

.camera-frame {
  background: var(--navy-950);
  border-radius: 12px;
}

.cam-lens,
.cam-icon {
  background: rgba(4, 18, 38, 0.64);
}

.photo-card figcaption,
.photo-caption {
  background: linear-gradient(transparent, rgba(4, 18, 38, 0.88));
}

.photo-remove {
  background: rgba(4, 18, 38, 0.72);
}

.request-id-panel {
  background: var(--blue-50);
  border-color: var(--blue-600);
  border-radius: 9px;
}

.funnel-page:has(.track-shell) {
  background:
    radial-gradient(circle at 84% 4%, rgba(55, 134, 232, 0.28), transparent 28%),
    linear-gradient(145deg, var(--navy-950) 0, var(--navy-800) 430px, var(--cream) 430px);
}

.track-shell {
  min-height: 620px;
  padding-top: 58px;
}

.track-card {
  border-top: 5px solid var(--blue-600);
}

.track-status-pill,
.request-item .ri-status {
  color: #dcecff;
}

.request-item:hover {
  background: #142d49;
  border-color: var(--blue-600);
}

.address-option,
.cam-pill,
.request-item .ri-status {
  background: var(--surface-2);
  color: var(--ink);
}

.address-option:hover,
.address-option.selected {
  background: var(--blue-50);
}

.manual-address,
.consent,
.estimate-panel,
.inline-panel {
  background: var(--surface-2);
  border-color: var(--line);
}

.estimate-warning,
.edit-bar {
  background: #2c2617;
  border-color: #665321;
  color: #f1d58c;
}

.message {
  background: var(--blue-50);
  color: #cde3ff;
}

.message.error {
  background: #361b20;
  color: #ffaaa3;
}

.track-graphic {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  margin-bottom: 22px;
  border: 1px solid rgba(121, 186, 255, 0.26);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(23, 104, 209, 0.3), rgba(23, 104, 209, 0.06));
  color: var(--blue-400);
  animation: icon-float 4s ease-in-out infinite;
}

.track-graphic svg {
  width: 43px;
  height: 43px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.landing-visual {
  position: relative;
  min-height: 520px;
  display: grid;
  place-items: center;
  isolation: isolate;
  animation: visual-in 0.9s 0.12s cubic-bezier(.2, .8, .2, 1) both;
}

.visual-glow {
  position: absolute;
  width: 68%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(35, 115, 210, 0.24);
  filter: blur(55px);
  animation: glow-breathe 6s ease-in-out infinite;
  z-index: -1;
}

.property-graphic {
  width: min(100%, 620px);
  overflow: visible;
  filter: drop-shadow(0 34px 50px rgba(0, 0, 0, 0.35));
}

.visual-orbit {
  transform-origin: 310px 255px;
  animation: orbit-spin 24s linear infinite;
}

.building {
  transform-box: fill-box;
  transform-origin: bottom;
  animation: building-rise 0.85s cubic-bezier(.2, .8, .2, 1) both;
}

.building-two {
  animation-delay: 0.14s;
}

.hero-home {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: home-rise 0.8s 0.22s cubic-bezier(.2, .9, .2, 1) both;
}

.scan-line {
  animation: scan-pulse 2.6s ease-in-out infinite;
}

.value-line {
  stroke-dasharray: 620;
  stroke-dashoffset: 620;
  animation: line-draw 1.35s 0.65s ease-out forwards;
}

.value-dot {
  opacity: 0;
  animation: dots-in 0.4s 1.75s ease-out forwards;
}

.visual-chip {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px 15px;
  border: 1px solid rgba(121, 186, 255, 0.25);
  border-radius: 10px;
  background: rgba(8, 24, 43, 0.82);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(12px);
  color: #eaf4ff;
  font-size: 0.8rem;
  animation: chip-float 5s ease-in-out infinite;
}

.visual-chip span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--blue-600);
  font-weight: 900;
}

.visual-chip-value {
  top: 14%;
  left: 2%;
}

.visual-chip-speed {
  right: 1%;
  bottom: 16%;
  animation-delay: -2.5s;
}

@keyframes panel-in {
  from { opacity: 0; transform: translateX(-22px); }
  to { opacity: 1; transform: none; }
}

@keyframes visual-in {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to { opacity: 1; transform: none; }
}

@keyframes building-rise {
  from { opacity: 0; transform: scaleY(.25); }
  to { opacity: 1; transform: scaleY(1); }
}

@keyframes home-rise {
  from { opacity: 0; transform: translateY(24px) scale(.88); }
  to { opacity: 1; transform: none; }
}

@keyframes line-draw {
  to { stroke-dashoffset: 0; }
}

@keyframes dots-in {
  to { opacity: 1; }
}

@keyframes scan-pulse {
  0%, 100% { opacity: .2; transform: translateY(-32px); }
  50% { opacity: .95; transform: translateY(30px); }
}

@keyframes orbit-spin {
  to { transform: rotate(360deg); }
}

@keyframes glow-breathe {
  0%, 100% { opacity: .55; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1.08); }
}

@keyframes chip-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

@keyframes icon-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@media(max-width:760px) {
  .landing-shell {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .landing-stage {
    padding-top: 38px;
    padding-bottom: 50px;
  }

  .landing-card,
  .focus-funnel,
  .track-card {
    border-radius: 10px;
  }

  .funnel-stage {
    padding-top: 18px;
  }

  .landing-visual {
    min-height: 330px;
  }

  .property-graphic {
    width: min(100%, 430px);
  }

  .visual-chip-value {
    left: 5%;
  }

  .visual-chip-speed {
    right: 4%;
  }
}

@media(max-width:560px) {
  .funnel-page:has(.track-shell) {
    background: linear-gradient(155deg, var(--navy-950) 0, var(--navy-800) 350px, var(--cream) 350px);
  }

  .track-shell {
    min-height: 520px;
    padding-top: 30px;
  }

  .landing-card h1 {
    font-size: clamp(3rem, 15vw, 4.2rem);
  }

  .landing-visual {
    min-height: 285px;
  }

  .visual-chip {
    padding: 8px 10px;
    font-size: 0.7rem;
  }

  .visual-chip span {
    width: 24px;
    height: 24px;
  }
}

/* Calm, professional dark-blue homepage treatment. Kept page-scoped so the
   offer funnel and CRM retain their existing visual systems. */
body.landing-page {
  --font-sans: "Manrope", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ink: #f4f8fd;
  --muted: #a9bbcf;
  --green: var(--blue-600);
  --green-dark: var(--blue-700);
  --green-deep: var(--navy-900);
  --mint: var(--blue-100);
  --mint-soft: var(--blue-50);
  --cream: #050d18;
  --paper: var(--surface-1);
  --line: #29435f;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
  background: var(--cream);
  color: var(--ink);
  color-scheme: dark;
  font-family: var(--font-sans);
  overflow-x: hidden;
}

.landing-page main {
  background: var(--cream);
}

.landing-page :focus-visible {
  outline-color: rgba(121, 186, 255, 0.62);
}

.landing-page .site-header {
  background: rgba(4, 12, 23, 0.95);
  border-color: rgba(121, 186, 255, 0.14);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
}

.landing-page .brand {
  color: var(--ink);
  font-weight: 760;
}

.landing-page .brand-mark {
  background: linear-gradient(145deg, var(--navy-900), var(--blue-600));
  border-radius: 7px;
  box-shadow: 0 8px 20px rgba(10, 42, 82, 0.32);
}

.landing-page .brand strong,
.landing-page .eyebrow,
.landing-page .faq-list summary::after {
  color: var(--blue-400);
}

.landing-page .slim-nav {
  position: static;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.landing-page .slim-nav a {
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface-1);
  color: #d8e5f4;
}

.landing-page .slim-nav a:hover {
  border-color: #416487;
  background: var(--surface-2);
  color: var(--blue-400);
}

.landing-page .landing-stage {
  padding: 72px 24px;
  background:
    radial-gradient(circle at 78% 4%, rgba(49, 127, 222, 0.24), transparent 34%),
    linear-gradient(135deg, #06111f 0%, #0b2a4a 100%);
  border-bottom: 1px solid var(--line);
  overflow-x: hidden;
}

.landing-page .landing-shell {
  max-width: 1180px;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
  gap: 68px;
  align-items: center;
}

.landing-page .landing-card,
.landing-page .landing-media {
  min-width: 0;
}

.landing-page .landing-card {
  padding: 0;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  animation: none;
}

.landing-page .landing-card h1 {
  max-width: 590px;
  margin: 15px 0 20px;
  color: var(--ink);
  font: 780 clamp(2.55rem, 4vw, 3.65rem)/1.08 var(--font-sans);
  letter-spacing: -0.045em;
}

.landing-page .landing-card > p:not(.eyebrow):not(.save-note) {
  max-width: 620px;
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.72;
}

.landing-page .landing-postcode {
  max-width: 650px;
  margin: 34px 0 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
}

.landing-page .landing-postcode > label {
  font-size: 1rem;
}

.landing-page .landing-postcode .lookup-row {
  grid-template-columns: minmax(0, 1fr);
}

.landing-page .landing-postcode .hint {
  margin: 12px 0 0;
  line-height: 1.55;
}

.landing-page .landing-postcode input {
  border: 1px solid #365c83;
  background: #071422;
  color: var(--ink);
}

.landing-page .landing-postcode input::placeholder {
  color: #8194aa;
}

.landing-page .landing-postcode input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(23, 104, 209, 0.18);
}

.landing-page .landing-postcode .primary {
  background: var(--green);
  box-shadow: none;
}

.landing-page .landing-postcode .primary:hover:not(:disabled) {
  background: var(--green-dark);
  transform: none;
}

.landing-page .landing-card .save-note {
  margin: 14px 0 0;
  color: var(--muted);
  text-align: left;
  font-size: 0.78rem;
}

.landing-media {
  display: block;
  aspect-ratio: 5 / 4;
  margin: 0;
  overflow: hidden;
  background: #081524;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
}

.landing-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
}

.landing-page .trust-strip {
  padding: 30px 24px;
  gap: 0;
  background: #071321;
}

.landing-page .trust-strip div {
  min-height: 58px;
  padding: 4px 28px;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.landing-page .trust-strip div:first-child {
  padding-left: 0;
  border-left: 0;
}

.landing-page .trust-strip strong {
  color: var(--ink);
  font-size: 0.87rem;
}

.landing-page .trust-strip span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.77rem;
}

.landing-page .content-section,
.landing-page .privacy-section {
  padding-top: 82px;
  padding-bottom: 82px;
}

.landing-page .section-heading {
  max-width: 700px;
  margin: 0 0 40px;
  text-align: left;
}

.landing-page .section-heading h2 {
  color: var(--ink);
  font: 780 clamp(1.9rem, 3vw, 2.65rem)/1.14 var(--font-sans);
  letter-spacing: -0.035em;
}

.landing-page .section-heading > p:last-child {
  color: var(--muted);
}

.landing-page .steps-grid article {
  padding: 30px;
  background: var(--surface-1);
  border: 1px solid var(--line);
  border-top: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: none;
  animation: none;
  transition: none;
}

.landing-page .steps-grid article:hover {
  transform: none;
  box-shadow: none;
}

.landing-page .steps-grid article > span {
  color: var(--green);
}

.landing-page .steps-grid h3 {
  color: var(--ink);
  font: 760 1.16rem/1.3 var(--font-sans);
}

.landing-page .steps-grid p {
  color: var(--muted);
}

.landing-page .reviews-section {
  background: #071321;
  border-color: var(--line);
}

.landing-page .review-card {
  padding: 30px 27px;
  background: var(--surface-1);
  border-color: var(--line);
  border-radius: 8px;
  box-shadow: none;
  transition: none;
}

.landing-page .review-card:hover {
  transform: none;
  box-shadow: none;
}

.landing-page .review-card blockquote {
  color: #d8e5f4;
  font-family: var(--font-sans);
  font-style: normal;
}

.landing-page .professional-steps .step-graphic {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-top: 18px;
  border: 1px solid #365c83;
  border-radius: 9px;
  background: var(--mint-soft);
  color: var(--green);
  transition: none;
}

.landing-page .professional-steps .step-graphic svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.landing-page .professional-steps article:hover .step-graphic {
  transform: none;
  border-color: #416487;
}

.landing-page .review-author {
  border-color: var(--line);
}

.landing-page .avatar-initials.color-b {
  color: #dcecff;
}

.landing-page .author-details strong,
.landing-page .privacy-section h2 {
  color: var(--ink);
}

.landing-page .author-details span,
.landing-page .faq-list p,
.landing-page .privacy-section {
  color: var(--muted);
}

.landing-page .faq-list,
.landing-page .faq-list details {
  border-color: var(--line);
}

.landing-page .site-footer {
  background: var(--navy-950);
  border-color: transparent;
}

.landing-page .site-footer > div > p,
.landing-page .legal {
  color: #9eb4cf;
}

.landing-page .site-footer nav a {
  color: #dcecff;
}

@media(max-width:900px) {
  .landing-page .landing-shell {
    grid-template-columns: 1fr;
    max-width: 760px;
    gap: 36px;
  }

  .landing-page .landing-media {
    aspect-ratio: 16 / 10;
  }

  .landing-page .trust-strip {
    grid-template-columns: 1fr 1fr;
    gap: 20px 0;
  }

  .landing-page .trust-strip div:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
}

@media(max-width:760px) {
  .landing-page .landing-stage {
    padding: 28px 14px 38px;
  }

  .landing-page .landing-shell {
    gap: 16px;
  }

  .landing-page .landing-card,
  .landing-page .landing-media {
    border-radius: 7px;
  }

  .landing-page .landing-card,
  .landing-page .landing-media {
    box-shadow: none;
  }

  .landing-page .landing-card h1 {
    margin-top: 12px;
    font-size: clamp(2.25rem, 9.5vw, 2.85rem);
  }

  .landing-page .landing-card > p:not(.eyebrow):not(.save-note) {
    font-size: 0.97rem;
  }

  .landing-page .landing-postcode {
    margin-top: 27px;
  }

  .landing-page .landing-media {
    aspect-ratio: 4 / 3;
  }

  .landing-page .content-section,
  .landing-page .privacy-section {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .landing-page .section-heading {
    margin-bottom: 28px;
  }

  .landing-page .site-footer {
    padding-bottom: 42px;
  }
}

@media(max-width:560px) {
  .landing-page .nav-shell {
    gap: 12px;
  }

  .landing-page .brand {
    font-size: 0.93rem;
  }

  .landing-page .slim-nav a {
    padding: 9px 10px;
    font-size: 0.76rem;
  }

  .landing-page .landing-postcode .lookup-row {
    grid-template-columns: 1fr;
  }

  .landing-page .landing-postcode button {
    width: 100%;
  }

  .landing-page .trust-strip {
    grid-template-columns: 1fr;
    gap: 0;
    padding-top: 24px;
    padding-bottom: 24px;
  }

  .landing-page .trust-strip div,
  .landing-page .trust-strip div:nth-child(odd) {
    min-height: 0;
    padding: 15px 0;
    border: 0;
    border-top: 1px solid var(--line);
  }

  .landing-page .trust-strip div:first-child {
    border-top: 0;
  }
}

/* Light public experience with dark-blue accents */
.landing-stage,
.funnel-stage {
  background:
    radial-gradient(circle at 82% 12%, rgba(23, 104, 209, 0.1), transparent 34%),
    radial-gradient(circle at 8% 78%, rgba(18, 58, 103, 0.06), transparent 32%),
    linear-gradient(140deg, #ffffff, #eef5fd);
  border-bottom-color: var(--line);
}

.landing-card,
.focus-funnel,
.track-card {
  background: #ffffff;
  border-color: var(--line);
  box-shadow: 0 24px 60px rgba(13, 42, 75, 0.12);
}

.landing-card > p:not(.eyebrow):not(.save-note) {
  color: var(--muted);
}

.landing-postcode input,
.lookup-hero input,
textarea {
  border-color: #c8d5e3;
  background: #ffffff;
  color: var(--ink);
}

.slim-nav a {
  color: var(--navy-900);
  border-color: var(--line);
  background: #ffffff;
}

.slim-nav a:hover {
  border-color: var(--blue-600);
  color: var(--blue-700);
  background: var(--blue-50);
}

.funnel-progressbar {
  background: #dce6f0;
}

.welcome-back {
  background: linear-gradient(115deg, #eef5fd, #ffffff);
  border-color: #c7d9ec;
  color: var(--ink);
}

.welcome-back a,
.value-points svg,
.review-edit,
.request-id-panel span,
.track-stages li.reached,
.track-stages li.current,
.tag-option.done:not(.active) {
  color: var(--blue-600);
}

.value-points li,
.review-summary .review-row,
.request-item,
.address-option,
.cam-pill,
.request-item .ri-status,
.tag-option,
.manual-address,
.consent,
.estimate-panel,
.inline-panel {
  background: #ffffff;
  border-color: var(--line);
  color: var(--ink);
}

.value-points li {
  border-top-color: var(--blue-600);
}

.tag-option {
  color: var(--navy-900);
}

.request-id-panel,
.message {
  background: var(--blue-50);
  border-color: #b9d3f2;
  color: var(--navy-900);
}

.estimate-warning,
.edit-bar {
  background: #fff7df;
  border-color: #e4c46f;
  color: #6f5310;
}

.message.error {
  background: #fdecea;
  color: #a8342c;
}

.funnel-page:has(.track-shell) {
  background:
    radial-gradient(circle at 84% 4%, rgba(23, 104, 209, 0.1), transparent 28%),
    linear-gradient(145deg, #eef5fd 0, #ffffff 430px, var(--cream) 430px);
}

.track-status-pill,
.request-item .ri-status {
  color: var(--navy-900);
}

.request-item:hover,
.address-option:hover,
.address-option.selected {
  background: var(--blue-50);
  border-color: var(--blue-600);
}

body.landing-page {
  --ink: #10243a;
  --muted: #5f7084;
  --green: var(--blue-600);
  --green-dark: var(--blue-700);
  --green-deep: var(--navy-900);
  --mint: var(--blue-100);
  --mint-soft: var(--blue-50);
  --cream: #f5f7fa;
  --paper: #ffffff;
  --line: #d7e1ec;
  --shadow: 0 18px 50px rgba(13, 42, 75, 0.12);
  background: var(--cream);
  color: var(--ink);
  color-scheme: light;
}

.landing-page main {
  background: var(--cream);
}

.landing-page .site-header {
  background: rgba(255, 255, 255, 0.96);
  border-color: var(--line);
  box-shadow: 0 8px 30px rgba(13, 42, 75, 0.07);
}

.landing-page .brand {
  color: var(--navy-900);
}

.landing-page .brand strong,
.landing-page .eyebrow,
.landing-page .faq-list summary::after {
  color: var(--blue-600);
}

.landing-page .slim-nav a {
  background: #ffffff;
  border-color: var(--line);
  color: var(--navy-900);
}

.landing-page .slim-nav a:hover {
  border-color: var(--blue-600);
  background: var(--blue-50);
  color: var(--blue-700);
}

.landing-page .landing-stage {
  background:
    radial-gradient(circle at 78% 4%, rgba(23, 104, 209, 0.1), transparent 34%),
    linear-gradient(135deg, #ffffff 0%, #eef5fd 100%);
  border-bottom-color: var(--line);
}

.landing-page .landing-card h1,
.landing-page .section-heading h2,
.landing-page .steps-grid h3,
.landing-page .author-details strong,
.landing-page .privacy-section h2,
.landing-page .trust-strip strong {
  color: var(--ink);
}

.landing-page .landing-card > p:not(.eyebrow):not(.save-note),
.landing-page .landing-card .save-note,
.landing-page .section-heading > p:last-child,
.landing-page .steps-grid p,
.landing-page .author-details span,
.landing-page .faq-list p,
.landing-page .privacy-section {
  color: var(--muted);
}

.landing-page .landing-postcode input {
  min-height: 58px;
  border: 2px solid #52769c;
  background: #ffffff;
  color: var(--ink);
  font-size: 1.05rem;
  text-transform: none;
}

.landing-page .landing-postcode input::placeholder {
  color: #65778b;
}

.landing-media {
  background: #e7eef6;
  box-shadow: 0 24px 60px rgba(13, 42, 75, 0.18);
}

.landing-page .trust-strip,
.landing-page .reviews-section {
  background: #ffffff;
}

.landing-page .steps-grid article,
.landing-page .review-card {
  background: #ffffff;
  border-color: var(--line);
  box-shadow: 0 12px 32px rgba(13, 42, 75, 0.07);
}

.landing-page .review-card blockquote {
  color: var(--ink);
}

.landing-page .supplied-reviews {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 1180px;
}

.landing-page .review-portrait {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
}

@media (max-width: 760px) {
  .landing-page .supplied-reviews { grid-template-columns: 1fr; }
}

.landing-page .professional-steps .step-graphic {
  border-color: #b9d3f2;
  background: var(--blue-50);
  color: var(--blue-600);
}

@media(max-width:560px) {
  .funnel-page:has(.track-shell) {
    background: linear-gradient(155deg, #eef5fd 0, #ffffff 350px, var(--cream) 350px);
  }
}

.landing-page .brand-mark {
  background: var(--blue-50);
  border: 1px solid #b9d3f2;
  box-shadow: 0 8px 20px rgba(10, 42, 82, 0.14);
}

/* Direct-purchase positioning within the existing homepage design. */
.landing-page .landing-card h1 { font-size: clamp(2.1rem, 3.6vw, 3.5rem); line-height: 1.12; }
.landing-page .landing-card > p.offer-disclosure:not(.eyebrow):not(.save-note) { margin-top: 18px; padding: 12px 16px; border-left: 2px solid var(--blue-600); border-radius: 0 5px 5px 0; background: rgba(23, 104, 209, .045); font-size: .875rem; line-height: 1.55; color: var(--muted); }
.offer-disclosure strong, .offer-disclosure span { display: block; }
.offer-disclosure strong { margin-bottom: 4px; color: var(--ink); font-weight: 600; }
.landing-page .brand .brand-mark { color: inherit; background: transparent; border: 0; box-shadow: none; }
.direct-benefits .steps-grid article { border-top: 3px solid var(--blue-600); }
.site-footer .brand-slogan { font-size: .85rem; font-weight: 700; }
.landing-page .site-footer .brand { color: #f4f8fd; }
.landing-page .site-footer .brand strong { color: var(--blue-400); }

/* Focused enquiry page; the marketing homepage keeps its existing layout. */
.offer-page { background: #fff; display: flex; flex-direction: column; }
.offer-page main { flex: 1; }
.offer-page .site-header { background: #fff; box-shadow: none; }
.offer-page .slim-header .nav-shell { height: 64px; }
.offer-page .funnel-stage { background: #fff; border: 0; padding: 24px 24px 32px; min-height: 0; }
.offer-page .funnel-shell { max-width: 840px; }
.offer-page .focus-funnel { background: transparent; border: 0; border-radius: 0; box-shadow: none; backdrop-filter: none; }
.offer-page .funnel-progress { padding: 0; margin-bottom: 60px; }
.funnel-journey { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; gap: 8px; padding: 0; margin: 0; }
.funnel-journey li { position: relative; padding-top: 24px; text-align: center; color: var(--muted); font-size: .88rem; }
.funnel-journey li::before { content: ""; position: absolute; top: 6px; left: 0; right: 0; height: 4px; background: var(--line); }
.funnel-journey li::after { content: ""; position: absolute; width: 16px; height: 16px; border: 3px solid #fff; border-radius: 50%; background: var(--line); top: 0; left: calc(50% - 8px); }
.funnel-journey li.current { color: var(--ink); font-weight: 700; }
.funnel-journey li.current::after, .funnel-journey li.done::after, .funnel-journey li.done::before { background: var(--blue-600); }
.funnel-journey li.current::before { background: var(--blue-100); }
.offer-page .funnel-card { max-width: 720px; margin: auto; padding: 0; }
.offer-page .step.active { animation: none; }
.offer-page .step-heading { margin-bottom: 20px; text-align: left; }
.offer-page .step-heading h1, .offer-page .step-heading h2 { font: 750 clamp(1.8rem, 3vw, 2.35rem)/1.16 var(--font-sans); letter-spacing: -.035em; margin: 0 0 10px; }
.offer-page .step-heading p { font-size: 1rem; line-height: 1.6; margin: 0; color: var(--muted); }
.offer-page .step-heading > span { display: none; }
.postcode-context { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; color: var(--muted); margin-bottom: 14px; font-size: .9rem; }
.postcode-context strong { color: var(--ink); margin-left: 4px; }
.offer-page .text-button { background: transparent; padding: 8px 0; box-shadow: none; font-size: .95rem; font-weight: 650; }
.postcode-context .text-button { text-decoration: underline; text-underline-offset: 3px; }
.offer-page .address-tabs { display: flex; gap: 5px; padding: 5px; margin-bottom: 20px; border: 1px solid var(--line); border-radius: 12px; background: #f3f6fa; }
.offer-page .address-tabs > button { flex: 1; min-height: 46px; padding: 10px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font-size: .9rem; font-weight: 700; box-shadow: none; }
.offer-page .address-tabs > button[aria-selected="true"] { background: var(--blue-600); color: #fff; box-shadow: 0 2px 5px rgba(17, 68, 132, .14); }
.offer-page .address-tabs > button:focus-visible { outline: 3px solid #8eb8e8; outline-offset: 2px; }
.offer-page #manual-address { margin: 0 0 16px; padding: 0; border: 0; background: transparent; }
.offer-page .address-results { max-height: 340px; border: 1px solid var(--line); border-radius: 7px; overflow-y: auto; margin: 0 0 12px; }
.offer-page .address-option { display: flex; align-items: center; gap: 16px; width: 100%; min-height: 65px; padding: 18px 20px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--ink); font-size: .95rem; font-weight: 550; line-height: 1.5; box-shadow: none; text-align: left; }
.offer-page .address-option:last-child { border-bottom: 0; }
.offer-page .address-option::before { content: ""; box-sizing: border-box; flex: 0 0 24px; width: 24px; height: 24px; border: 2px solid #9aaaba; border-radius: 50%; background: #fff; }
.offer-page .address-option.selected { background: var(--blue-50); color: var(--blue-700); }
.offer-page .address-option.selected::before { border: 7px solid var(--blue-600); }
.offer-page .address-option:hover { background: var(--blue-50); }
.offer-page .actions { margin-top: 30px; padding-top: 0; justify-content: space-between; align-items: center; gap: 16px; }
.offer-page button.primary { min-height: 50px; min-width: 160px; border-radius: 7px; font-size: .95rem; font-weight: 700; background: var(--blue-600); box-shadow: none; }
.offer-page button.primary:hover:not(:disabled) { background: var(--blue-700); transform: none; }
.offer-page button.primary:disabled { background: #e1e8f0; color: #596d84; opacity: 1; }
.offer-page .lookup-hero { max-width: none; gap: 20px; margin-top: 32px; }
.offer-page .lookup-hero input { text-align: left; min-height: 54px; letter-spacing: .03em; font-size: 1rem; }
.offer-page label { font-size: .9rem; font-weight: 600; }
.offer-page input, .offer-page select, .offer-page textarea { min-height: 48px; font-size: 1rem; background: #fff; }
.offer-page .consent input { min-height: 20px; }
.offer-page .consent { font-weight: 450; }
.offer-page [data-step="contact"] .consent { margin-top: 20px; }
.offer-page details.inline-panel { padding: 18px 20px; border: 1px solid #d7e3f1; border-radius: 14px; background: #f5f9fe; }
.offer-page details.inline-panel > summary { cursor: pointer; font-size: .9rem; font-weight: 650; }
.offer-page details.inline-panel > summary::marker { color: var(--blue-600); }
.offer-page details.inline-panel[open] > summary { margin-bottom: 14px; }
.offer-page .choice-grid > a { display: flex; align-items: center; justify-content: center; min-height: 50px; font-size: .95rem; }
.offer-page .valuation-card { padding: 32px; border: 1px solid #d5e3f3; border-radius: 20px; background: radial-gradient(ellipse at 100% 0, #e7f2ff, transparent 65%), #fff; box-shadow: 0 12px 36px rgba(20, 57, 97, .06); text-align: center; }
.offer-page .valuation-kicker { margin: 0 0 12px; color: var(--muted); font-size: .95rem; }
.offer-page .valuation-card .estimate { margin: 0; color: var(--blue-600); font-family: inherit; font-size: clamp(2.8rem, 7vw, 4.4rem); font-weight: 800; line-height: 1.12; letter-spacing: -.045em; }
.offer-page .valuation-card .range { margin: 16px 0 4px; color: var(--muted); font-size: .9rem; }
.offer-page .valuation-card .hint { margin: 0; font-size: .8rem; }
.offer-page .valuation-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 28px; }
.offer-page .valuation-actions > button { min-height: 56px; padding: 14px 18px; border-radius: 10px; font-size: .95rem; font-weight: 700; white-space: normal; line-height: 1.35; }
.offer-page .valuation-actions > .secondary { border: 1px solid #bfd4ed; background: #fff; color: var(--blue-700); box-shadow: none; }
.offer-page .valuation-actions > .secondary:hover { background: #edf4fe; transform: none; }
.offer-page .valuation-disclaimer { max-width: 54ch; margin: 20px auto 0; color: var(--muted); font-size: .79rem; line-height: 1.6; }
.offer-page .valuation-followup { display: grid; gap: 16px; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); text-align: left; }
.offer-page .valuation-followup > .primary { width: 100%; }
.offer-page .not-selling { margin-top: 16px; text-align: center; }
.offer-page #show-not-selling { color: var(--muted); text-decoration: underline; text-underline-offset: 4px; }
.offer-page #not-selling-panel { margin-top: 16px; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #f7f9fc; }
.offer-page .not-selling-confirmation { margin-top: 20px; padding: 22px; border: 1px solid #cfdfed; border-radius: 14px; background: #f3f8fd; }
.offer-page .not-selling-confirmation strong { color: var(--ink); font-size: 1rem; }
.offer-page .not-selling-confirmation p { margin: 10px 0 14px; color: var(--muted); font-size: .9rem; line-height: 1.6; }
.offer-page .not-selling-confirmation a { font-size: .9rem; font-weight: 650; text-underline-offset: 4px; }
.offer-page .funnel-footnote { margin: 24px 0 0; font-size: .83rem; }
.offer-page .welcome-back { max-width: 640px; margin: 0 auto 22px; font-size: .83rem; box-shadow: none; }
.offer-page .wb-badge { display: none; }
.offer-page .funnel-shell > .message { max-width: 640px; margin: 0 auto 22px; }
.offer-footer { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 4px 10px; padding: 8px 18px 24px; color: var(--muted); font-size: .8rem; }
.offer-footer a, .offer-footer .footer-link { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 10px; border-radius: 7px; text-underline-offset: 3px; }
.offer-footer .footer-link { border: 0; background: transparent; color: inherit; font: inherit; font-weight: inherit; text-decoration: underline; text-underline-offset: 3px; box-shadow: none; }
.offer-footer .footer-link:hover { background: var(--surface-2, #f2f7fc); color: var(--ink); box-shadow: none; transform: none; }
.offer-privacy { width: min(520px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 28px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; }
.offer-privacy::backdrop { background: rgba(6, 21, 40, .45); }
.offer-privacy h2 { margin: 0 0 16px; font-size: 1.4rem; }
.offer-privacy p { color: var(--muted); font-size: .95rem; line-height: 1.65; }
.offer-privacy button { min-height: 48px; margin-top: 8px; }
.manual-estimate-panel { padding: 28px; border-radius: 10px; background: #f2f7fc; }
.manual-estimate-label { display: block; margin-bottom: 12px; color: var(--blue-700); font-size: .8rem; font-weight: 650; }
.manual-estimate-panel h3 { margin: 0 0 16px; font-size: clamp(1.3rem, 2.5vw, 1.65rem); line-height: 1.25; letter-spacing: -.02em; }
.manual-estimate-panel p { margin: 0 0 12px; font-size: 1rem; line-height: 1.6; color: var(--muted); }
.manual-estimate-panel .manual-estimate-next { margin-bottom: 0; }
.valuation-fallback-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 26px; }
.offer-page .valuation-fallback-actions button { min-height: 50px; }
.manual-estimate-panel .manual-estimate-reference { margin: 22px 0 14px; font-size: .9rem; }
.manual-estimate-reference strong { color: var(--ink); white-space: nowrap; }
.manual-estimate-track { display: inline-block; padding: 10px 0; color: var(--blue-700); font-weight: 650; text-underline-offset: 4px; }
@media (max-width: 760px) {
  .offer-page .slim-header .nav-shell { height: 64px; padding: 0 18px; }
  .offer-page .funnel-stage { padding: 20px 18px 32px; }
  .offer-page .funnel-progress { margin-bottom: 32px; }
  .funnel-journey { gap: 4px; }
  .funnel-journey li { font-size: .72rem; padding-top: 22px; }
  .offer-page .step-heading h1, .offer-page .step-heading h2 { font-size: 1.8rem; }
  .offer-page .valuation-card { padding: 26px 20px; border-radius: 16px; }
  .offer-page .valuation-actions { grid-template-columns: 1fr; gap: 10px; margin-top: 24px; }
  .offer-page #not-selling-panel { padding: 20px; }
  .offer-page .address-option { padding: 15px 14px; gap: 12px; min-height: 68px; font-size: .9rem; }
  .offer-page .address-results { max-height: 300px; }
  .offer-page .actions { display: flex; }
  .offer-page .actions > button { flex: 0 1 auto; }
  .offer-page .actions > .primary { flex: 0 1 180px; }
  .offer-page button.primary { min-width: 0; }
  .offer-privacy { padding: 22px; }
  .manual-estimate-panel { padding: 24px 20px; }
  .valuation-fallback-actions { flex-direction: column; align-items: stretch; gap: 8px; margin-top: 22px; }
  .valuation-fallback-actions button { width: 100%; }
}

/* Keep navigation visible without covering the form or footer. */
.offer-page:has(.step.active:is([data-step="address"],[data-step="property"],[data-step="contact"],[data-step="photos"],[data-step="review"])) { padding-bottom: 96px; }
@media (min-width: 761px) {
  .offer-page .step.active:is([data-step="address"],[data-step="property"],[data-step="contact"],[data-step="photos"],[data-step="review"]) > .actions {
    position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; margin: 0;
    padding: 16px max(24px, calc((100vw - 720px) / 2));
    border-top: 1px solid var(--line); background: rgba(255,255,255,.98); box-shadow: 0 -8px 28px rgba(13,42,75,.08);
  }
  .offer-page .step.active > .actions > .primary { min-width: 220px; }
}
.offer-page .photo-handoff-card { background: #f4f8fc; border-color: #cbd9e8; }
.offer-page .photo-handoff-card p { color: var(--muted); }
.offer-page .photo-handoff-icon { background: #e4f0fd; color: var(--blue-600); }
.offer-page .photo-skip-note { background: #f7f9fc; border-color: #8eb8e8; color: var(--muted); }
.offer-page .photo-skip-note strong { color: var(--ink); }
@media (max-width: 760px) {
  .offer-page .address-results { max-height: none; overflow: visible; }
  .offer-page .actions { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .offer-page .actions > button,
  .offer-page .actions > .button { width: 100%; min-height: 48px; white-space: normal; line-height: 1.25; }
  .offer-page .actions > .primary { grid-row: 1; }
  .offer-page .actions > .back { grid-row: 2; }
  .offer-page .funnel-actions-sticky { position: sticky; z-index: 8; bottom: 0; margin: 24px -18px -26px; padding: 12px 18px calc(14px + env(safe-area-inset-bottom)); background: linear-gradient(transparent 0, #fff 20%); }
  .offer-page .choice-grid,
  .offer-page .valuation-fallback-actions { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .offer-page .choice-grid button,
  .offer-page .valuation-fallback-actions button { width: 100%; white-space: normal; line-height: 1.25; }
  .offer-page .photo-handoff-card { grid-template-columns: auto minmax(0,1fr); }
  .offer-page .photo-handoff-card .button { grid-column: 1 / -1; width: 100%; }
  .offer-page:has(.step.active:is([data-step="address"],[data-step="property"],[data-step="contact"],[data-step="photos"],[data-step="review"])) { padding-bottom: calc(132px + env(safe-area-inset-bottom)); }
  .offer-page .step.active:is([data-step="address"],[data-step="property"],[data-step="contact"],[data-step="photos"],[data-step="review"]) { padding-bottom: 0; }
  .offer-page .step.active:is([data-step="address"],[data-step="property"],[data-step="contact"],[data-step="photos"],[data-step="review"]) > .actions {
    position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; margin: 0; padding: 10px 18px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line); background: rgba(255,255,255,.98); box-shadow: 0 -10px 30px rgba(13,42,75,.1);
  }
}
@media (max-width: 420px) {
  .offer-page .photo-handoff-card { grid-template-columns: 1fr; }
  .offer-page .photo-handoff-card .button { grid-column: auto; }
  .funnel-journey li { font-size: .64rem; }
}

/* Tracking page stays readable without side-scrolling or cramped labels. */
@media (max-width: 560px) {
  .track-result-head { display: grid; grid-template-columns: 1fr; }
  .track-status-pill { justify-self: start; white-space: normal; }
  .track-stages { grid-template-columns: 1fr 1fr; gap: 12px 8px; }
  .track-stages li { min-width: 0; font-size: .7rem; line-height: 1.3; }
  .track-meta { display: grid; grid-template-columns: 1fr; gap: 6px; }
  .request-item { display: grid; grid-template-columns: minmax(0,1fr); align-items: start; }
  .request-item .ri-status { justify-self: start; white-space: normal; }
  .track-card .message { margin-left: 0; margin-right: 0; }
}
@media (max-width: 380px) {
  .track-stages { grid-template-columns: 1fr; }
  .track-card { padding-left: 14px; padding-right: 14px; }
  .track-card h1 { overflow-wrap: anywhere; }
}
