*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cream:#FAF7F2;--beige:#F0EAE0;--tan:#D4C4A8;--blush:#E8D5C4;--rose:#C9A99A;
  --dusty:#B8907A;--bark:#8B6354;--ink:#3D2B1F;--soft-pink:#EDD8D0;
  --serif:"Cormorant Garamond",Georgia,serif;--sans:"Jost",sans-serif;--script:"Dancing Script",cursive;
  --etsy:#F1641E;--fb:#1877F2;
}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--cream);color:var(--ink);font-size:16px;line-height:1.6;overflow-x:hidden}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(250,247,242,0.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--tan);padding:0 1.5rem}
.nav-inner{max-width:1300px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
.nav-logo{font-family:var(--script);font-size:1.6rem;color:var(--bark);text-decoration:none;white-space:nowrap;flex-shrink:0;cursor:pointer}
.nav-links{display:flex;align-items:center;gap:0.2rem;list-style:none}
.nav-links a{font-family:var(--sans);font-size:0.74rem;font-weight:400;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:0.38rem 0.65rem;border-radius:3px;transition:all 0.2s;white-space:nowrap;opacity:0.8;cursor:pointer}
.nav-links a:hover{opacity:1;color:var(--bark);background:rgba(139,99,84,0.06)}
.nav-pill{background:var(--soft-pink);color:var(--bark)!important;opacity:1!important;border:1px solid var(--rose);font-weight:500!important}
.nav-pill:hover{background:var(--blush)!important}
.nav-right{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}
.social-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:transform 0.18s,opacity 0.18s}
.social-icon:hover{transform:scale(1.12);opacity:0.85}
.etsy-icon{background:var(--etsy)}.fb-icon{background:var(--fb)}
.cart-nav-btn{background:var(--bark);color:var(--cream)!important;border:none;padding:0.38rem 0.9rem;border-radius:3px;cursor:pointer;display:flex;align-items:center;gap:0.45rem;font-family:var(--sans);font-size:0.74rem;font-weight:500;letter-spacing:0.09em;text-transform:uppercase;transition:background 0.2s;white-space:nowrap}
.cart-nav-btn:hover{background:var(--dusty)!important}
.cart-count{background:white;color:var(--bark);border-radius:10px;font-size:0.62rem;padding:0.1rem 0.42rem;font-weight:700;min-width:16px;text-align:center;display:none}
.cart-count.show{display:inline-block}

/* CART DRAWER */
.cart-overlay{position:fixed;inset:0;background:rgba(61,43,31,0.4);z-index:400;opacity:0;pointer-events:none;transition:opacity 0.25s}
.cart-overlay.open{opacity:1;pointer-events:all}
.cart-drawer{position:fixed;top:0;right:0;height:100%;width:420px;max-width:95vw;background:var(--cream);z-index:401;transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;box-shadow:-8px 0 40px rgba(61,43,31,0.15)}
.cart-drawer.open{transform:translateX(0)}
.cart-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--tan);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.cart-header h2{font-family:var(--serif);font-size:1.4rem;font-weight:400}
.cart-close{background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--bark);padding:0.2rem}
.cart-items{flex:1;overflow-y:auto;padding:1rem 1.5rem}
.cart-empty{text-align:center;padding:3rem 1rem;color:var(--bark)}
.cart-empty .ei{font-size:2.5rem;margin-bottom:0.75rem;display:block}
.cart-empty p{font-size:0.88rem;line-height:1.6}
.cart-item{display:grid;grid-template-columns:56px 1fr auto;gap:0.75rem;align-items:start;padding:1rem 0;border-bottom:1px solid rgba(212,196,168,0.4)}
.cart-item:last-child{border-bottom:none}
.cart-item-thumb{width:56px;height:56px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0}
.cart-item-info h4{font-family:var(--serif);font-size:0.95rem;font-weight:500;color:var(--ink);margin-bottom:0.15rem}
.cart-item-info p{font-size:0.72rem;color:var(--bark);line-height:1.4}
.cart-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:0.4rem}
.cart-item-price{font-family:var(--serif);font-size:1rem;color:var(--ink);font-weight:500;white-space:nowrap}
.remove-btn{background:none;border:none;cursor:pointer;font-size:0.7rem;color:var(--dusty);text-transform:uppercase;letter-spacing:0.08em;font-family:var(--sans)}
.remove-btn:hover{color:var(--bark)}
.cart-footer{padding:1.25rem 1.5rem;border-top:1px solid var(--tan);flex-shrink:0}
.cart-subtotal{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.cart-subtotal span:first-child{font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--dusty)}
.cart-subtotal .subtotal-amt{font-family:var(--serif);font-size:1.5rem;font-weight:500;color:var(--ink)}
.cart-actions{display:flex;gap:0.6rem}
.cart-keep-btn{flex:1;background:transparent;color:var(--bark);border:1.5px solid var(--bark);padding:0.75rem;font-family:var(--sans);font-size:0.76rem;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;border-radius:2px}
.cart-checkout-btn{flex:2;background:var(--bark);color:var(--cream);border:none;padding:0.75rem;font-family:var(--sans);font-size:0.76rem;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;border-radius:2px;transition:background 0.2s}
.cart-checkout-btn:hover{background:var(--dusty)}

