.urm-app { --urm-primary:#3e2723; --urm-gold:#b8860b; --urm-muted:#6f625f; --urm-line:rgba(161,136,127,.3); --urm-soft:#f6f3f2; --urm-white:#fff; color:#25201f; margin:0 auto; max-width:1180px; }
.urm-app *, .urm-app *::before, .urm-app *::after { box-sizing:border-box; }
.urm-app h2, .urm-app h3 { color:var(--urm-primary); font-family:"Playfair Display",Georgia,serif; }
.urm-intro { margin:0 auto 2.5rem; max-width:720px; text-align:center; }
.urm-intro h2 { font-size:clamp(2rem,4vw,3rem); margin:.4rem 0 1rem; }
.urm-intro p { color:var(--urm-muted); }
.urm-eyebrow { color:var(--urm-gold)!important; font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.urm-card { background:var(--urm-white); border:1px solid rgba(161,136,127,.16); border-radius:16px; box-shadow:0 18px 45px rgba(62,39,35,.07); padding:clamp(1.4rem,4vw,2.5rem); }
.urm-notice { border-radius:12px; margin:0 auto 1.5rem; max-width:850px; padding:1rem 1.25rem; }
.urm-notice.urm-success { background:#e8f5ec; border:1px solid #9fcfae; color:#1f5c34; }
.urm-notice.urm-error { background:#fff0ee; border:1px solid #e0aaa2; color:#8a2418; }
.urm-honeypot { height:0!important; left:-9999px!important; overflow:hidden!important; position:absolute!important; width:0!important; }
.urm-progress { display:flex; justify-content:space-between; list-style:none; margin:0 auto 2rem; max-width:800px; padding:0; position:relative; }
.urm-progress::before { background:var(--urm-line); content:""; height:2px; left:8%; position:absolute; right:8%; top:21px; }
.urm-progress li { align-items:center; color:#968985; display:flex; flex:1; flex-direction:column; font-size:.72rem; gap:.4rem; position:relative; text-transform:uppercase; }
.urm-progress span { align-items:center; background:#fff; border:2px solid #d2c6c2; border-radius:50%; display:flex; font-weight:700; height:42px; justify-content:center; transition:.2s; width:42px; z-index:1; }
.urm-progress li.active, .urm-progress li.done { color:var(--urm-primary); }
.urm-progress li.active span, .urm-progress li.done span { background:var(--urm-primary); border-color:var(--urm-primary); color:#fff; }
.urm-step { display:none; min-height:390px; }
.urm-step.active { display:block; }
.urm-step h3 { font-size:1.7rem; margin:0 0 1.6rem; }
.urm-app label { color:var(--urm-primary); display:block; font-size:.82rem; font-weight:700; margin:0 0 .45rem; }
.urm-app input:not([type=checkbox]):not([type=radio]):not([type=file]), .urm-app select, .urm-app textarea { background:#fff; border:1px solid rgba(161,136,127,.42); border-radius:12px; color:#25201f; min-height:48px; padding:.75rem 1rem; width:100%; }
.urm-app textarea { min-height:130px; resize:vertical; }
.urm-app input:focus, .urm-app select:focus, .urm-app textarea:focus { border-color:var(--urm-primary); box-shadow:0 0 0 3px rgba(62,39,35,.08); outline:0; }
.urm-form-grid { display:grid; gap:1.2rem; grid-template-columns:repeat(2,1fr); }
.urm-form-grid .full { grid-column:1/-1; }
.urm-choice-grid { display:grid; gap:.8rem; grid-template-columns:repeat(3,1fr); margin-bottom:1.8rem; }
.urm-choice-grid.two { grid-template-columns:repeat(2,1fr); }
.urm-choice, .urm-check-grid label { cursor:pointer; margin:0; position:relative; }
.urm-choice input, .urm-check-grid input { opacity:0; position:absolute; }
.urm-choice span, .urm-check-grid span { align-items:center; background:#fbf9f8; border:1px solid var(--urm-line); border-radius:12px; display:flex; justify-content:center; min-height:70px; padding:1rem; text-align:center; transition:.18s; }
.urm-choice input:checked + span, .urm-check-grid input:checked + span { background:rgba(62,39,35,.06); border-color:var(--urm-primary); box-shadow:inset 0 0 0 1px var(--urm-primary); }
.urm-check-grid { display:grid; gap:.8rem; grid-template-columns:repeat(2,1fr); margin:1rem 0 1.8rem; }
.urm-help { color:var(--urm-muted); font-size:.9rem; margin-top:-1rem; }
.urm-dropzone { align-items:center; background:#fbf9f8; border:2px dashed #c9bbb7; border-radius:16px; cursor:pointer; display:flex!important; flex-direction:column; justify-content:center; min-height:230px; padding:2rem!important; text-align:center; }
.urm-dropzone:hover, .urm-dropzone.is-dragging { background:#f6efeb; border-color:var(--urm-primary); }
.urm-dropzone strong { font-size:1.05rem; }
.urm-dropzone span { color:var(--urm-muted); font-weight:400; }
.urm-dropzone input { margin-top:1rem; max-width:100%; }
.urm-file-list { display:grid; gap:.5rem; grid-template-columns:repeat(3,1fr); margin-top:1rem; }
.urm-file-list span { background:var(--urm-soft); border-radius:8px; font-size:.78rem; overflow:hidden; padding:.6rem; text-overflow:ellipsis; white-space:nowrap; }
.urm-consent { align-items:flex-start; display:flex!important; gap:.7rem; line-height:1.45; margin-top:1.5rem!important; }
.urm-consent input { flex:0 0 auto; margin-top:.25rem; }
.urm-summary { background:var(--urm-soft); border-radius:12px; margin-top:1.5rem; padding:1.2rem; }
.urm-summary p { margin:.35rem 0 0; }
.urm-wizard-nav { border-top:1px solid var(--urm-line); display:flex; justify-content:space-between; margin-top:2rem; padding-top:1.5rem; }
.urm-button { align-items:center; background:var(--urm-primary); border:1px solid var(--urm-primary); border-radius:12px; color:#fff; cursor:pointer; display:inline-flex; font-weight:700; justify-content:center; min-height:48px; padding:.75rem 1.4rem; }
.urm-button:hover { background:#271310; color:#fff; }
.urm-button.urm-secondary { background:#fff; color:var(--urm-primary); }
.urm-button.urm-secondary:hover { background:#f6f1ef; }
.urm-next, .urm-submit { margin-left:auto; }
.urm-lookup { margin:0 auto; max-width:560px; }
.urm-lookup label { margin-top:1rem; }
.urm-lookup .urm-button { margin-top:1.5rem; width:100%; }
.urm-portal-head { align-items:center; display:flex; justify-content:space-between; margin-bottom:2rem; }
.urm-portal-head h2 { font-size:2.5rem; margin:.3rem 0 0; }
.urm-status { background:#eee9e6; border-radius:99px; color:#493d3a; display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.04em; padding:.48rem .8rem; text-transform:uppercase; }
.urm-status.status-completed, .urm-status.status-ready, .urm-status.status-quote_accepted { background:#dff1e5; color:#28603b; }
.urm-status.status-cancelled { background:#f8ded9; color:#922d22; }
.urm-status.status-quote_sent { background:#f8ebc9; color:#6c4b00; }
.urm-portal-grid { display:grid; gap:1.5rem; grid-template-columns:360px 1fr; }
.urm-portal-grid aside, .urm-portal-main { min-width:0; }
.urm-portal-main { display:flex; flex-direction:column; gap:1.5rem; }
.urm-gallery { display:grid; gap:.5rem; grid-template-columns:repeat(2,1fr); margin-bottom:1.5rem; }
.urm-gallery img { aspect-ratio:1/1; border-radius:10px; height:100%; object-fit:cover; width:100%; }
.urm-details { margin:0; }
.urm-details dt { color:var(--urm-muted); font-size:.68rem; font-weight:700; letter-spacing:.08em; margin-top:1rem; text-transform:uppercase; }
.urm-details dd { margin:.2rem 0 0; }
.urm-timeline { list-style:none; margin:1.5rem 0 0; padding:0; }
.urm-timeline li { display:flex; gap:1rem; padding:0 0 1.4rem; position:relative; }
.urm-timeline li::before { background:#d9ceca; content:""; height:100%; left:8px; position:absolute; top:12px; width:2px; }
.urm-timeline li:last-child::before { display:none; }
.urm-timeline li > span { background:var(--urm-primary); border:3px solid #fff; border-radius:50%; box-shadow:0 0 0 1px var(--urm-primary); flex:0 0 auto; height:18px; margin-top:3px; width:18px; z-index:1; }
.urm-timeline time { color:var(--urm-muted); display:block; font-size:.76rem; margin-top:.15rem; }
.urm-timeline p { color:var(--urm-muted); margin:.3rem 0 0; }
.urm-card-head { align-items:center; display:flex; justify-content:space-between; }
.urm-card-head h3 { margin-bottom:.3rem; }
.urm-card-head p { color:var(--urm-muted); margin:0; }
.urm-quote table { border-collapse:collapse; margin:1rem 0; width:100%; }
.urm-quote th, .urm-quote td { border-bottom:1px solid var(--urm-line); padding:.85rem .4rem; text-align:left; }
.urm-quote th:last-child, .urm-quote td:last-child { text-align:right; white-space:nowrap; }
.urm-quote tfoot th { color:var(--urm-primary); font-size:1.1rem; }
.urm-quote-note { background:var(--urm-soft); border-radius:10px; padding:1rem; }
.urm-quote-actions { display:flex; gap:.8rem; justify-content:flex-end; }
.urm-messages { background:#fbf9f8; border-radius:12px; display:flex; flex-direction:column; gap:.8rem; margin:1.2rem 0; max-height:480px; min-height:150px; overflow-y:auto; padding:1rem; }
.urm-message { align-self:flex-start; background:#ebe6e3; border-radius:12px 12px 12px 2px; max-width:82%; padding:.8rem 1rem; }
.urm-message.from-customer { align-self:flex-end; background:var(--urm-primary); border-radius:12px 12px 2px 12px; color:#fff; }
.urm-message p { margin:0; }
.urm-message time { display:block; font-size:.65rem; margin-top:.35rem; opacity:.65; text-align:right; }
.urm-empty { align-self:center; color:var(--urm-muted); margin:auto; }
.urm-chat-form { align-items:flex-end; display:flex; gap:.7rem; }
.urm-chat-form textarea { min-height:65px; }
.urm-contact-grid { display:grid; gap:1.5rem; grid-template-columns:.85fr 1.15fr; }
.urm-contact-list dt { color:var(--urm-gold); font-size:.7rem; font-weight:700; letter-spacing:.08em; margin-top:1.2rem; text-transform:uppercase; }
.urm-contact-list dd { border-bottom:1px solid var(--urm-line); margin:.2rem 0 0; padding-bottom:1rem; }
.urm-map { border:0; border-radius:16px; box-shadow:0 18px 45px rgba(62,39,35,.07); height:400px; margin-top:1.5rem; width:100%; }
@media(max-width:900px){.urm-portal-grid,.urm-contact-grid{grid-template-columns:1fr}.urm-progress b{display:none}.urm-step{min-height:0}.urm-portal-head{align-items:flex-start;flex-direction:column;gap:1rem}}
@media(max-width:620px){.urm-form-grid,.urm-choice-grid,.urm-choice-grid.two,.urm-check-grid{grid-template-columns:1fr}.urm-file-list{grid-template-columns:1fr}.urm-progress::before{left:10%;right:10%}.urm-progress span{height:36px;width:36px}.urm-card{padding:1.15rem}.urm-quote-actions,.urm-chat-form{align-items:stretch;flex-direction:column}.urm-quote-actions .urm-button{width:100%}}

