  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --forest-deep:   #0d1710;
      --forest-dark:   #111f14;
      --forest-mid:    #1a2e1d;
      --forest-accent: #2d4a30;
      --forest-light:  #3d6642;
      --sage:          #7a9e7e;
      --sage-light:    #a8c5a0;
      --gold:          #c9a84c;
      --gold-light:    #e2c97e;
      --cream:         #f4ede0;
      --cream-soft:    #ede5d6;
      --white:         #ffffff;
      --glass:         rgba(255,255,255,0.04);
      --glass-border:  rgba(255,255,255,0.08);
      --radius:        14px;
      --radius-lg:     22px;
      --error:         #e07070;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', sans-serif;
      background: var(--forest-deep);
      color: var(--cream);
      overflow-x: hidden;
      min-height: 100vh;
      cursor: none;
    }

    body::before {
      content: '';
      position: fixed; inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
      pointer-events: none; z-index: 1; opacity: .5;
    }

    /* ── Cursor ── */
    #cursor { width:10px;height:10px;background:var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;mix-blend-mode:difference; }
    #cursor-ring { width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;opacity:.5;transition:width .3s,height .3s; }

    /* ── NAV ── */
    nav {
      position: fixed; top:0; left:0; right:0; z-index:100;
      display:flex; align-items:center; justify-content:space-between;
      padding: 20px 60px;
      background: rgba(13,23,16,.95);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--glass-border);
    }
    .nav-logo { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:600; color:var(--cream); text-decoration:none; letter-spacing:.04em; }
    .nav-logo span { color:var(--gold); }
    .nav-back { display:flex; align-items:center; gap:8px; color:var(--sage-light); text-decoration:none; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; transition:color .25s; }
    .nav-back:hover { color:var(--gold-light); }
    .nav-back svg { transition:transform .25s; }
    .nav-back:hover svg { transform:translateX(-4px); }

    /* ── BG Deco ── */
    .bg-deco {
      position: fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden;
    }
    .bg-deco::before {
      content:'';position:absolute;top:-200px;right:-200px;width:700px;height:700px;
      background:radial-gradient(circle, rgba(45,74,48,.35) 0%, transparent 65%);
      border-radius:50%;
    }
    .bg-deco::after {
      content:'';position:absolute;bottom:-200px;left:-200px;width:600px;height:600px;
      background:radial-gradient(circle, rgba(26,46,29,.4) 0%, transparent 65%);
      border-radius:50%;
    }

    /* ── MAIN LAYOUT ── */
    .page-wrap {
      position:relative; z-index:2;
      max-width: 1200px;
      margin: 0 auto;
      padding: 120px 40px 80px;
    }

    /* ── PAGE HEADER ── */
    .page-header {
      text-align:center; margin-bottom:60px;
      animation: fade-up .8s cubic-bezier(.22,1,.36,1) both;
    }
    @keyframes fade-up { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }

    .page-tag {
      display:inline-flex; align-items:center; gap:8px;
      background:var(--glass); border:1px solid var(--glass-border);
      border-radius:50px; padding:6px 18px;
      font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
      color:var(--sage-light); margin-bottom:20px;
    }
    .page-tag::before { content:''; width:6px;height:6px;background:var(--gold);border-radius:50%; }

    .page-title {
      font-family:'Cormorant Garamond',serif;
      font-size:clamp(2.2rem,4vw,3.6rem);
      font-weight:300; line-height:1.1; color:var(--cream); margin-bottom:12px;
    }
    .page-title em { color:var(--gold-light); font-style:italic; }

    .page-sub { font-size:.95rem; color:var(--sage-light); font-weight:300; }

    /* ── PROGRESS STEPS ── */
    .steps-bar {
      display:flex; align-items:center; justify-content:center;
      gap:0; margin-bottom:60px;
      animation: fade-up .8s .1s cubic-bezier(.22,1,.36,1) both;
    }
    .step-item { display:flex; align-items:center; gap:0; }
    .step-dot {
      width:36px; height:36px; border-radius:50%;
      border:1px solid var(--glass-border);
      background:var(--glass);
      display:flex; align-items:center; justify-content:center;
      font-size:.75rem; font-weight:500; color:var(--sage);
      transition:all .35s; position:relative; cursor:pointer;
    }
    .step-dot.active {
      background:var(--gold); border-color:var(--gold);
      color:var(--forest-deep); font-weight:600;
      box-shadow:0 0 20px rgba(201,168,76,.3);
    }
    .step-dot.done {
      background:var(--forest-accent); border-color:var(--sage);
      color:var(--sage-light);
    }
    .step-dot.done::after { content:'✓'; }
    .step-dot.done span { display:none; }
    .step-line { width:60px; height:1px; background:var(--glass-border); transition:background .35s; }
    .step-line.done { background:var(--sage); }
    .step-label {
      position:absolute; top:44px; left:50%; transform:translateX(-50%);
      font-size:.65rem; letter-spacing:.08em; text-transform:uppercase;
      color:var(--sage); white-space:nowrap;
    }
    .step-dot.active .step-label { color:var(--gold-light); }
    .step-wrapper { position:relative; padding-bottom:28px; }

    /* ── FORM CONTAINER ── */
    .form-container {
      background:var(--glass);
      border:1px solid var(--glass-border);
      border-radius:var(--radius-lg);
      backdrop-filter:blur(12px);
      overflow:hidden;
      animation: fade-up .8s .2s cubic-bezier(.22,1,.36,1) both;
    }

    /* Step panels */
    .step-panel { display:none; padding:48px; }
    .step-panel.active { display:block; }

    /* Section heading inside form */
    .form-section-title {
      font-family:'Cormorant Garamond',serif;
      font-size:1.6rem; font-weight:400; color:var(--cream);
      margin-bottom:6px;
    }
    .form-section-sub { font-size:.82rem; color:var(--sage); margin-bottom:36px; }

    /* Divider */
    .form-divider {
      height:1px; background:var(--glass-border); margin:32px 0;
    }
    .form-divider-label {
      text-align:center; position:relative; margin:28px 0;
    }
    .form-divider-label::before {
      content:''; position:absolute; top:50%; left:0; right:0; height:1px; background:var(--glass-border);
    }
    .form-divider-label span {
      position:relative; background:var(--forest-dark);
      padding:0 16px; font-size:.72rem; letter-spacing:.12em;
      text-transform:uppercase; color:var(--sage);
    }

    /* Form fields */
    .form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
    .form-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; }
    .form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:20px; }
    .form-group:last-child { margin-bottom:0; }

    .form-label {
      font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
      color:var(--sage); font-weight:400;
      display:flex; align-items:center; gap:6px;
    }
    .form-label .required { color:var(--gold); font-size:.85rem; }

    .form-input, .form-select, .form-textarea {
      background:rgba(255,255,255,.04);
      border:1px solid var(--glass-border);
      border-radius:var(--radius);
      padding:14px 18px;
      color:var(--cream);
      font-family:'DM Sans',sans-serif; font-size:.9rem; font-weight:300;
      outline:none; width:100%;
      transition:border-color .25s, background .25s;
    }
    .form-input::placeholder, .form-textarea::placeholder { color:rgba(168,197,160,.4); }
    .form-input:focus, .form-select:focus, .form-textarea:focus {
      border-color:var(--sage); background:rgba(255,255,255,.06);
    }
    .form-input.error, .form-select.error { border-color:var(--error); }
    .form-select option { background:var(--forest-dark); color:var(--cream); }
    .form-textarea { resize:vertical; min-height:90px; }

    /* Date input */
    input[type="date"]::-webkit-calendar-picker-indicator {
      filter:invert(70%) sepia(30%) saturate(400%) hue-rotate(80deg);
      cursor:pointer;
    }

    /* ── THEME PICKER ── */
    .theme-grid {
      display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
      margin-top:4px;
    }
    .theme-card {
      border-radius:var(--radius);
      border:2px solid var(--glass-border);
      overflow:hidden; cursor:pointer;
      transition:border-color .25s, transform .25s, box-shadow .25s;
      position:relative;
      background:var(--forest-mid);
    }
    .theme-card:hover { border-color:var(--sage); transform:translateY(-3px); box-shadow:0 12px 32px rgba(0,0,0,.4); }
    .theme-card.selected { border-color:var(--gold); box-shadow:0 0 24px rgba(201,168,76,.25); }
    .theme-card.selected::after {
      content:'✓'; position:absolute; top:8px; right:8px;
      width:22px; height:22px; background:var(--gold); border-radius:50%;
      display:grid; place-items:center;
      font-size:.7rem; color:var(--forest-deep); font-weight:700;
      z-index:3;
    }
    .theme-thumb {
      height:110px; display:flex; align-items:center; justify-content:center;
      font-size:1.6rem; overflow:hidden; position:relative;
    }
    .theme-thumb img {
      width:100%; height:100%; object-fit:cover; object-position:center;
      display:block;
      transition: transform .4s cubic-bezier(.22,1,.36,1);
    }
    .theme-card:hover .theme-thumb img { transform:scale(1.07); }
    .theme-thumb-fallback {
      width:100%; height:100%; display:flex; align-items:center; justify-content:center;
      font-size:1.8rem;
    }
    .theme-info { padding:12px 14px; background:var(--forest-mid); }
    .theme-name { font-size:.85rem; color:var(--cream); font-weight:400; margin-bottom:2px; }
    .theme-cat  { font-size:.68rem; color:var(--sage); }

    /* ── PACKAGE CARDS ── */
    .pkg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:4px; }
    .pkg-card {
      border:1px solid var(--glass-border);
      border-radius:var(--radius);
      padding:24px 20px;
      cursor:pointer;
      transition:border-color .25s, background .25s, transform .25s;
      position:relative;
      background:var(--glass);
    }
    .pkg-card:hover { border-color:var(--sage); background:rgba(45,74,48,.15); }
    .pkg-card.selected { border-color:var(--gold); background:rgba(201,168,76,.07); }
    .pkg-card.selected::after {
      content:'✓'; position:absolute; top:12px; right:14px;
      width:20px;height:20px; background:var(--gold); border-radius:50%;
      display:grid;place-items:center;
      font-size:.65rem; color:var(--forest-deep); font-weight:700;
    }
    .pkg-badge {
      font-size:.62rem; letter-spacing:.1em; text-transform:uppercase;
      background:rgba(201,168,76,.15); border:1px solid rgba(201,168,76,.3);
      color:var(--gold-light); padding:2px 8px; border-radius:50px;
      display:inline-block; margin-bottom:12px;
    }
    .pkg-name { font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--cream); margin-bottom:4px; }
    .pkg-price { font-size:1.3rem; font-weight:500; color:var(--gold); margin-bottom:12px; }
    .pkg-price small { font-size:.75rem; color:var(--sage); font-weight:300; }
    .pkg-features { list-style:none; display:flex; flex-direction:column; gap:6px; }
    .pkg-features li { font-size:.78rem; color:var(--sage-light); display:flex; gap:8px; align-items:start; }
    .pkg-features li::before { content:'✦'; color:var(--gold); font-size:.6rem; margin-top:2px; flex-shrink:0; }

    /* ── PHOTO UPLOAD ── */
    .upload-zone {
      border:2px dashed var(--glass-border);
      border-radius:var(--radius);
      padding:40px 24px;
      text-align:center;
      cursor:pointer;
      transition:border-color .25s, background .25s;
      position:relative;
    }
    .upload-zone:hover, .upload-zone.drag-over {
      border-color:var(--sage); background:rgba(122,158,126,.06);
    }
    .upload-zone input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; }
    .upload-icon { font-size:2.5rem; margin-bottom:12px; }
    .upload-label { font-size:.9rem; color:var(--cream); margin-bottom:4px; }
    .upload-sub { font-size:.75rem; color:var(--sage); }
    .upload-previews { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
    .preview-thumb {
      width:80px; height:80px; border-radius:10px; object-fit:cover;
      border:1px solid var(--glass-border); position:relative;
    }
    .preview-wrap { position:relative; display:inline-block; }
    .preview-remove {
      position:absolute; top:-6px; right:-6px;
      width:18px;height:18px; background:var(--error); border-radius:50%;
      display:grid;place-items:center; font-size:.65rem; cursor:pointer;
      color:#fff; font-weight:700;
    }

    /* ── REVIEW PANEL ── */
    .review-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
    .review-block {
      background:rgba(255,255,255,.03);
      border:1px solid var(--glass-border);
      border-radius:var(--radius);
      padding:24px;
    }
    .review-block-title {
      font-size:.7rem; text-transform:uppercase; letter-spacing:.12em;
      color:var(--gold); margin-bottom:16px;
      display:flex; align-items:center; gap:8px;
    }
    .review-block-title::before { content:''; display:block; width:20px; height:1px; background:var(--gold); }
    .review-row { display:flex; justify-content:space-between; gap:16px; margin-bottom:10px; }
    .review-key { font-size:.78rem; color:var(--sage); }
    .review-val { font-size:.82rem; color:var(--cream); text-align:right; font-weight:400; max-width:60%; }
    .review-photos-row { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
    .review-photo { width:52px;height:52px; border-radius:8px; object-fit:cover; border:1px solid var(--glass-border); }

    .review-total {
      grid-column:span 2;
      background:rgba(201,168,76,.07);
      border:1px solid rgba(201,168,76,.25);
      border-radius:var(--radius);
      padding:24px;
      display:flex; justify-content:space-between; align-items:center;
    }
    .review-total-label { font-size:.85rem; color:var(--sage-light); }
    .review-total-price {
      font-family:'Cormorant Garamond',serif;
      font-size:2rem; color:var(--gold); font-weight:600;
    }

    /* ── NAVIGATION BUTTONS ── */
    .form-nav {
      display:flex; justify-content:space-between; align-items:center;
      padding:28px 48px;
      border-top:1px solid var(--glass-border);
      background:rgba(13,23,16,.5);
    }
    .btn-prev {
      display:flex; align-items:center; gap:8px;
      background:transparent; border:1px solid var(--glass-border);
      color:var(--sage-light); padding:14px 28px; border-radius:50px;
      font-family:'DM Sans',sans-serif; font-size:.85rem;
      cursor:pointer; transition:border-color .25s, color .25s;
    }
    .btn-prev:hover { border-color:var(--sage); color:var(--cream); }
    .btn-next {
      display:flex; align-items:center; gap:10px;
      background:var(--gold); color:var(--forest-deep);
      padding:14px 32px; border-radius:50px;
      font-family:'DM Sans',sans-serif; font-size:.9rem; font-weight:500;
      border:none; cursor:pointer;
      box-shadow:0 8px 24px rgba(201,168,76,.25);
      transition:transform .25s, box-shadow .25s;
    }
    .btn-next:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(201,168,76,.35); }
    .btn-next:disabled { opacity:.5; cursor:not-allowed; transform:none; }
    .btn-wa {
      background:linear-gradient(135deg,#25d366,#128c3e);
      color:#fff; display:flex; align-items:center; gap:10px;
      padding:16px 36px; border-radius:50px;
      font-family:'DM Sans',sans-serif; font-size:.95rem; font-weight:500;
      border:none; cursor:pointer;
      box-shadow:0 8px 24px rgba(37,211,102,.2);
      transition:transform .25s, box-shadow .25s;
    }
    .btn-wa:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(37,211,102,.3); }
    .btn-placeholder { width:120px; }

    /* ── FOOTER ── */
    .page-footer {
      text-align:center; padding:40px; position:relative; z-index:2;
      border-top:1px solid var(--glass-border); margin-top:0;
    }
    .page-footer a { font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--cream); text-decoration:none; }
    .page-footer a span { color:var(--gold); }
    .page-footer p { font-size:.75rem; color:var(--sage); margin-top:8px; }

    /* ── Reveal ── */
    .reveal { opacity:0; transform:translateY(20px); transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
    .reveal.visible { opacity:1; transform:translateY(0); }

    /* ── Mobile ── */
    @media(max-width:800px){
      nav { padding:16px 20px; }
      .page-wrap { padding:100px 16px 60px; }
      .step-panel { padding:28px 20px; }
      .form-nav { padding:20px; }
      .form-grid-2, .form-grid-3 { grid-template-columns:1fr; }
      .theme-grid { grid-template-columns:repeat(2,1fr); }
      .pkg-grid { grid-template-columns:1fr; }
      .review-grid { grid-template-columns:1fr; }
      .review-total { grid-column:span 1; flex-direction:column; gap:8px; text-align:center; }
      .step-line { width:30px; }
    }