/* PRODUCT MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(61,43,31,0.5);z-index:500;opacity:0;pointer-events:none;transition:opacity 0.25s;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-box{background:var(--cream);border-radius:14px;max-width:820px;width:100%;max-height:90vh;overflow-y:auto;position:relative;transform:translateY(20px);transition:transform 0.3s;box-shadow:0 20px 60px rgba(61,43,31,0.2)}
.modal-overlay.open .modal-box{transform:translateY(0)}
.modal-close{position:absolute;top:1rem;right:1rem;background:rgba(61,43,31,0.08);border:none;cursor:pointer;width:36px;height:36px;border-radius:50%;font-size:1.1rem;display:flex;align-items:center;justify-content:center;z-index:2;color:var(--ink)}
.modal-close:hover{background:rgba(61,43,31,0.15)}
.modal-inner{display:grid;grid-template-columns:1fr 1fr;min-height:480px}
.modal-image{border-radius:14px 0 0 14px;display:flex;align-items:center;justify-content:center;font-size:6rem;min-height:360px}
.modal-content{padding:2rem 2rem 2rem 1.75rem;display:flex;flex-direction:column}
.modal-eyebrow{font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.4rem}
.modal-title{font-family:var(--serif);font-size:1.8rem;font-weight:400;color:var(--ink);line-height:1.2;margin-bottom:0.35rem}
.modal-price-line{font-family:var(--serif);font-size:1.3rem;color:var(--dusty);font-weight:500;margin-bottom:0.5rem}
.modal-stock-badge{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.22rem 0.65rem;border-radius:20px;margin-bottom:0.9rem;font-family:var(--sans);font-weight:500;background:#E8F4E8;color:#3A6B3A;border:1px solid #B8D8B8}
.modal-desc{font-size:0.87rem;color:#6B4F40;line-height:1.7;margin-bottom:0.9rem}
.modal-specs h4,.modal-emb-section h4{font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.55rem;font-weight:500}
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.3rem 1rem;margin-bottom:0.9rem}
.spec-row{font-size:0.8rem;color:var(--bark)}
.spec-row strong{color:var(--ink);font-weight:500;display:block;font-size:0.75rem}
.modal-divider{height:1px;background:var(--tan);margin:0.8rem 0}
.modal-emb-pills{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:0.6rem}
.modal-emb-pill{padding:0.3rem 0.8rem;border:1.5px solid var(--tan);border-radius:20px;font-size:0.76rem;cursor:pointer;background:transparent;color:var(--ink);font-family:var(--sans);transition:all 0.2s}
.modal-emb-pill:hover{border-color:var(--dusty)}
.modal-emb-pill.sel{background:var(--bark);border-color:var(--bark);color:white}
.modal-emb-details{background:var(--beige);border-radius:6px;padding:0.9rem 1rem;margin-bottom:0.75rem;border:1px solid var(--tan);display:none}
.modal-emb-details.show{display:block}
.modal-emb-label{font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.4rem;font-weight:500;display:block}
.thread-swatches{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:0.7rem}
.t-swatch{width:24px;height:24px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color 0.15s,transform 0.15s}
.t-swatch:hover{transform:scale(1.12)}
.t-swatch.sel{border-color:var(--ink)!important}
.modal-text-input input{border:1.5px solid var(--tan);border-radius:4px;padding:0.5rem 0.75rem;font-family:var(--sans);font-size:0.85rem;color:var(--ink);background:white;outline:none;width:100%;transition:border-color 0.2s}
.modal-text-input input:focus{border-color:var(--bark)}
.modal-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:0.9rem}
.modal-total{font-family:var(--serif);font-size:1.5rem;font-weight:500;color:var(--ink)}
.modal-add-btn{background:var(--bark);color:var(--cream);border:none;padding:0.75rem 1.6rem;border-radius:2px;font-family:var(--sans);font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;transition:background 0.2s}
.modal-add-btn:hover{background:var(--dusty)}
.modal-add-btn.added{background:#5A8A5A}

/* PAGES */
.page{display:none}.page.active{display:block}
.container{max-width:1200px;margin:0 auto}
.section-header{text-align:center;margin-bottom:3rem}
.section-eyebrow{font-family:var(--sans);font-size:0.72rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--dusty);display:block;margin-bottom:0.75rem}
.section-title{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:300;color:var(--ink);line-height:1.2}
.section-title em{font-style:italic;color:var(--bark)}
.divider{width:48px;height:1.5px;background:var(--tan);margin:1.2rem auto 0}
.btn-primary{display:inline-block;background:var(--bark);color:var(--cream);padding:0.8rem 2rem;font-family:var(--sans);font-size:0.8rem;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background 0.2s,transform 0.1s;cursor:pointer;border:none}
.btn-primary:hover{background:var(--dusty);transform:translateY(-1px)}
.btn-outline{display:inline-block;border:1.5px solid var(--bark);color:var(--bark);padding:0.75rem 1.8rem;font-family:var(--sans);font-size:0.8rem;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:all 0.2s;cursor:pointer;background:transparent}
.btn-outline:hover{background:var(--bark);color:var(--cream)}
input,select,textarea{font-family:var(--sans);font-size:0.88rem;color:var(--ink)}

