/* === DHM SHARED STYLES === */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem;
  --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
  --space-16: 4rem; --space-20: 5rem;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'DM Sans', 'Helvetica Neue', sans-serif;
  --gold: #B8960C; --gold-light: #D4B44A; --gold-dark: #8A710A;
  --gold-faint: rgba(184,150,12,0.08); --gold-subtle: rgba(184,150,12,0.15);
  --bg: #FDFCF9; --surface: #FFFFFF; --surface-off: #F7F5F0;
  --text: #1A1A1A; --text-m: #6B6B6B; --text-f: #A0A0A0;
  --border: #E0DCD4; --divider: #EDEAE3;
  --error: #C0392B;
  --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem;
  --transition: 200ms cubic-bezier(0.16,1,0.3,1);
  --shadow-sm: 0 1px 3px rgba(26,26,26,0.04);
  --shadow-md: 0 4px 16px rgba(26,26,26,0.06);
  --shadow-lg: 0 12px 40px rgba(26,26,26,0.1);
  --narrow: 640px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}
body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);color:var(--text);background:var(--bg);line-height:1.6}
.page{display:flex;flex-direction:column;min-height:100dvh}
.wrap{width:100%;max-width:var(--narrow);margin:0 auto;padding:var(--space-8) var(--space-6);flex:1}

/* HEADER */
.hdr{text-align:center;padding-bottom:var(--space-8);margin-bottom:var(--space-6)}
.logo{display:inline-flex;width:56px;height:56px;margin-bottom:var(--space-5)}
.logo svg{width:56px;height:56px}
.hdr h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--text);line-height:1.15;letter-spacing:-0.01em;margin-bottom:var(--space-3)}
.hdr h1 span{color:var(--gold)}
.hdr p{font-size:var(--text-sm);color:var(--text-m);max-width:480px;margin:0 auto;line-height:1.7}

/* NAV LINK */
.nav-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--text-m);text-decoration:none;padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);margin-bottom:var(--space-6)}
.nav-link:hover{border-color:var(--gold-light);color:var(--gold-dark);background:var(--gold-faint)}
.nav-link svg{width:14px;height:14px}

/* TABS */
.tab-bar{display:flex;gap:var(--space-1);background:var(--surface-off);border-radius:var(--radius-lg);padding:4px;margin-bottom:var(--space-8);border:1px solid var(--divider)}
.tab-btn{flex:1;padding:var(--space-3) var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;color:var(--text-m);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);text-align:center;line-height:1.3;letter-spacing:0.01em}
.tab-btn:hover{color:var(--text);background:rgba(255,255,255,0.6)}
.tab-btn.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}
.tab-content{display:none;animation:fadeIn 350ms ease}
.tab-content.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* PROGRESS */
.prog-wrap{margin-bottom:var(--space-8)}
.prog-dots{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-2)}
.prog-dot{width:10px;height:10px;border-radius:50%;background:var(--border);transition:all var(--transition);cursor:pointer}
.prog-dot.active{background:var(--gold);box-shadow:0 0 0 3px var(--gold-faint)}
.prog-dot.done{background:var(--gold-light)}
.prog-lbl{text-align:center;font-size:var(--text-xs);color:var(--text-f);font-weight:500;text-transform:uppercase;letter-spacing:0.08em}

/* SECTIONS */
.fsec{display:none;animation:fadeIn 350ms ease}
.fsec.active{display:block}
.sec-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--text);margin-bottom:var(--space-2)}
.sec-desc{font-size:var(--text-sm);color:var(--text-m);margin-bottom:var(--space-8);line-height:1.6}

/* FIELDS */
.fg{margin-bottom:var(--space-6)}
.fl{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text);margin-bottom:var(--space-2)}
.fl .req{color:var(--gold);margin-left:2px}
.fh{font-size:var(--text-xs);color:var(--text-f);margin-bottom:var(--space-2);line-height:1.5}
.fi,.fta{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);outline:none}
.fi::placeholder,.fta::placeholder{color:var(--text-f)}
.fi:hover,.fta:hover{border-color:var(--gold-light)}
.fi:focus,.fta:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-faint)}
.fi.err,.fta.err{border-color:var(--error);box-shadow:0 0 0 3px rgba(192,57,43,0.08)}
.fta{min-height:120px;resize:vertical;line-height:1.6}
.fe{font-size:var(--text-xs);color:var(--error);margin-top:var(--space-1);display:none}
.fe.vis{display:block}

