:root{
    --ink:#1E1E1A;
    --ink-soft:#5B5A52;
    --paper:#F2F4EF;
    --panel:#FFFFFE;
    --teal-900:#0D3B36;
    --teal-700:#155C52;
    --teal-100:#DCEAE6;
    --brass:#B07F2E;
    --brass-soft:#F1E4C9;
    --rust:#9C3E33;
    --sage:#4E7A57;
    --line:#D9DCD1;
    --line-strong:#B9BEAE;
    --radius:4px;
    --shadow:0 1px 0 rgba(13,59,54,.06);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:15px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces',serif;
    font-weight:500;
    letter-spacing:-0.01em;
    color:var(--teal-900);
    margin:0;
  }
  .tnum{ font-variant-numeric:tabular-nums; }
  a{color:var(--teal-700);}
  button{font-family:inherit;}
  ::selection{background:var(--brass-soft);}

  /* ---------- Shell ---------- */
  .shell{max-width:760px;margin:0 auto;padding:0 20px 90px;}
  .masthead{
    padding:34px 20px 22px;
    border-bottom:1px solid var(--line);
    background:var(--panel);
  }
  .masthead-inner{max-width:760px;margin:0 auto;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;}
  .mark{display:flex;align-items:baseline;gap:12px;}
  .mark .glyph{
    font-family:'Fraunces',serif;font-weight:600;font-size:22px;color:var(--teal-900);
    border:1.5px solid var(--teal-900); width:38px;height:38px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .mark .titles h1{font-size:20px;}
  .mark .titles p{margin:2px 0 0;color:var(--ink-soft);font-size:12.5px;}
  .venue{text-align:right;font-size:12.5px;color:var(--ink-soft);}
  .venue strong{color:var(--teal-900);font-weight:600;}

  /* ---------- Progress ---------- */
  .progress{
    max-width:760px;margin:0 auto;padding:22px 20px 0;
    display:flex;gap:0;
  }
  .p-step{flex:1;position:relative;padding-bottom:14px;}
  .p-step .num{
    font-family:'Fraunces',serif;font-size:13px;color:var(--ink-soft);
    display:flex;align-items:center;gap:8px;
  }
  .p-step .num em{
    font-style:normal;width:22px;height:22px;border-radius:50%;
    border:1.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;
    font-size:11.5px;color:var(--ink-soft);background:var(--panel);
  }
  .p-step .lbl{margin-top:4px;font-size:12px;color:var(--ink-soft);padding-left:30px;}
  .p-step .bar{position:absolute;bottom:0;left:0;right:10px;height:2px;background:var(--line);}
  .p-step.done .num em{background:var(--teal-900);border-color:var(--teal-900);color:#fff;}
  .p-step.done .bar{background:var(--teal-900);}
  .p-step.active .num em{border-color:var(--brass);color:var(--brass);font-weight:700;}
  .p-step.active .num, .p-step.active .lbl{color:var(--teal-900);font-weight:600;}
  .p-step.active .bar{background:linear-gradient(90deg,var(--teal-900) 50%,var(--line) 50%);}

  /* ---------- Steps ---------- */
  .step{display:none;padding-top:30px;}
  .step.active{display:block;animation:rise .35s ease;}
  @keyframes rise{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
  .step h2{font-size:24px;margin-bottom:4px;}
  .step .lede{color:var(--ink-soft);font-size:13.5px;margin:0 0 22px;max-width:52ch;}

  /* ---------- Category tabs ---------- */
  .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-strong);margin-bottom:0;}
  .tab{
    padding:10px 16px;font-size:13px;color:var(--ink-soft);cursor:pointer;
    border-bottom:2px solid transparent;margin-bottom:-1px;background:none;border-top:none;border-left:none;border-right:none;
  }
  .tab.active{color:var(--teal-900);font-weight:600;border-bottom-color:var(--brass);}
  .tier-note{
    display:flex;justify-content:space-between;align-items:center;
    font-size:12px;color:var(--ink-soft);background:var(--teal-100);
    padding:9px 14px;margin:16px 0;border-radius:var(--radius);
  }
  .tier-note b{color:var(--teal-900);}
  .cat-table{width:100%;border-collapse:collapse;margin-bottom:6px;}
  .cat-table th{
    text-align:left;font-size:11px;text-transform:none;color:var(--ink-soft);
    font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line-strong);
  }
  .cat-table th.num, .cat-table td.num{text-align:right;}
  .cat-row td{padding:13px 10px;border-bottom:1px solid var(--line);font-size:13.5px;vertical-align:top;}
  .cat-row .name{font-weight:600;color:var(--ink);}
  .cat-row .note{display:block;font-size:11.5px;color:var(--ink-soft);font-weight:400;margin-top:2px;}
  .cat-row td.price{font-size:14px;}
  .cat-row td.price.current{font-weight:700;color:var(--teal-900);}
  .cat-row td.price.dim{color:var(--line-strong);text-decoration:line-through;text-decoration-color:var(--line-strong);}
  .cat-row .pick{
    padding:6px 14px;border:1.5px solid var(--teal-900);background:none;color:var(--teal-900);
    border-radius:var(--radius);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;
  }
  .cat-row .pick:hover{background:var(--teal-900);color:#fff;}
  .cat-row.selected{background:var(--brass-soft);}
  .cat-row.selected .pick{background:var(--brass);border-color:var(--brass);color:#fff;}
  .foot-notes{font-size:11.5px;color:var(--ink-soft);margin-top:14px;line-height:1.7;}
  .foot-notes span{display:block;}

  /* ---------- Form ---------- */
  .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .field{margin-bottom:16px;}
  .field.full{grid-column:1/-1;}
  .field label{display:block;font-size:12.5px;font-weight:600;color:var(--teal-900);margin-bottom:6px;}
  .field .hint{font-size:11.5px;color:var(--ink-soft);margin-top:5px;}
  .field input[type=text], .field input[type=email], .field input[type=tel], .field select{
    width:100%;padding:10px 11px;border:1.5px solid var(--line-strong);border-radius:var(--radius);
    font-family:inherit;font-size:14px;background:var(--panel);color:var(--ink);
  }
  .field input:focus, .field select:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);}
  .field-file{border:1.5px dashed var(--line-strong);border-radius:var(--radius);padding:12px;font-size:12.5px;background:var(--panel);}
  .field-file input{font-size:12px;}
  .selected-summary{
    display:flex;justify-content:space-between;align-items:center;background:var(--teal-900);color:#fff;
    padding:14px 18px;border-radius:var(--radius);margin-bottom:24px;
  }
  .selected-summary .cat{font-family:'Fraunces',serif;font-size:16px;}
  .selected-summary .cat small{display:block;font-family:'Inter';font-weight:400;font-size:11px;opacity:.75;margin-top:2px;}
  .selected-summary .fee{font-size:19px;font-weight:700;}
  .checkline{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--ink-soft);margin:6px 0 22px;}
  .checkline input{margin-top:3px;}

  /* ---------- Buttons / nav ---------- */
  .btn-row{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:12px;}
  .btn{
    padding:12px 26px;border-radius:var(--radius);font-size:13.5px;font-weight:600;cursor:pointer;border:1.5px solid transparent;
  }
  .btn-primary{background:var(--teal-900);color:#fff;}
  .btn-primary:hover{background:var(--teal-700);}
  .btn-primary:disabled{background:var(--line-strong);cursor:not-allowed;}
  .btn-ghost{background:none;border-color:var(--line-strong);color:var(--ink-soft);}
  .btn-ghost:hover{border-color:var(--teal-900);color:var(--teal-900);}
  .btn-pay{background:var(--brass);color:#fff;font-size:15px;padding:14px 30px;width:100%;}
  .btn-pay:hover{background:#96692350;}

  /* ---------- Review ---------- */
  .review-card{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);}
  .review-block{padding:18px 20px;border-bottom:1px solid var(--line);}
  .review-block:last-child{border-bottom:none;}
  .review-block h3{font-size:12px;text-transform:none;color:var(--ink-soft);font-weight:600;margin-bottom:10px;font-family:'Inter';letter-spacing:.02em;}
  .kv{display:flex;justify-content:space-between;padding:4px 0;font-size:13.5px;gap:16px;}
  .kv .k{color:var(--ink-soft);}
  .kv .v{font-weight:600;text-align:right;}
  .fee-line{display:flex;justify-content:space-between;font-size:13.5px;padding:5px 0;}
  .fee-line.total{border-top:1px solid var(--line-strong);margin-top:8px;padding-top:12px;font-size:16px;font-weight:700;color:var(--teal-900);}
  .edit-link{background:none;border:none;color:var(--brass);font-size:12px;font-weight:600;cursor:pointer;padding:0;}

  /* ---------- Loader ---------- */
  .loader-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;}
  .ring{width:46px;height:46px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--teal-900);animation:spin 0.9s linear infinite;margin-bottom:20px;}
  @keyframes spin{to{transform:rotate(360deg);}}
  .loader-wrap p{font-size:13.5px;color:var(--ink-soft);}
  .loader-wrap .loud{font-family:'Fraunces',serif;color:var(--teal-900);font-size:17px;margin-bottom:6px;}

  /* ---------- Receipt ---------- */
  .receipt{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);overflow:hidden;}
  .receipt-head{background:var(--teal-900);color:#fff;padding:26px 26px 22px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
  .receipt-head .brand{display:flex;gap:12px;align-items:center;}
  .receipt-head .glyph{width:36px;height:36px;border:1.5px solid rgba(255,255,255,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-weight:600;font-size:18px;}
  .receipt-head h2{color:#fff;font-size:18px;}
  .receipt-head .sub{font-size:11.5px;opacity:.75;margin-top:2px;}
  .paid-chip{background:var(--sage);color:#fff;font-size:11px;font-weight:700;padding:5px 12px;border-radius:20px;letter-spacing:.03em;height:fit-content;}
  .receipt-meta{display:flex;justify-content:space-between;padding:16px 26px;background:var(--teal-100);font-size:12px;color:var(--teal-900);flex-wrap:wrap;gap:8px 24px;}
  .receipt-meta div span{display:block;color:var(--ink-soft);font-size:10.5px;margin-bottom:2px;}
  .receipt-body{padding:22px 26px;}
  .receipt-body .review-block{padding:16px 0;}
  .receipt-foot{padding:18px 26px 24px;border-top:1px dashed var(--line-strong);}
  .email-note{
    display:flex;gap:10px;align-items:center;background:var(--brass-soft);color:#5C4413;padding:11px 14px;
    border-radius:var(--radius);font-size:12.5px;margin:0 26px 22px;
  }
  .receipt-actions{display:flex;gap:10px;padding:0 26px 26px;flex-wrap:wrap;}
  .receipt-actions .btn{flex:1;min-width:180px;}
  .btn-download{background:var(--teal-900);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;}
  .btn-download:hover{background:var(--teal-700);}

  @media(max-width:600px){
    .field-grid{grid-template-columns:1fr;}
    .venue{display:none;}
    .p-step .lbl{display:none;}
    .p-step .num{gap:6px;}
  }