/* HERO */
#home-hero{padding:0;min-height:100vh;display:flex;align-items:center;background:linear-gradient(160deg,var(--cream) 0%,var(--beige) 55%,var(--blush) 100%);position:relative;overflow:hidden}
.hero-decor{position:absolute;top:-60px;right:-80px;width:480px;height:480px;border-radius:50%;background:rgba(201,169,154,0.1);pointer-events:none}
.hero-decor2{position:absolute;bottom:-100px;left:-60px;width:340px;height:340px;border-radius:50%;background:rgba(212,196,168,0.12);pointer-events:none}
.hero-inner{max-width:1200px;margin:0 auto;padding:8rem 2rem 5rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;width:100%}
.hero-eyebrow{font-size:0.75rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--dusty);margin-bottom:1rem}
.hero-title{font-family:var(--serif);font-size:clamp(2.8rem,4.5vw,4.4rem);font-weight:300;line-height:1.1;color:var(--ink);margin-bottom:0.4rem}
.hero-title em{font-style:italic;color:var(--bark)}
.hero-script{font-family:var(--script);font-size:1.7rem;color:var(--dusty);margin-bottom:1.4rem;display:block}
.hero-desc{font-size:0.95rem;color:#6b4f40;line-height:1.8;max-width:420px;margin-bottom:2rem}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap}
.hero-visual{display:flex;justify-content:center}
.hero-card{background:white;border-radius:10px;overflow:hidden;box-shadow:0 8px 40px rgba(61,43,31,0.12);max-width:340px;width:100%;position:relative}
.hero-card-img{height:260px;display:flex;align-items:center;justify-content:center;font-size:5rem;background:linear-gradient(135deg,#EDD8D0,#E8D5C4)}
.hero-card-body{padding:1.2rem 1.5rem}
.hero-card-body h3{font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:0.2rem}
.hero-card-body p{font-size:0.8rem;color:var(--bark)}
.hero-badge{position:absolute;bottom:-14px;right:-14px;background:var(--rose);color:white;padding:0.5rem 0.9rem;border-radius:6px;font-size:0.76rem;font-weight:500;box-shadow:0 4px 14px rgba(184,144,122,0.35)}
.services-strip{background:var(--beige);padding:4rem 2rem}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.25rem}
.service-card{background:var(--cream);border-radius:6px;padding:1.75rem 1.25rem;text-align:center;border:1px solid rgba(212,196,168,0.5);transition:transform 0.2s,box-shadow 0.2s;cursor:pointer}
.service-card:hover{transform:translateY(-3px);box-shadow:0 10px 32px rgba(61,43,31,0.09)}
.service-icon{font-size:2rem;margin-bottom:0.85rem;display:block}
.service-card h3{font-family:var(--serif);font-size:0.98rem;font-weight:500;color:var(--ink);margin-bottom:0.3rem}
.service-card p{font-size:0.76rem;color:var(--bark);line-height:1.5}
.process-section{background:var(--soft-pink);padding:4rem 2rem}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center}
.process-icon{width:52px;height:52px;border-radius:50%;background:var(--cream);margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 4px 14px rgba(61,43,31,0.09)}
.process-step h4{font-family:var(--serif);font-size:1rem;color:var(--ink);margin-bottom:0.35rem}
.process-step p{font-size:0.78rem;color:var(--bark);line-height:1.55}

/* SHOP */
.products-filter{display:flex;justify-content:center;gap:0.5rem;flex-wrap:wrap;margin-bottom:2.25rem}
.filter-btn{padding:0.38rem 1.1rem;border:1.5px solid var(--tan);border-radius:20px;font-size:0.76rem;cursor:pointer;background:transparent;color:var(--bark);letter-spacing:0.08em;font-family:var(--sans);transition:all 0.2s}
.filter-btn:hover,.filter-btn.active{background:var(--bark);border-color:var(--bark);color:white}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.4rem}
.shop-card{background:white;border-radius:10px;overflow:hidden;border:1px solid rgba(212,196,168,0.5);transition:box-shadow 0.2s,transform 0.2s;cursor:pointer;position:relative}
.shop-card:hover{box-shadow:0 12px 36px rgba(61,43,31,0.14);transform:translateY(-4px)}
.shop-card:hover .card-hover-hint{opacity:1}
.shop-img{display:flex;align-items:center;justify-content:center;font-size:3.5rem;position:relative;background:white}
.card-hover-hint{position:absolute;inset:0;background:rgba(61,43,31,0.06);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.2s}
.card-hover-hint span{background:var(--bark);color:white;padding:0.45rem 1.1rem;border-radius:2px;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;font-family:var(--sans);font-weight:500}
.shop-info{padding:1rem 1.2rem}
.shop-info h4{font-family:var(--serif);font-size:1rem;font-weight:500;color:var(--ink);margin-bottom:0.2rem}
.shop-info p{font-size:0.76rem;color:var(--bark);margin-bottom:0.6rem;line-height:1.4}
.shop-price-row{display:flex;justify-content:space-between;align-items:center}
.shop-price{font-family:var(--serif);font-size:1.15rem;color:var(--dusty);font-weight:500}
.view-details{font-size:0.7rem;color:var(--bark);letter-spacing:0.1em;text-transform:uppercase;font-family:var(--sans)}

