/* KM Thread Studio storefront styles. Uses theme variables with fallbacks. */
.kmts-config,.kmts-track,.kmts-how,.kmts-trackpage,.kmts-contact,.kmts-design-grid{--k-cocoa:var(--kmtc-cocoa,#4B403F);--k-muted:var(--kmtc-muted,#6F5E5E);--k-pink:var(--kmtc-pink,#FCE6E6);--k-line:var(--kmtc-line,#E6DCD6);--k-sage:var(--kmtc-sage-dark,#5F6650);--k-warn:#9A4B3E}
.kmts-gallery{position:relative}
.kmts-stage{background:#fff;border:1px solid var(--kmtc-line,#E6DCD6);border-radius:12px;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden}
.kmts-stage{position:relative}
.kmts-stage>svg{width:100%;height:100%}
.kmts-stage .kmts-cap{position:absolute;left:12px;bottom:12px;right:12px;background:rgba(251,246,243,.95);font-size:13px;padding:6px 10px;border-radius:2px;color:#4B403F}
.kmts-photo{position:relative;width:100%;height:100%}
.kmts-photo img,.woocommerce .kmts-photo img{width:100%!important;height:100%!important;max-width:none;object-fit:contain;display:block}
.kmts-overlay{position:absolute;pointer-events:none}
.kmts-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.kmts-thumbs button{width:72px;height:72px;border-radius:10px;border:1px solid var(--kmtc-line,#E6DCD6);background:#fff;padding:3px;position:relative;cursor:pointer}
.kmts-thumbs button.on{border:2px solid var(--kmtc-cocoa,#4B403F)}
.kmts-thumbs img,.kmts-thumbs svg{width:100%;height:100%;object-fit:contain}
.kmts-thumbs span{position:absolute;bottom:2px;left:0;right:0;font-size:10px;color:var(--kmtc-muted,#6F5E5E)}
.kmts-note{font-size:13px;color:var(--kmtc-muted,#6F5E5E);margin-top:10px}
.kmts-loading{color:var(--kmtc-muted,#6F5E5E)}
form.cart .kmts-hidden-select{display:none!important}
form.cart table.variations{width:100%;border:0;margin-bottom:0}
form.cart table.variations tr{display:block;border-top:1px solid var(--kmtc-line,#E6DCD6);padding:16px 0}
form.cart table.variations th,form.cart table.variations td{display:block;padding:0;border:0;text-align:left;background:none}
form.cart table.variations th label{font-weight:500;font-size:16px;margin-bottom:8px;display:block}
form.cart .reset_variations{font-size:13px;margin-top:6px;display:inline-block}
.kmts-pills{display:flex;flex-wrap:wrap;gap:8px}
.kmts-pill{border:1px solid #CFC4BE;background:#fff;border-radius:999px;padding:8px 15px;font-size:14px;display:inline-flex;align-items:center;gap:8px;color:var(--kmtc-cocoa,#4B403F);cursor:pointer;line-height:1.2;min-height:40px}
.kmts-pill:hover{border-color:var(--kmtc-cocoa,#4B403F)}
.kmts-pill.on{border-color:var(--kmtc-cocoa,#4B403F);background:var(--kmtc-cocoa,#4B403F);color:#fff}
.kmts-pill.oos{color:#8D8380;text-decoration:line-through;background:#F3EFEC;cursor:not-allowed}
.kmts-dot{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.18);display:inline-block}
.kmts-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.kmts-step{border-top:1px solid var(--k-line);padding:16px 0}
.kmts-step-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 10px}
.kmts-step-head b{font-weight:500;font-size:16px}
.kmts-step-head span{font-size:14px;color:var(--k-muted);text-align:right}
.kmts-designs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.kmts-dz{position:relative;aspect-ratio:1/1;border-radius:50%;border:1px solid #D8CEC8;background:#fff;padding:2px;cursor:pointer}
.kmts-dz svg{width:100%;height:100%}
.kmts-dz.on{border:2px solid var(--k-cocoa);box-shadow:0 0 0 3px var(--k-pink)}
.kmts-dz:focus-visible{outline:3px solid #D9B5B0;outline-offset:2px}
.kmts-code{position:absolute;top:1px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--k-muted)}
.kmts-swatches{display:flex;flex-wrap:wrap;gap:12px}
.kmts-sw{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;padding:0;font-size:12px;color:var(--k-muted);cursor:pointer;min-width:44px}
.kmts-sw i{width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,0,0,.18);display:block}
.kmts-sw.on i{box-shadow:0 0 0 2px #FBF6F3,0 0 0 4px var(--k-cocoa)}
.kmts-config input[type=text],.kmts-config textarea{width:100%;font:inherit;color:var(--k-cocoa);background:#fff;border:1px solid #CFC4BE;border-radius:2px;padding:11px 12px;box-sizing:border-box}
.kmts-config textarea{min-height:80px;resize:vertical}
.kmts-hint{font-size:13px;color:var(--k-muted);margin-top:6px}
.kmts-err{font-size:14px;color:var(--k-warn);margin-top:6px}
.kmts-label{display:block;font-weight:500;margin:12px 0 6px;font-size:15px}
.kmts-label small{font-weight:400;color:var(--k-muted)}
.kmts-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid #D8CEC8;border-radius:2px;padding:12px;margin-bottom:8px;background:#fff;cursor:pointer}
.kmts-opt.on{border-color:var(--k-cocoa);box-shadow:inset 0 0 0 1px var(--k-cocoa)}
.kmts-opt input{margin-top:4px;accent-color:var(--k-cocoa)}
.kmts-opt small{display:block;color:var(--k-muted)}
.kmts-opt-row{display:flex;justify-content:space-between;gap:12px;flex:1}
.kmts-check{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer;margin:8px 0}
.kmts-check input{margin-top:4px;width:17px;height:17px;accent-color:var(--k-cocoa)}
.kmts-summary{background:#fff;border:1px solid var(--k-line);border-radius:12px;padding:14px 16px;margin:12px 0}
.kmts-summary .r{display:flex;justify-content:space-between;gap:12px;font-size:15px;padding:3px 0}
.kmts-summary .t{border-top:1px solid var(--k-line);margin-top:8px;padding-top:10px;font-weight:600;font-size:17px}
.kmts-missing{font-size:14px;color:var(--k-warn);margin-top:8px}
.kmts-ready{font-size:14px;color:var(--k-sage);margin-top:8px}
.kmts-block{background:#fff;border:1px solid var(--k-line);border-radius:12px;margin:10px 0}
.kmts-block>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:10px 14px}
.kmts-block>summary::-webkit-details-marker{display:none}
.kmts-mini{width:56px;height:56px;flex:0 0 56px;background:#FBF6F3;border-radius:8px;display:block}
.kmts-mini svg{width:100%;height:100%}
.kmts-bt{flex:1;min-width:0}.kmts-bt b{font-weight:500;display:block}.kmts-bt small{color:var(--k-muted);font-size:13px}
.kmts-tag{font-size:12px;padding:2px 9px;border-radius:999px;background:var(--k-pink);color:var(--k-cocoa);white-space:nowrap}
.kmts-tag.ok{background:#E3E6DA;color:#3E4433}
.kmts-bbody{padding:0 14px 14px}
.kmts-link{background:none;border:0;padding:0;color:var(--k-cocoa);text-decoration:underline;cursor:pointer;margin-top:12px;font-size:14px}
.kmts-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--kmtc-cocoa,#4B403F);background:var(--kmtc-cocoa,#4B403F);color:#FBF6F3;padding:12px 22px;border-radius:2px;font-weight:500;text-decoration:none;font-size:15px;cursor:pointer;line-height:1.2}
.kmts-btn:hover{background:#3A3130;color:#fff}
.kmts-btn.ghost{background:transparent;color:var(--kmtc-cocoa,#4B403F)}
.kmts-btn.ghost:hover{background:var(--kmtc-pink,#FCE6E6)}
.kmts-modal{position:fixed;inset:0;background:rgba(40,32,31,.5);z-index:100000;display:flex;align-items:center;justify-content:center;padding:16px}
.kmts-modal-card{background:#FBF6F3;border-radius:12px;max-width:620px;width:100%;padding:24px;max-height:90vh;overflow:auto;color:#4B403F}
.kmts-modal-card h3{margin-top:0}
.kmts-modal-grid{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:start}
.kmts-modal-preview{background:#fff;border:1px solid #E6DCD6;border-radius:10px;aspect-ratio:1/1;overflow:hidden}
.kmts-modal-preview svg{width:100%;height:100%}
.kmts-modal-card ul{padding-left:18px}
.kmts-modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.kmts-mobilebar{display:none}
@media (max-width:900px){
 .kmts-mobilebar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:999;background:#fff;border-top:1px solid #E6DCD6;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));justify-content:space-between;align-items:center;gap:12px}
 body.single-product{padding-bottom:70px}
 .kmts-designs{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:560px){
 .kmts-designs{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 .kmts-modal-grid{grid-template-columns:1fr}.kmts-modal-preview{max-width:220px}
}
/* Timeline */
.kmts-tl{list-style:none;padding:0;margin:0}
.kmts-tl li{display:grid;grid-template-columns:34px 1fr auto;gap:14px;padding-bottom:22px;position:relative}
.kmts-tl li::before{content:"";position:absolute;left:16px;top:32px;bottom:0;width:2px;background:var(--k-line,#E6DCD6)}
.kmts-tl li:last-child::before{display:none}
.kmts-node{width:34px;height:34px;border-radius:50%;border:2px solid #B0ADAB;background:#fff;display:grid;place-items:center;font-size:14px;color:#8D8380;z-index:1;box-sizing:border-box}
.kmts-tl li.done .kmts-node{background:var(--k-sage,#5F6650);border-color:var(--k-sage,#5F6650);color:#fff}
.kmts-tl li.done::before{background:#AFB39F}
.kmts-tl li.now .kmts-node{box-shadow:0 0 0 4px var(--k-pink,#FCE6E6)}
.kmts-tl b{font-weight:500;display:block}
.kmts-tl small{display:block;font-size:14px;color:var(--k-muted,#6F5E5E);margin-top:2px}
.kmts-when{font-size:14px;color:var(--k-muted,#6F5E5E);white-space:nowrap;text-align:right}
.kmts-tl-how li .kmts-node{background:#fff;border-color:var(--k-cocoa,#4B403F);color:var(--k-cocoa,#4B403F)}
.kmts-tl-how li::before{background:#AFB39F}
.kmts-how-lead{font-size:18px;max-width:42em}
.kmts-notice{background:var(--k-pink,#FCE6E6);border-radius:2px;padding:12px 16px;margin-bottom:18px}
.kmts-events{margin-top:10px;font-size:14px}.kmts-events ul{padding-left:18px}
.kmts-small{font-size:14px;color:var(--k-muted,#6F5E5E)}
.kmts-panel{background:#fff;border:1px solid var(--k-line,#E6DCD6);border-radius:12px;padding:22px;margin-bottom:18px}
.kmts-pink{background:var(--k-pink,#FCE6E6)}
.kmts-grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.kmts-grid2 p{margin:0 0 12px}
.kmts-trackpage label,.kmts-contact label{display:block;font-weight:500;margin-bottom:6px}
.kmts-trackpage input,.kmts-contact input,.kmts-contact select,.kmts-contact textarea{width:100%;box-sizing:border-box;font:inherit;padding:11px 12px;border:1px solid #CFC4BE;border-radius:2px;background:#fff;color:#4B403F}
.kmts-track-form{max-width:660px}
.kmts-track-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}
.kmts-track-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.kmts-track-head h2{margin:0}
.kmts-badge{align-self:center;background:var(--k-cocoa,#4B403F);color:#fff;border-radius:999px;padding:3px 12px;font-size:13px}
.kmts-bigdate{font-family:var(--kmtc-serif,Georgia,serif);font-size:30px;line-height:1.2}
.kmts-track-item{display:grid;grid-template-columns:96px 1fr;gap:14px;margin-bottom:12px}
.kmts-track-item .kmts-pv{background:#FBF6F3;border-radius:8px;aspect-ratio:1/1;overflow:hidden;display:block}
.kmts-track-item ul{padding-left:16px;margin:4px 0;font-size:14px;color:var(--k-muted,#6F5E5E)}
.kmts-h{margin-top:28px}
.kmts-design-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0 40px}
.kmts-design-card{margin:0;background:#fff;border:1px solid #E6DCD6;border-radius:12px;padding:14px}
.kmts-design-art{aspect-ratio:4/3;background:#FBF6F3;border-radius:8px}
.kmts-design-art svg{width:100%;height:100%}
.kmts-design-card figcaption{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:15px}
.kmts-design-card figcaption b{font-weight:500;display:block}.kmts-design-card small{color:#6F5E5E;font-size:13px}
.kmts-thread-chart{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0}
.kmts-thread-chart span{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px}
.kmts-thread-chart i{width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,0,0,.18)}
.kmts-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:14px;max-width:900px;margin:0 auto}
.kmts-strip-item{aspect-ratio:1/1;border-radius:50%;background:#fff;border:1px solid #E6DCD6;display:block;padding:4px}
.kmts-strip-item svg{width:100%;height:100%}
.kmts-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.kmts-signup{display:flex;gap:8px;max-width:520px}
.kmts-signup input[type=email]{flex:1;min-width:0;font:inherit;padding:11px 12px;border:1px solid #CFC4BE;border-radius:2px;background:#fff;color:#4B403F}
.kmts-signup button{font:inherit;font-weight:500;padding:11px 18px;border-radius:2px;border:1px solid #4B403F;background:#4B403F;color:#FBF6F3;cursor:pointer}
.kmts-insp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.kmts-insp-item{display:block;background:#fff;border:1px solid #E6DCD6;border-radius:12px;overflow:hidden;text-decoration:none;color:#4B403F}
.kmts-insp-item img{width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:cover}
.kmts-insp-item span{display:block;padding:10px 12px;font-size:14px}
@media (max-width:900px){.kmts-track-grid{grid-template-columns:1fr}.kmts-design-grid,.kmts-insp{grid-template-columns:repeat(2,minmax(0,1fr))}.kmts-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.kmts-grid2{grid-template-columns:1fr}.kmts-design-grid{grid-template-columns:1fr 1fr;gap:12px}.kmts-tl li{grid-template-columns:30px 1fr}.kmts-when{grid-column:2;text-align:left}.kmts-signup{flex-direction:column}.kmts-insp{gap:10px}}

/* Photo previews fill their square box exactly so placement boxes line up */
.kmts-stage,.kmts-pv,.kmts-modal-preview{position:relative}
.kmts-photo{position:absolute!important;inset:0;width:auto!important;height:auto!important}

/* How it works: dates first */
.kmts-how2{max-width:900px}
.kmts-how-sum{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);align-items:center;background:#FCE6E6;border-radius:14px;padding:22px 20px;margin:8px 0 14px}
.kmts-hs{text-align:center;display:flex;flex-direction:column;gap:2px}
.kmts-hs .lbl{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#6F5E5E}
.kmts-hs .big{font-family:var(--kmtc-serif,Georgia,serif);font-size:clamp(28px,4vw,42px);line-height:1.05;color:#4B403F}
.kmts-hs .sub{font-size:14px;color:#6F5E5E}
.kmts-hs-arrow{height:2px;background:#B0ADAB;position:relative}
.kmts-hs-arrow::after{content:"";position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left:7px solid #B0ADAB;border-right:0}
.kmts-how-note{font-size:16px;color:#4B403F;margin:0 0 26px}
.kmts-cal{list-style:none;margin:0 0 18px;padding:0}
.kmts-cal li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:22px;position:relative;padding-bottom:22px}
.kmts-cal li::before{content:"";position:absolute;left:47px;top:12px;bottom:-12px;width:2px;background:repeating-linear-gradient(#D9B5B0 0 6px,transparent 6px 11px)}
.kmts-cal li:last-child::before{display:none}
.kmts-chip{position:relative;z-index:1;background:#fff;border:1px solid #E6DCD6;border-radius:12px;text-align:center;padding:8px 4px 9px;box-shadow:0 1px 0 rgba(75,64,63,.04);display:flex;flex-direction:column;align-items:center;min-height:96px;justify-content:center}
.kmts-chip .pre{font-size:11px;color:#6F5E5E;text-transform:uppercase;letter-spacing:.06em}
.kmts-chip .m{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#837171}
.kmts-chip .d{font-family:var(--kmtc-serif,Georgia,serif);font-size:38px;line-height:1;color:#4B403F}
.kmts-chip.wide .d{font-size:28px;padding:4px 0}
.kmts-chip .w{font-size:12px;color:#6F5E5E}
.kmts-cal li:first-child .kmts-chip{background:#4B403F;border-color:#4B403F}
.kmts-cal li:first-child .kmts-chip span{color:#FBF6F3}
.kmts-cal-body{padding-top:6px}
.kmts-cal-step{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#837171}
.kmts-cal-body h3{font-size:24px;margin:2px 0 4px}
.kmts-cal-body p{margin:0;color:#6F5E5E;font-size:15px;max-width:34em}
@media (max-width:640px){
 .kmts-how-sum{grid-template-columns:minmax(0,1fr);gap:10px;padding:18px}
 .kmts-hs-arrow{width:2px;height:16px;margin:0 auto}
 .kmts-hs-arrow::after{right:auto;left:-4px;top:auto;bottom:-2px;border:5px solid transparent;border-top:7px solid #B0ADAB;border-bottom:0}
 .kmts-cal li{grid-template-columns:76px minmax(0,1fr);gap:14px}
 .kmts-cal li::before{left:37px}
 .kmts-chip{min-height:84px}.kmts-chip .d{font-size:32px}.kmts-chip.wide .d{font-size:22px}
 .kmts-cal-body h3{font-size:21px}
}

/* Express pay buttons would skip the personalization, so they never show on personalized product pages (they stay in the bag and checkout). */
body.kmts-personalized #wcpay-express-checkout-element,body.kmts-personalized .wcpay-express-checkout-wrapper,body.kmts-personalized #wcpay-express-checkout-button-separator,body.kmts-personalized #wcpay-woopay-button,body.kmts-personalized #wc-stripe-express-checkout-element,body.kmts-personalized #wc-stripe-express-checkout-button-separator,body.kmts-personalized #wc-stripe-payment-request-wrapper,body.kmts-personalized #wc-stripe-payment-request-button-separator{display:none!important}
