/* Ameriprint Design Extras: shared front-end styles (scoped to .ade). */
.ade{--ade-navy:#1f2a44;--ade-red:#c8102e;--ade-line:#d9dde3;--ade-soft:#f4f6f9;max-width:980px;margin:0 auto;font-size:16px;line-height:1.5;color:#1d2330}
.ade *{box-sizing:border-box}
.ade [hidden]{display:none!important}
.ade h2{font-size:clamp(24px,3.4vw,34px);line-height:1.2;margin:0 0 .4em;color:var(--ade-navy)}
.ade h3{font-size:19px;margin:0 0 .6em;color:var(--ade-navy)}
.ade h3 span.ap-wiz-num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ade-navy);color:#fff;font-size:14px;margin-right:6px}
.ade-head p{max-width:720px}
.ade-step{background:#fff;border:1px solid var(--ade-line);border-radius:14px;padding:20px;margin:16px 0}
.ade-hp{position:absolute!important;left:-9999px;height:1px;overflow:hidden}
.ade-drop{display:flex;align-items:center;gap:14px;border:2px dashed #aeb6c2;border-radius:12px;padding:22px;background:var(--ade-soft);cursor:pointer;margin-bottom:12px}
.ade-drop:hover{border-color:var(--ade-navy)}
.ade-drop input{max-width:240px}
.ade-drop span{display:flex;flex-direction:column}
.ade-drop small{color:#5a6372}
.ade-check{display:flex!important;gap:8px;align-items:flex-start;font-weight:400!important;margin:8px 0}
.ade-check input{margin-top:4px}
.ade-btn{background:var(--ade-red);color:#fff;border:0;border-radius:999px;padding:13px 26px;font-weight:700;font-size:16px;cursor:pointer;margin-top:8px}
.ade-btn:hover{background:#a50d26}
.ade-btn:disabled{opacity:.6;cursor:wait}
.ade-msg{min-height:1.5em;margin:10px 0 0;font-weight:600;color:var(--ade-navy)}
.ade-msg.ade-bad,.ade-bad{color:#b00020}
.ade-good{color:#1a7f37;font-weight:600}
.ade-small{font-size:13.5px;color:#5a6372}
.ade-note{background:#fff7e0;border:1px solid #f0d58c;border-radius:8px;padding:8px 12px}
.ade-row{display:flex;flex-wrap:wrap;gap:14px}
.ade-row>label{flex:1 1 220px}
.ade label{display:block;font-weight:600;font-size:14.5px}
.ade input[type=text],.ade input[type=email],.ade input[type=tel],.ade input[type=date],.ade select,.ade textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid #b9c0cb;border-radius:8px;font:inherit;background:#fff}
.ade textarea{resize:vertical}
/* Previews: watermarked, shielded from casual saving. */
.ade-frame{position:relative;background:#eef0f3;border-radius:12px;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.ade-frame img{display:block;width:100%;height:auto;pointer-events:none}
.ade-shield{position:absolute;inset:0}
.ade-spin{position:absolute;inset:auto 12px 12px auto;background:rgba(31,42,68,.85);color:#fff;border-radius:999px;padding:6px 14px;font-size:14px}
.ade-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ade-tabs button,.ade-choices button{border:1px solid #b9c0cb;background:#fff;border-radius:999px;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer;color:var(--ade-navy)}
.ade-tabs button.on,.ade-choices button.on{background:var(--ade-navy);border-color:var(--ade-navy);color:#fff}
.ade-choices{display:flex;flex-wrap:wrap;gap:8px}
.ade-choices button{border-radius:10px;text-align:left;font-size:14.5px}
.ade-stage{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
.ade-method{font-weight:600;color:var(--ade-navy);margin-top:0}
.ade-sub{font-weight:600;font-size:14.5px;margin:14px 0 6px}
.ade-swatches{display:flex;flex-wrap:wrap;gap:8px}
.ade-swatches button{width:44px;height:44px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #9aa3af;cursor:pointer;padding:0}
.ade-swatches button:focus-visible,.ade-choices button:focus-visible,.ade a:focus-visible{outline:3px solid #0b2a5b;outline-offset:2px}
.ade a{text-decoration:underline}
.ade-gchange{color:#0b2a5b;font-weight:700}
.ade-swatches button.on{box-shadow:0 0 0 3px var(--ade-red)}
.ade-ba{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ade-ba figure{margin:0}
.ade-ba figcaption{text-align:center;font-weight:700;margin-top:6px;color:var(--ade-navy)}
.ade-working .ade-after{min-height:240px;background:linear-gradient(90deg,#eef0f3 25%,#e2e6eb 50%,#eef0f3 75%);background-size:200% 100%;animation:adeShimmer 1.2s infinite}
@keyframes adeShimmer{to{background-position:-200% 0}}
.ade-canvaswrap{background:#eef1f6;border-radius:12px;padding:6px}
.ade-canvaswrap canvas{display:block;width:100%;user-select:none}
.ade-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:10px 0}
.ade .ade-pager button{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;border:1px solid #b9c0cb;background:#fff!important;color:#1f2a44!important;-webkit-text-fill-color:#1f2a44!important;padding:0;font-size:16px!important;line-height:1;cursor:pointer;overflow:visible!important}
.ade .ade-pager button svg{display:block!important;width:22px!important;height:22px!important;stroke:currentColor!important;fill:none!important}
.ade .ade-pager button:disabled{opacity:.35}
.ade-fit{font-size:14.5px}
.ade-fit a{color:inherit}
.ade-icons{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ade-icons button{width:58px;height:58px;border:1px solid #b9c0cb;border-radius:10px;background:#fff;padding:8px;cursor:pointer}
.ade-icons button.on{border-color:var(--ade-red);box-shadow:0 0 0 2px var(--ade-red)}
.ade-icons img{width:100%;height:100%;object-fit:contain}
.ade-quote h3{font-size:22px}
.ade-quote>label,.ade-quote .ade-row{margin-bottom:12px}
.ade-date .ade-check{font-size:13.5px}
.ade-thanks{text-align:center;padding:20px}
@media (max-width:720px){
	.ade-step{padding:14px;border-radius:12px}
	.ade-stage{grid-template-columns:1fr}
	.ade-drop{flex-direction:column;align-items:flex-start}
	.ade-ba{gap:10px}
	.ade-btn{width:100%}
}
/* Laser names: limits, counters, overlong list */
.ade-choices button small{display:block;font-weight:400;font-size:12.5px;color:#5a6372;margin-top:2px}
.ade-choices button.on small{color:#dfe3ea}
.ade-limits{background:#eef3fb;border:1px solid #c9d8f0;border-radius:8px;padding:8px 12px;font-size:14.5px}
.ade-addone{align-items:flex-end}
.ade-addone label{position:relative}
.ade-addone input{padding-right:58px!important}
.ade-counter{position:absolute;right:10px;bottom:11px;font-size:12px;color:#5a6372;font-weight:600}
.ade-counter.ade-bad{color:#b00020}
.ade-btn2{background:var(--ade-navy);margin:0 0 2px;padding:11px 22px}
.ade-btn2:hover{background:#2c3b60}
.ade-linecount{min-height:1.4em;margin-top:4px}
.ade-overlong{background:#fff4f4;border:1px solid #f0b8bf;border-radius:10px;padding:12px 14px;margin-top:12px}
.ade-overlong p{margin:0 0 8px;color:#7a0016}
.ade-fix{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin:6px 0}
.ade-fix label{flex:1 1 320px;font-weight:600}
.ade-fix input{border-color:#e0939d!important}
/* email gate */
.ade-gate{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:end;background:#f4f6fb;border:1px solid #dde3ef;border-radius:12px;padding:16px}
.ade-gate label{grid-column:1}
.ade-gate .ade-btn{grid-column:2;height:44px}
.ade-gate .ade-small,.ade-gate .ade-msg{grid-column:1/-1;margin:0}
.ade-gated{margin:4px 0 10px}
@media (max-width:560px){.ade-gate{grid-template-columns:1fr}.ade-gate .ade-btn{grid-column:1}}
/* AI designer shared email block inside our gate */
.ade-gate .apai-email{grid-column:1;display:flex;flex-direction:column;gap:6px}
.ade-gate .apai-email input[type=email]{width:100%;padding:10px 12px;border:1px solid #c9ced6;border-radius:8px;font-size:16px}
.ade-gate .apai-hint{font-size:13px;color:#5a6372;margin:0}
.ade-gate .apai-check{font-size:14px;display:flex;gap:6px;align-items:center}
.ade-gate .ade-btn{align-self:start;margin-top:28px}
/* logo placement */
.ade-place{margin-top:12px;border-top:1px solid #e3e7ee;padding-top:10px}
.ade-presets{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.ade .ade-presets button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid #c9ced6;border-radius:22px;background:#fff;font:inherit;font-weight:600;cursor:pointer;color:#1f2a44 !important;-webkit-text-fill-color:#1f2a44}
.ade .ade-presets button span{color:#1f2a44 !important;-webkit-text-fill-color:#1f2a44}
.ade .ade-presets button svg{width:28px;height:21px;flex:0 0 auto;display:block}
.ade .ade-presets button.on{background:#1f2a44;color:#fff !important;-webkit-text-fill-color:#fff;border-color:#1f2a44}
.ade .ade-presets button.on span{background:transparent;color:#fff !important;-webkit-text-fill-color:#fff}
.ade-sizer{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;max-width:380px;font-weight:600}
.ade-sizer input[type=range]{flex:1;min-height:44px}
.ade-canvaswrap canvas{touch-action:none}
.ade-canvaswrap canvas:focus-visible{outline:2px solid #1f4fa3;outline-offset:2px}
/* "more products" note under product pickers */
.ade-morenote{margin:10px 0 4px;padding:8px 12px;background:#f4f6fb;border-left:3px solid #1f4fa3;border-radius:6px;font-size:14px;color:#2b3445}
/* laser sections: Name Badges / Engraved Gifts */
.ade-sectabs{display:flex;gap:8px;margin:0 0 14px;border-bottom:2px solid #e3e7ee}
.ade-sectabs button{min-height:46px;padding:10px 20px;border:1px solid #c9ced6;border-bottom:none;border-radius:10px 10px 0 0;background:#f4f6fb;font:inherit;font-weight:600;font-size:16px;color:#1f2a44;cursor:pointer;margin-bottom:-2px}
.ade-sectabs button.on{background:#1f2a44;color:#fff;border-color:#1f2a44}
.ade h3 .ade-namesh{font-style:normal}
/* picker photos (Oct 10 2026) */
.ade-choices.ade-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.ade-choices button.ade-hasimg{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px}
.ade-choices .ade-pimg{flex:0 0 72px;width:72px;height:72px;object-fit:contain;background:#fff;border-radius:8px}
.ade-choices button.on .ade-pimg{box-shadow:0 0 0 2px #fff}
.ade-ptext{display:block;min-width:0}
.ade-matpics{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.ade-matpics button{display:flex;flex-direction:column;align-items:center;gap:4px;width:118px;padding:6px;border:1px solid #c9ced6;border-radius:10px;background:#fff;font:inherit;font-size:12.5px;line-height:1.25;color:#1f2a44;cursor:pointer;text-align:center}
.ade-matpics button.on{border-color:var(--ade-navy);box-shadow:0 0 0 2px var(--ade-navy)}
.ade-matimg{width:104px;height:60px;object-fit:contain;border-radius:6px}
.ade-herohead{display:grid;grid-template-columns:1fr;gap:12px}
.ade-hero{margin:0;position:relative}
.ade-hero img{display:block;width:100%;height:auto;max-height:230px;object-fit:cover;border-radius:12px}
.ade-hero figcaption{position:absolute;right:8px;bottom:6px;font-size:11px;color:#5a6372;background:rgba(255,255,255,.8);padding:1px 6px;border-radius:4px}
@media (min-width:760px){.ade-herohead{grid-template-columns:1.15fr 1fr;align-items:center;gap:24px}.ade-hero img{max-height:none}}
@media (max-width:480px){.ade-choices.ade-pics{grid-template-columns:1fr}.ade-matpics button{width:calc(50% - 4px)}.ade-matimg{width:100%;height:auto}}
.ade-herohead[hidden],.ade-matpics[hidden]{display:none!important}
.ade-matpics .ade-matlegend{flex-basis:100%;margin:2px 0 0}
/* font cards (0.1.2) */
.ade-fontcards{border:0;margin:12px 0 0;padding:0;min-width:0}
.ade-fontcards legend{font-weight:600;padding:0;margin:0 0 6px}
.ade-fcgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ade-fontcard{position:relative;display:flex;flex-direction:column;gap:6px;min-height:88px;padding:10px 12px;border:1px solid #c9ced6;border-radius:10px;background:#fff;cursor:pointer;color:var(--ade-navy)}
.ade-fontcard:hover{border-color:#8a94a6}
.ade-fontcard.on{border-color:var(--ade-navy);box-shadow:0 0 0 2px var(--ade-navy)}
.ade-fontcard.on::after{content:"\2713";position:absolute;top:8px;right:10px;width:20px;height:20px;border-radius:50%;background:var(--ade-navy);color:#fff;font-size:12px;line-height:20px;text-align:center}
.ade-fontcard:focus-within{outline:3px solid #1f6feb;outline-offset:2px}
.ade-fcname{font-size:13.5px;font-weight:600;padding-right:22px}
.ade-fcname small{display:block;font-weight:400;font-size:12px;color:#5a6372}
.ade-fcsample{font-size:24px;line-height:1.2;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ade-vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
@media (max-width:600px){.ade-fcgrid{grid-template-columns:1fr}.ade-fontcard{min-height:0;flex-direction:row;align-items:center;justify-content:space-between}.ade-fcsample{font-size:22px;padding-right:24px}.ade-fcname{padding-right:0}}
/* drag-and-drop logo upload (0.1.2) */
.ade-drop{position:relative;flex-wrap:wrap;transition:border-color .15s,background .15s}
.ade-drop .ade-dropname,.ade-drop .ade-droperr{flex-basis:100%;font-style:normal;font-size:13.5px}
.ade-drop .ade-dropname:empty,.ade-drop .ade-droperr:empty{display:none}
.ade-drop .ade-dropname{color:#1d6b35;font-weight:600}
.ade-drop .ade-droperr{color:#b3261e}
.ade-droptip{display:none}
.ade-drop.ade-dragover{border-color:#1f6feb;border-style:solid;background:#e8f0fe;box-shadow:0 0 0 3px rgba(31,111,235,.25)}
.ade-drop.ade-dragover>*{visibility:hidden}
.ade-drop.ade-dragover .ade-droptip{visibility:visible;display:flex;position:absolute;inset:0;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#1f4fa3;pointer-events:none}
.ade-drop:focus-within{outline:3px solid #1f6feb;outline-offset:2px}
@media (hover:none),(pointer:coarse){.ade-dragtext{display:none}}
/* 0.1.2 logo step + name list upload */
.ade h3 .ade-opt{font-size:14px;font-weight:400;color:#5a6372}
.ade-logobody[hidden],.ade-nologo[hidden],.ade-listmsg[hidden]{display:none!important}
.ade-linkbtn{background:none;border:0;padding:0;font:inherit;color:#1f4fa3;text-decoration:underline;cursor:pointer}
.ade-logoupload .ade-drop{margin-top:10px}
.ade-listdrop{margin:10px 0 6px;padding:14px 16px}
.ade-listdrop input{max-width:220px}
.ade-listmsg{margin:4px 0 0}
/* 0.1.2 product cards: never truncate (theme button styles set nowrap/ellipsis on the live site) */
.ade .ade-choices button,.ade .ade-choices button *{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;height:auto!important;max-width:none}
.ade .ade-choices button{min-width:0;line-height:1.3;word-break:normal;overflow-wrap:anywhere;color:#1f2a44!important;-webkit-text-fill-color:#1f2a44!important;font-size:14.5px!important;background:#fff!important}
.ade .ade-choices button.on{color:#fff!important;-webkit-text-fill-color:#fff!important;background:#1f2a44!important}
.ade .ade-choices button.on small,.ade .ade-choices button.on .ade-psub{color:#fff!important;-webkit-text-fill-color:#fff!important;background:transparent!important}
.ade-ptitle{display:block;font-weight:700;font-size:15px}
.ade-psub{display:block;font-weight:500;font-size:13px;margin-top:1px}
.ade-choices button.on .ade-psub{color:#fff}
/* 0.1.2 permission box reminder */
.ade-check.ade-needtick{outline:2px solid #b3261e;outline-offset:4px;border-radius:6px;background:#fdecea;animation:adetick .6s ease 2}
@keyframes adetick{50%{background:#f9d0cc}}
.ade-rightsmsg{margin:4px 0 10px;color:#b3261e;font-weight:600;font-size:14px}
.ade-rightsmsg[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.ade-check.ade-needtick{animation:none}}
.ade-drop .ade-droptip{display:none}
.ade-drop.ade-dragover .ade-droptip{display:flex}
.ade-woodnote[hidden]{display:none!important}
.ade-woodnote{color:#5a3518}
/* 0.1.9: 3x1 logo tip (not a blocker) */
.ade-logotip{background:#fff7e0;border:1px solid #f0d8a8;border-radius:8px;padding:8px 12px;margin:10px 0 0;color:#3d3420}
.ade-logotip[hidden]{display:none!important}
/* 0.1.9 live preview. Column split, sticky pane, and the mobile bar live in the shared
   split-layout.css (same component for badges, engraved gifts, and Design with AI). */
@media (min-width:1000px){
	#ade-laser .ade-previewbox{height:100%;margin:0;display:flex;flex-direction:column;background:#f7f8fb;border-color:#c5cedd}
	#ade-laser .ade-previewbox h3{font-size:22px}
	#ade-laser .ade-canvaswrap{flex:1 1 auto;min-height:220px;display:flex;align-items:center;justify-content:center}
	#ade-laser .ade-canvaswrap canvas{width:auto;max-width:100%;height:auto}
}
@media (max-width:999px){
	#ade-laser .ade-minicanvas{display:block;flex:0 0 auto;background:#eef0f3;border-radius:8px}
	#ade-laser .ade-mininame{flex:1 1 auto;min-width:0;margin:0;font-weight:700;color:#1f2a44;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
	#ade-laser .ade-seefull{flex:0 0 auto;margin:0;background:#1f2a44;color:#fff;border:0;border-radius:999px;padding:8px 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
}
.ade-human{position:fixed;inset:0;z-index:100000;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.ade-human[hidden]{display:none!important}
.ade-human-card{background:#fff;border-radius:12px;padding:18px 16px;width:min(420px,100%);box-shadow:0 12px 40px rgba(0,0,0,.25);text-align:center}
.ade-human-title{margin:0 0 8px;font-weight:700;color:#1f2a44}
.ade-human-note{margin:8px 0;color:#1f2a44}
.ade-human-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.ade-human-retry,.ade-human-cancel{font:inherit;min-height:44px;padding:8px 16px;border:1px solid #b9c2cc;border-radius:8px;background:#fff;color:#1f2a44;cursor:pointer}
.ade-human-retry{background:#1f2a44;color:#fff;border-color:#1f2a44}
.ade-human-retry[hidden]{display:none!important}
.ade-startover{font:inherit;display:inline-flex;align-items:center;min-height:44px;margin:0 0 8px 8px;padding:8px 14px;border:1px solid #b9c2cc;border-radius:8px;background:#fff!important;color:#1f2a44!important;-webkit-text-fill-color:#1f2a44!important;cursor:pointer}
.ade-tsnote{display:none!important}
.ade-previewflash{animation:adePreviewFlash 1.2s ease}
@keyframes adePreviewFlash{0%,100%{box-shadow:0 0 0 0 rgba(31,79,163,0)}35%{box-shadow:0 0 0 4px rgba(31,79,163,.55)}}
@media (prefers-reduced-motion:reduce){.ade-previewflash{animation:none;outline:3px solid #1f4fa3}}