/* BUILDER */
.builder-section{background:var(--beige);padding:5rem 2rem}
.builder-wrap{background:white;border-radius:12px;border:1px solid var(--tan);overflow:hidden;box-shadow:0 8px 40px rgba(61,43,31,0.07)}
.builder-steps{display:flex;border-bottom:1px solid var(--tan);background:var(--beige);overflow-x:auto}
.step-tab{flex:1;min-width:80px;padding:0.9rem 0.4rem;text-align:center;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--bark);cursor:pointer;border-bottom:2px solid transparent;transition:all 0.2s;font-family:var(--sans);white-space:nowrap}
.step-tab.active{color:var(--ink);border-bottom-color:var(--bark);background:white;font-weight:500}
.step-num{display:block;font-size:1.05rem;font-family:var(--serif);font-weight:600;margin-bottom:1px}
.builder-body{padding:2rem 2.5rem;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.builder-col h3{font-family:var(--serif);font-size:1.3rem;font-weight:400;color:var(--ink);margin-bottom:1.2rem}
.product-selector{display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:1.5rem}
.prod-sel-btn{padding:0;border:2px solid var(--tan);border-radius:10px;cursor:pointer;background:white;color:var(--ink);font-family:var(--sans);transition:all 0.2s;display:flex;flex-direction:column;align-items:center;overflow:hidden;width:140px;flex-shrink:0}
.prod-sel-btn:hover{border-color:var(--dusty);transform:translateY(-2px);box-shadow:0 6px 18px rgba(61,43,31,0.13)}
.prod-sel-btn.active{border-color:var(--bark);box-shadow:0 0 0 3px rgba(139,99,84,0.22)}
.prod-sel-img{width:100%;height:120px;object-fit:contain;background:transparent;display:block;padding:0.5rem}
.prod-sel-img-placeholder{width:100%;height:120px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;background:var(--beige)}
.prod-sel-label{font-size:0.72rem;letter-spacing:0.08em;padding:0.5rem 0.6rem;text-align:center;width:100%;border-top:1px solid var(--tan);line-height:1.3;background:var(--cream)}
.prod-sel-price{font-family:var(--serif);font-size:0.95rem;color:var(--bark);font-weight:500;display:block}
.prod-sel-btn.active .prod-sel-label{background:var(--bark);color:white;border-top-color:var(--bark)}
.prod-sel-btn.active .prod-sel-price{color:rgba(255,255,255,0.85)}
.prod-desc-box{font-size:0.85rem;color:var(--bark);line-height:1.7;background:var(--beige);padding:1rem;border-radius:6px;border:1px solid var(--tan)}
.dim-note{font-size:0.74rem;color:var(--bark);line-height:1.5;background:var(--beige);padding:0.6rem 0.75rem;border-radius:4px;margin-bottom:0.85rem}
.dim-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-bottom:0.75rem}
.dim-field label{display:block;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.35rem;font-weight:500}
.dim-field input{width:100%;border:1.5px solid var(--tan);border-radius:4px;padding:0.55rem 0.75rem;font-family:var(--sans);font-size:0.88rem;color:var(--ink);background:var(--cream);outline:none;transition:border-color 0.2s}
.dim-field input:focus{border-color:var(--bark)}
.material-body{padding:2rem 2.5rem}
.material-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:3rem;align-items:start}
.fabric-section-label{font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dusty);font-weight:500;display:block;margin:1.75rem 0 0.8rem;font-family:var(--sans)}
.fabric-section-label:first-child{margin-top:0}
.fabric-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:0.6rem}
.fc{border:2px solid var(--tan);border-radius:10px;overflow:hidden;cursor:pointer;position:relative;background:white;transition:border-color 0.15s,transform 0.12s,box-shadow 0.12s}
.fc:hover{border-color:var(--dusty);transform:translateY(-2px);box-shadow:0 6px 18px rgba(61,43,31,0.13)}
.fc.on{border-color:var(--bark);box-shadow:0 0 0 3px rgba(139,99,84,0.22)}
.fc img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.fc .nm{padding:5px 6px;font-size:0.6rem;text-align:center;color:var(--ink);line-height:1.3;background:var(--cream);border-top:1px solid var(--tan);display:block}
.fc.on .nm{background:var(--bark);color:white;border-top-color:var(--bark)}
.fc .ck{position:absolute;top:5px;right:5px;width:18px;height:18px;background:var(--bark);border-radius:50%;display:none;align-items:center;justify-content:center;color:white;font-size:0.65rem;font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,0.2)}
.fc.on .ck{display:flex}
.sel-panel{position:sticky;top:76px}
.sel-panel h3{font-family:var(--serif);font-size:1.3rem;font-weight:400;color:var(--ink);margin-bottom:1.2rem}
.sel-preview-card{background:var(--beige);border:1px solid var(--tan);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1rem}
.sel-preview-card .sel-label{font-size:0.65rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--dusty);display:block;margin-bottom:0.6rem;font-family:var(--sans)}
.sel-preview-inner{display:flex;align-items:center;gap:0.75rem}
.sel-preview-thumb{width:52px;height:52px;border-radius:7px;object-fit:cover;border:1px solid var(--tan);display:none;flex-shrink:0}
.sel-preview-thumb.show{display:block}
.sel-preview-name{font-size:0.84rem;color:var(--ink)}
.sel-preview-empty{font-size:0.84rem;color:var(--dusty);font-style:italic}
.emb-pills{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.75rem}
.emb-pill-btn{padding:0.4rem 1rem;border:1.5px solid var(--tan);border-radius:20px;font-size:0.78rem;cursor:pointer;background:transparent;color:var(--ink);font-family:var(--sans);transition:all 0.2s}
.emb-pill-btn.sel{background:var(--bark);border-color:var(--bark);color:white}
.emb-expanded{background:var(--beige);border-radius:8px;padding:1.1rem 1.2rem;border:1px solid var(--tan);margin-top:0.25rem;display:none}
.emb-expanded.show{display:block}
.emb-lbl{font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.5rem;font-weight:500;display:block;margin-top:0.75rem;font-family:var(--sans)}
.emb-lbl:first-child{margin-top:0}
.thread-grid{display:flex;flex-wrap:wrap;gap:0.45rem;margin-bottom:0.5rem}
.th-sw{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color 0.15s,transform 0.15s}
.th-sw:hover{transform:scale(1.1)}
.th-sw.sel{border-color:var(--ink)!important}
.font-options{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.75rem}
.font-btn{border:1.5px solid var(--tan);border-radius:6px;padding:0.6rem 0.75rem;cursor:pointer;background:transparent;transition:all 0.2s;text-align:left}
.font-btn:hover{border-color:var(--dusty)}
.font-btn.sel{border-color:var(--bark);background:rgba(139,99,84,0.07)}
.fn{font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--dusty);display:block;margin-bottom:0.2rem;font-family:var(--sans)}
.fp{font-size:1.1rem;color:var(--ink);display:block}
.fp-script{font-family:var(--script);font-size:1.3rem!important}
.fp-serif{font-family:var(--serif);font-size:1.2rem!important;font-style:italic}
.fp-block{font-family:var(--sans);font-weight:700;letter-spacing:0.05em}
.fp-classic{font-family:var(--serif);font-weight:600}
.name-wrap{margin-bottom:0.75rem}
.name-wrap label{display:block;font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.45rem;font-weight:500;font-family:var(--sans)}
.name-wrap input,.notes-ta{width:100%;border:1.5px solid var(--tan);border-radius:4px;padding:0.6rem 0.9rem;font-family:var(--sans);font-size:0.9rem;color:var(--ink);background:var(--cream);outline:none;transition:border-color 0.2s}
.name-wrap input:focus,.notes-ta:focus{border-color:var(--bark)}
.notes-ta{height:70px;resize:vertical}
.price-summary{background:var(--beige);border-radius:8px;padding:1.5rem;border:1px solid var(--tan)}
.price-row{display:flex;justify-content:space-between;font-size:0.83rem;color:var(--bark);margin-bottom:0.5rem}
.price-total{border-top:1px solid var(--tan);margin-top:0.9rem;padding-top:0.9rem;display:flex;justify-content:space-between;align-items:center}
.price-total span:first-child{font-size:0.74rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);font-family:var(--sans)}
.total-amt{font-family:var(--serif);font-size:1.9rem;font-weight:500;color:var(--ink)}
.builder-nav-btns{display:flex;gap:0.6rem;margin-top:1.25rem}
.builder-nav-btns button{flex:1;padding:0.8rem;font-family:var(--sans);font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;border-radius:2px;transition:all 0.2s}
.btn-next{background:var(--bark);color:var(--cream);border:none}
.btn-next:hover{background:var(--dusty)}
.btn-back{background:transparent;color:var(--bark);border:1.5px solid var(--bark)}
.btn-cart{width:100%;background:var(--bark);color:var(--cream);border:none;padding:0.9rem;font-family:var(--sans);font-size:0.82rem;letter-spacing:0.15em;text-transform:uppercase;cursor:pointer;border-radius:2px;transition:background 0.2s;margin-top:1rem}
.btn-cart:hover{background:var(--dusty)}
.summary-block{background:var(--beige);border-radius:8px;padding:1.25rem;border:1px solid var(--tan);margin-bottom:1rem}
.summary-block h4{font-family:var(--serif);font-size:1rem;font-weight:500;color:var(--ink);margin-bottom:0.75rem}
.sum-row{display:grid;grid-template-columns:auto 1fr;gap:0.3rem 1.25rem;font-size:0.82rem;line-height:2}
.sum-key{color:var(--dusty);font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;padding-top:2px;font-family:var(--sans)}
.sum-val{color:var(--ink);display:flex;align-items:center;gap:0.5rem}
.sum-thumb{width:28px;height:28px;border-radius:4px;object-fit:cover;border:1px solid var(--tan);flex-shrink:0}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:3.5rem;align-items:start}
.contact-info h3{font-family:var(--serif);font-size:1.7rem;font-weight:400;color:var(--ink);margin-bottom:0.9rem}
.contact-info p{font-size:0.9rem;color:var(--bark);line-height:1.8;margin-bottom:1.25rem}
.contact-detail{display:flex;gap:0.7rem;align-items:flex-start;margin-bottom:0.9rem;font-size:0.85rem;color:var(--bark)}
.contact-detail strong{color:var(--ink);font-weight:500;display:block;margin-bottom:1px}
.contact-form{background:white;border-radius:10px;padding:2.25rem;border:1px solid var(--tan)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem;margin-bottom:0.9rem}
.form-group{margin-bottom:0.9rem}
.form-group label{display:block;font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.4rem;font-weight:500}
.form-group input,.form-group select,.form-group textarea{width:100%;border:1.5px solid var(--tan);border-radius:4px;padding:0.6rem 0.9rem;font-family:var(--sans);font-size:0.88rem;color:var(--ink);background:var(--cream);outline:none;transition:border-color 0.2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--bark)}
.form-group textarea{height:100px;resize:vertical}
.upload-area{border:1.5px dashed var(--tan);border-radius:6px;padding:1.5rem;text-align:center;cursor:pointer;transition:border-color 0.2s;margin-bottom:0.9rem;background:var(--cream)}
.upload-area:hover{border-color:var(--dusty)}
.upload-area p{font-size:0.8rem;color:var(--bark)}