/* OPTIONS */
.og{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
@media(max-width:480px){.og{grid-template-columns:1fr}}
.oc{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);user-select:none}
.oc:hover{border-color:var(--gold-light);background:var(--gold-faint)}
.oc.sel{border-color:var(--gold);background:var(--gold-faint);box-shadow:0 0 0 1px var(--gold)}
.oc input{position:absolute;opacity:0;width:0;height:0}
.ock{flex-shrink:0;width:20px;height:20px;border:2px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}
.oc.rad .ock{border-radius:50%}
.oc.sel .ock{background:var(--gold);border-color:var(--gold)}
.ock svg{width:12px;height:12px;opacity:0;transition:opacity var(--transition)}
.oc.sel .ock svg{opacity:1}
.ocl{font-size:var(--text-sm);color:var(--text);font-weight:400;line-height:1.4}
.og.col1{grid-template-columns:1fr;max-width:360px}

/* FILE UPLOAD */
.file-area{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-4);text-align:center;cursor:pointer;transition:all var(--transition);background:var(--surface)}
.file-area:hover{border-color:var(--gold-light);background:var(--gold-faint)}
.file-area svg{width:32px;height:32px;color:var(--text-f);margin:0 auto var(--space-3)}
.file-area p{font-size:var(--text-sm);color:var(--text-m)}
.file-area small{font-size:var(--text-xs);color:var(--text-f)}
.file-list{margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}
.file-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--surface-off);border-radius:var(--radius-sm);font-size:var(--text-xs)}
.file-item button{background:none;border:none;color:var(--error);cursor:pointer;font-size:var(--text-xs);font-weight:600}

/* TERMS */
.terms-box{max-height:260px;overflow-y:auto;padding:var(--space-5);background:var(--surface-off);border:1px solid var(--divider);border-radius:var(--radius-lg);margin-bottom:var(--space-6);font-size:var(--text-xs);color:var(--text-m);line-height:1.7}
.terms-box::-webkit-scrollbar{width:6px}
.terms-box::-webkit-scrollbar-track{background:transparent}
.terms-box::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.terms-box h4{font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);color:var(--text);margin-top:var(--space-4);margin-bottom:var(--space-2)}
.terms-box h4:first-child{margin-top:0}
.terms-box p{margin-bottom:var(--space-3)}
.terms-note{font-size:var(--text-xs);color:var(--text-m);font-style:italic;margin-bottom:var(--space-4)}

/* BUTTONS */
.br{display:flex;gap:var(--space-3);margin-top:var(--space-8)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:none;outline:none;text-decoration:none}
.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.btn-p{background:var(--gold);color:#fff;flex:1}
.btn-p:hover{background:var(--gold-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-p:active{transform:translateY(0)}
.btn-s{background:transparent;color:var(--text-m);border:1px solid var(--border)}
.btn-s:hover{border-color:var(--gold-light);color:var(--gold-dark);background:var(--gold-faint)}
.btn svg{width:16px;height:16px}

/* SUCCESS */
.success{display:none;text-align:center;padding:var(--space-16) 0;animation:fadeIn 500ms ease}
.success.active{display:block}
.success-ico{width:72px;height:72px;margin:0 auto var(--space-6);background:var(--gold-faint);border-radius:50%;display:flex;align-items:center;justify-content:center}
.success-ico svg{width:32px;height:32px;color:var(--gold)}
.success h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--text);margin-bottom:var(--space-3)}
.success p{font-size:var(--text-sm);color:var(--text-m);max-width:400px;margin:0 auto;line-height:1.7}
.success .btn-p{margin-top:var(--space-6)}

/* FOOTER */
footer{text-align:center;padding:var(--space-6) var(--space-4);border-top:1px solid var(--divider)}
footer p{font-size:var(--text-xs);color:var(--text-f)}
footer a{color:var(--text-f);text-decoration:none;transition:color var(--transition)}
footer a:hover{color:var(--gold)}

/* SPINNER */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin 600ms linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.btn:disabled{opacity:0.45;cursor:not-allowed;transform:none}

/* TERMS SCROLL HINT */
.terms-scroll-hint{font-size:var(--text-sm);color:var(--gold-dark);text-align:center;padding:var(--space-3) 0;animation:gentle-pulse 2s ease-in-out infinite}
@keyframes gentle-pulse{0%,100%{opacity:1}50%{opacity:0.5}}
.fi:disabled,.fta:disabled{background:var(--surface-off);opacity:0.5;cursor:not-allowed}

@media(max-width:640px){
  .wrap{padding:var(--space-6) var(--space-4)}
  .hdr h1{font-size:var(--text-xl)}
  .br{flex-direction:column-reverse}
  .btn{width:100%}
  .tab-btn{font-size:clamp(0.68rem,0.6rem+0.3vw,0.8rem);padding:var(--space-2) var(--space-1)}
}