/* CHECKOUT */
.checkout-wrap{max-width:900px;margin:0 auto;padding:calc(64px + 3rem) 2rem 5rem}
.checkout-grid{display:grid;grid-template-columns:1fr 360px;gap:2.5rem;align-items:start}
.checkout-left h2{font-family:var(--serif);font-size:1.8rem;font-weight:400;color:var(--ink);margin-bottom:0.4rem}
.checkout-left>p{font-size:0.85rem;color:var(--bark);margin-bottom:2rem}
.checkout-section{background:white;border-radius:10px;border:1px solid var(--tan);padding:1.75rem;margin-bottom:1.25rem}
.checkout-section h3{font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:1.25rem;padding-bottom:0.75rem;border-bottom:1px solid var(--tan)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem;margin-bottom:0.9rem}
.field-row.full{grid-template-columns:1fr}
.field-group label{display:block;font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty);margin-bottom:0.4rem;font-weight:500}
.field-group input,.field-group select{border:1.5px solid var(--tan);border-radius:4px;padding:0.6rem 0.9rem;font-family:var(--sans);font-size:0.86rem;color:var(--ink);background:var(--cream);outline:none;transition:border-color 0.2s;width:100%}
.field-group input:focus,.field-group select:focus{border-color:var(--bark)}
.square-placeholder{background:linear-gradient(135deg,#E8F0FF,#D4E4FF);border:2px dashed #006AFF;border-radius:8px;padding:1.5rem;text-align:center;margin-top:0.5rem}
.square-placeholder p{font-size:0.82rem;color:#003399;line-height:1.6}
.sq-note{font-size:0.72rem;color:#4466CC;margin-top:0.4rem}
.mock-card-fields{margin-top:1rem;text-align:left}
.mock-card-field{background:white;border:1.5px solid #B8CCFF;border-radius:4px;padding:0.6rem 0.9rem;font-size:0.84rem;color:#6688CC;margin-bottom:0.5rem;width:100%}
.checkout-right{position:sticky;top:80px}
.order-summary-box{background:white;border-radius:10px;border:1px solid var(--tan);padding:1.75rem}
.order-summary-box h3{font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:1.25rem;padding-bottom:0.75rem;border-bottom:1px solid var(--tan)}
.summary-item{display:flex;justify-content:space-between;align-items:start;font-size:0.82rem;margin-bottom:0.8rem;gap:0.75rem}
.summary-item-name{color:var(--ink);line-height:1.4;flex:1}
.summary-item-detail{font-size:0.7rem;color:var(--bark);margin-top:1px}
.summary-item-price{font-family:var(--serif);font-size:0.95rem;color:var(--ink);font-weight:500;white-space:nowrap}
.summary-divider{height:1px;background:var(--tan);margin:1rem 0}
.summary-total-row{display:flex;justify-content:space-between;align-items:center}
.summary-total-row span:first-child{font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--dusty)}
.summary-total-amt{font-family:var(--serif);font-size:1.6rem;font-weight:500;color:var(--ink)}
.place-order-btn{width:100%;background:var(--bark);color:var(--cream);border:none;padding:1rem;font-family:var(--sans);font-size:0.82rem;letter-spacing:0.15em;text-transform:uppercase;cursor:pointer;border-radius:2px;transition:background 0.2s;margin-top:1.25rem}
.place-order-btn:hover{background:var(--dusty)}
.checkout-note{font-size:0.72rem;color:var(--bark);text-align:center;margin-top:0.75rem;line-height:1.6}

footer{background:var(--ink);color:rgba(250,247,242,0.8);padding:3rem 2rem}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
.footer-brand .brand-name{font-family:var(--script);font-size:1.55rem;color:var(--blush);margin-bottom:0.7rem;display:block}
.footer-brand p{font-size:0.8rem;line-height:1.7;max-width:210px;margin-bottom:1rem}
.footer-social{display:flex;gap:0.5rem}
.footer-social a{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:opacity 0.2s}
.footer-social a:hover{opacity:0.8}
.footer-col h4{font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--blush);margin-bottom:0.9rem;font-weight:500}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:0.45rem}
.footer-col ul a{color:rgba(250,247,242,0.6);text-decoration:none;font-size:0.8rem;transition:color 0.2s;cursor:pointer}
.footer-col ul a:hover{color:var(--blush)}
.footer-bottom{max-width:1200px;margin:1.75rem auto 0;padding-top:1.4rem;border-top:1px solid rgba(250,247,242,0.1);display:flex;justify-content:space-between;font-size:0.72rem;color:rgba(250,247,242,0.35)}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.fade-up{animation:fadeUp 0.55s ease both}.d2{animation-delay:0.15s}
@media(max-width:860px){
  .hero-inner,.contact-grid,.checkout-grid,.modal-inner{grid-template-columns:1fr}
  .hero-visual,.process-steps{display:none}
  .footer-inner{grid-template-columns:1fr 1fr}
  .form-row,.field-row{grid-template-columns:1fr}
  .checkout-right{position:static}
  .modal-image{border-radius:14px 14px 0 0;min-height:220px}
  .builder-body,.material-grid{grid-template-columns:1fr}
  .sel-panel{position:static}
}

.font-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.6rem;margin-bottom:0.75rem}
.font-card{border:2px solid var(--tan);border-radius:8px;overflow:hidden;cursor:pointer;background:white;transition:border-color 0.15s,box-shadow 0.12s;padding:0.5rem 0.6rem;display:flex;flex-direction:column;align-items:center;gap:0.35rem}
.font-card:hover{border-color:var(--dusty);box-shadow:0 3px 12px rgba(61,43,31,0.1)}
.font-card.sel{border-color:var(--bark);box-shadow:0 0 0 2px rgba(139,99,84,0.2);background:rgba(139,99,84,0.04)}
.font-card img{max-width:100%;height:36px;object-fit:contain;display:block}
.font-card .fc-label{font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--dusty);font-family:var(--sans)}
.font-card.sel .fc-label{color:var(--bark);font-weight:500}

.size-btn{width:52px;height:52px;border:2px solid var(--tan);border-radius:8px;cursor:pointer;background:white;font-family:var(--sans);font-size:0.88rem;font-weight:500;color:var(--ink);transition:all 0.15s}
.size-btn:hover{border-color:var(--dusty);transform:translateY(-1px)}
.size-btn.on{border-color:var(--bark);background:var(--bark);color:white;box-shadow:0 0 0 2px rgba(139,99,84,0.2)}

.field-error{border-color:#C0392B!important;background:#FFF8F8!important}
.field-error-msg{font-size:0.7rem;color:#C0392B;margin-top:0.3rem;display:none}
.field-error-msg.show{display:block}
.validation-banner{background:#FFF0F0;border:1px solid #C0392B;border-radius:6px;padding:0.75rem 1rem;font-size:0.82rem;color:#C0392B;margin-bottom:1rem;display:none;line-height:1.6}
.validation-banner.show{display:block}
