:root {
  --brand: #17342f;
  --brand-2: #2f6658;
  --accent: #e7b565;
  --cream: #f6f1e8;
  --paper: #fffdf9;
  --ink: #1d2926;
  --muted: #6f7975;
  --line: #ddd9d0;
  --soft: #ebe5da;
  --danger: #9f3c38;
  --radius: 22px;
  --shadow: 0 18px 50px rgba(25, 43, 38, .10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);background:var(--paper);color:var(--ink);line-height:1.5}
a{color:inherit;text-decoration:none} button,input,select{font:inherit}.shell{width:min(1180px,calc(100% - 40px));margin:0 auto}.hidden{display:none!important}
.site-header{height:82px;background:rgba(255,253,249,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(23,52,47,.08);position:sticky;top:0;z-index:50}.nav-shell{height:100%;display:flex;align-items:center;gap:42px}.brand{display:flex;align-items:center;gap:12px;margin-right:auto}.brand-mark{width:34px;height:34px;display:grid;grid-template-columns:1fr 1fr;gap:3px;transform:rotate(45deg)}.brand-mark i{display:block;background:var(--brand);border-radius:2px}.brand-mark i:nth-child(2),.brand-mark i:nth-child(3){background:var(--accent)}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:15px;letter-spacing:.11em}.brand-copy small{margin-top:5px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.main-nav{display:flex;gap:28px;font-size:14px}.main-nav a{color:#495450}.main-nav a:hover{color:var(--brand)}.cart-button{height:43px;padding:0 14px;border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:8px;font-size:14px;background:white}.cart-button b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:white;font-size:11px}.cart-icon{font-size:20px;transform:rotate(180deg)}
.hero{min-height:650px;position:relative;overflow:hidden;background:linear-gradient(135deg,#f6f1e8 0%,#f4eee3 44%,#e7ece7 100%)}.hero-grid{min-height:650px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;position:relative;z-index:2}.hero-copy{max-width:650px;padding:70px 0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:var(--brand-2)}.hero h1{font-family:var(--font-heading,Georgia,serif);font-weight:400;font-size:clamp(48px,5.2vw,78px);line-height:1.02;letter-spacing:-.04em;margin:15px 0 25px}.hero h1 em{font-weight:400;color:var(--brand-2)}.hero p{font-size:18px;max-width:560px;color:#56625e}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:32px}.btn{border:0;border-radius:999px;padding:14px 22px;display:inline-flex;align-items:center;justify-content:center;gap:16px;font-weight:700;cursor:pointer;transition:.2s transform,.2s background}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand);color:white}.btn-primary:hover{background:#0d2924}.btn-dark{background:#1e2624;color:white}.btn-light{background:white;color:var(--brand)}.text-link{font-size:14px;font-weight:700;border-bottom:1px solid #aab2ae;padding-bottom:4px}.trust-row{display:flex;gap:25px;margin-top:45px;color:#66716d;font-size:12px}.hero-art{position:absolute;right:0;top:0;width:52%;height:100%}.hero-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(231,181,101,.35),rgba(231,181,101,0) 70%);right:4%;top:7%}.photo-stack{position:absolute;border:11px solid #fff;background-size:cover;box-shadow:0 28px 60px rgba(32,51,45,.18)}.photo-a{width:320px;height:390px;right:16%;top:105px;transform:rotate(7deg);background:linear-gradient(145deg,#9eb4a8 0 35%,#48695f 35% 62%,#d6a869 62%)}.photo-b{width:250px;height:300px;right:43%;top:240px;transform:rotate(-10deg);background:linear-gradient(155deg,#e0c49e 0 38%,#8f6c50 38% 55%,#334f4a 55%)}.photo-c{width:190px;height:230px;right:4%;top:330px;transform:rotate(13deg);background:linear-gradient(135deg,#cfd9d1 0 36%,#67827a 36% 64%,#d9b57b 64%)}
.quick-order{margin-top:-36px;position:relative;z-index:5;background:white;border-radius:24px;padding:27px 32px;display:grid;grid-template-columns:1fr auto auto;gap:34px;align-items:center;box-shadow:var(--shadow)}.quick-order h2{margin:4px 0 5px;font-family:var(--font-heading,Georgia,serif);font-size:30px;font-weight:400}.quick-order p{margin:0;color:var(--muted);font-size:14px}.quick-price{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:end;column-gap:7px}.quick-price small{grid-column:1/3;text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:var(--muted)}.quick-price strong{font-size:34px;line-height:1}.quick-price span{font-size:12px;color:var(--muted);padding-bottom:3px}.section{padding:100px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section-heading h2,.inspiration h2,.cart-heading h1,.order-heading h1{font-family:var(--font-heading,Georgia,serif);font-size:45px;font-weight:400;line-height:1.05;margin:9px 0 0}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.product-card{background:white;border:1px solid #ebe7de;border-radius:20px;overflow:hidden;transition:.25s transform,.25s box-shadow}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.product-card.large{grid-column:span 2}.product-visual{height:240px;position:relative;overflow:hidden;background:#eee6da}.large .product-visual{height:315px}.product-info{padding:19px 20px 21px;display:flex;justify-content:space-between;align-items:center}.product-info h3{margin:0;font-size:18px}.product-info p{margin:4px 0 0;color:var(--muted);font-size:12px}.round-arrow{border:1px solid var(--line);width:38px;height:38px;border-radius:50%;display:grid;place-items:center}.pill{position:absolute;top:18px;left:18px;background:white;border-radius:99px;padding:7px 11px;font-size:10px;font-weight:700}.prints{background:linear-gradient(135deg,#dbe6df,#cabd9d)}.print-one,.print-two{position:absolute;background:linear-gradient(145deg,#9ebaa6 0 38%,#54756b 38% 60%,#d8ac6f 60%);border:8px solid white;box-shadow:0 18px 35px rgba(0,0,0,.18)}.print-one{width:205px;height:150px;left:17%;top:85px;transform:rotate(-8deg)}.print-two{width:230px;height:168px;right:13%;top:61px;transform:rotate(7deg);background:linear-gradient(135deg,#c9d3ca 0 35%,#587b70 35% 55%,#a97958 55%)}.collage{display:grid;place-items:center;background:#d7c9b4}.collage-frame{width:72%;height:74%;background:#faf7ef;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px;transform:rotate(-3deg);box-shadow:0 16px 30px rgba(0,0,0,.15)}.collage-frame i:nth-child(1){background:#667e75}.collage-frame i:nth-child(2){background:#d6b67e}.collage-frame i:nth-child(3){background:#ab7b5e}.collage-frame i:nth-child(4){background:#9eafa5}.calendar{display:grid;place-items:center;background:#ccd9d3}.calendar-sheet{width:67%;height:78%;background:#fff;padding:16px;box-shadow:0 16px 30px rgba(0,0,0,.13);text-align:center}.calendar-sheet b{font-family:var(--font-heading,Georgia,serif);font-size:27px}.calendar-sheet span{display:block;font-size:9px;letter-spacing:.15em;margin:4px}.calendar-sheet div{height:55%;margin-top:9px;background:linear-gradient(145deg,#cfa97b,#617a70)}.retro{display:grid;place-items:center;background:#e0cab3}.retro-print{width:61%;height:78%;background:white;padding:10px 10px 28px;transform:rotate(4deg);box-shadow:0 14px 30px rgba(0,0,0,.14)}.retro-print i{display:block;width:100%;height:100%;background:linear-gradient(145deg,#59776d,#d4ad73)}.retro-print b{display:block;text-align:center;font-family:var(--font-heading,Georgia,serif);font-size:11px;margin-top:6px}.cards{display:grid;place-items:center;background:#d5ddd7}.card-sheet{width:65%;height:76%;background:#f7f0e6;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-2deg);border:1px solid rgba(0,0,0,.08);box-shadow:0 15px 30px rgba(0,0,0,.14)}.card-sheet small{font-size:8px;letter-spacing:.2em}.card-sheet b{font-family:var(--font-heading,Georgia,serif);font-size:32px;font-weight:400;color:var(--brand);margin:4px}.card-sheet span{font-size:11px;color:#997650}
.inspiration{background:var(--brand);color:white;padding:95px 0;overflow:hidden}.inspiration-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:80px;align-items:center}.eyebrow.light{color:#d5b373}.inspiration h2{font-size:58px}.inspiration-copy p{color:#c3cfcb;max-width:390px;margin-bottom:28px}.inspiration-scenes{height:410px;position:relative}.scene{position:absolute;border:9px solid white;box-shadow:0 20px 45px rgba(0,0,0,.25)}.scene-one{width:320px;height:360px;left:8%;top:10px;transform:rotate(-5deg);background:linear-gradient(140deg,#d1ae76 0 32%,#6d8b80 32% 63%,#304a45 63%)}.scene-two{width:250px;height:300px;right:10%;top:80px;transform:rotate(8deg);background:linear-gradient(155deg,#b98a68 0 40%,#d9c5a2 40% 64%,#49665d 64%)}.scene-caption{position:absolute;right:0;bottom:0;background:var(--accent);color:var(--ink);padding:20px 25px;font-family:var(--font-heading,Georgia,serif);font-size:18px;transform:rotate(-2deg)}.benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;padding:65px 0}.benefits>div{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto}.benefit-icon{grid-row:1/3;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}.benefits strong{font-size:14px}.benefits small{color:var(--muted);font-size:11px;margin-top:3px}.site-footer{background:#f1ede5;border-top:1px solid #e0dbd1;padding:60px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:55px}.footer-brand{width:max-content}.footer-grid p{color:var(--muted);font-size:12px}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:8px;font-size:12px}.footer-grid>div strong{margin-bottom:5px}.footer-grid a{color:var(--muted)}.powered{justify-content:center;color:var(--muted)}
.order-page{background:#f7f4ed;min-height:calc(100vh - 82px);padding:35px 0 110px}.order-topline{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.steps{display:flex;align-items:center;gap:7px}.steps span{width:24px;height:24px;border:1px solid #bfc5c1;border-radius:50%;display:grid;place-items:center;font-size:10px}.steps span.active{background:var(--brand);border-color:var(--brand);color:white}.steps b{font-weight:600}.steps i{width:35px;height:1px;background:#c9cbc7;margin:0 5px}.order-heading{display:flex;justify-content:space-between;align-items:end;margin:50px 0 28px}.order-heading p{color:var(--muted);margin:8px 0 0}.format-picker{display:flex;flex-direction:column;gap:6px}.format-picker label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--muted)}select{border:1px solid var(--line);border-radius:12px;background:white;padding:12px 40px 12px 14px;color:var(--ink)}.upload-zone{min-height:360px;border:2px dashed #c7c6bf;background:rgba(255,255,255,.7);border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;transition:.2s border,.2s background}.upload-zone.dragging{border-color:var(--brand-2);background:white}.upload-zone h2{font-family:var(--font-heading,Georgia,serif);font-size:28px;font-weight:400;margin:12px 0 3px}.upload-zone p{color:var(--muted);margin:0 0 18px}.upload-zone small{margin-top:13px;color:#8b928f;font-size:10px;letter-spacing:.08em}.upload-icon{width:56px;height:56px;border-radius:50%;background:#e8ede9;display:grid;place-items:center;color:var(--brand);font-size:28px}.photo-workspace{margin-top:25px}.workspace-toolbar{background:white;border:1px solid var(--line);border-radius:15px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.workspace-toolbar>div{display:flex;gap:12px;align-items:center}.select-link{border:0;background:none;color:var(--brand-2);font-weight:700;cursor:pointer}.workspace-toolbar span,.bulk-actions label{font-size:11px;color:var(--muted)}.bulk-actions select{padding:8px 28px 8px 10px;font-size:12px}.small-btn{border:0;border-radius:9px;background:#e9eeeb;color:var(--brand);font-weight:700;padding:8px 11px;cursor:pointer}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.photo-card{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden;position:relative}.photo-card.selected{outline:2px solid var(--brand);outline-offset:-2px}.photo-image{height:195px;background:#eee;position:relative;overflow:hidden;display:grid;place-items:center}.photo-image img{width:100%;height:100%;object-fit:cover}.photo-image.fit img{object-fit:contain;background:white}.photo-select{position:absolute;top:10px;left:10px;width:25px;height:25px;border-radius:50%;border:2px solid white;background:rgba(0,0,0,.18);z-index:3;display:grid;place-items:center;color:white;cursor:pointer}.selected .photo-select{background:var(--brand)}.quality-dot{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.9);border-radius:99px;font-size:9px;padding:5px 7px;color:#3f6b59}.photo-meta{padding:12px}.photo-meta-top{display:flex;justify-content:space-between;align-items:center}.photo-meta strong{font-size:12px}.photo-meta small{font-size:9px;color:var(--muted)}.quantity-row{display:flex;align-items:center;justify-content:space-between;margin-top:11px}.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden}.qty button{width:30px;height:30px;border:0;background:#f5f4f0;cursor:pointer}.qty span{width:30px;text-align:center;font-size:12px}.edit-photo{border:0;background:none;font-size:11px;color:var(--brand-2);font-weight:700;cursor:pointer}.sticky-summary{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(700px,calc(100% - 30px));background:#1d2926;color:white;border-radius:18px;padding:13px 14px 13px 21px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 20px 50px rgba(0,0,0,.25);z-index:40}.sticky-summary>div{display:flex;flex-direction:column}.sticky-summary small{font-size:10px;color:#b9c4c0}.sticky-summary strong{font-size:18px}.sticky-summary .btn{background:#f2c575;color:#1d2926}.crop-modal{position:fixed;inset:0;background:rgba(16,29,25,.78);backdrop-filter:blur(8px);z-index:100;display:grid;place-items:center;padding:25px}.crop-dialog{width:min(1000px,100%);background:#f7f4ed;border-radius:25px;overflow:hidden;display:grid;grid-template-columns:1.25fr .75fr;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.4)}.modal-close{position:absolute;right:16px;top:13px;border:0;background:white;width:35px;height:35px;border-radius:50%;font-size:22px;cursor:pointer;z-index:3}.crop-preview-wrap{background:#24302d;min-height:580px;display:grid;place-items:center;padding:45px;position:relative}.crop-stage{width:100%;height:420px;overflow:hidden;position:relative;display:grid;place-items:center}.crop-stage img{max-width:none;width:100%;height:100%;object-fit:cover;transition:.15s filter}.crop-stage.fit img{object-fit:contain;background:white}.crop-frame{position:absolute;inset:7%;border:2px solid white;box-shadow:0 0 0 999px rgba(0,0,0,.2);pointer-events:none}.quality{position:absolute;left:45px;bottom:24px;border-radius:99px;padding:7px 10px;background:#fff;font-size:10px}.quality.good{color:#39705a}.quality.warn{color:#aa7626}.quality.bad{color:var(--danger)}.crop-controls{padding:55px 35px 35px}.crop-controls h2{font-family:var(--font-heading,Georgia,serif);font-size:33px;font-weight:400;margin:8px 0}.crop-controls p{font-size:12px;color:var(--muted)}.segmented{display:grid;grid-template-columns:1fr 1fr;background:#e7e5df;border-radius:10px;padding:3px;margin:25px 0}.segmented button{border:0;background:transparent;border-radius:8px;padding:9px;cursor:pointer;font-size:12px}.segmented button.active{background:white;box-shadow:0 2px 7px rgba(0,0,0,.08);font-weight:700}.crop-controls>label:not(.check-row){display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;margin:20px 0}.check-row{display:flex;gap:9px;align-items:center;font-size:12px;margin:20px 0}.crop-note{background:white;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;margin:20px 0}.crop-note b{font-size:11px}.crop-note span{font-size:10px;color:var(--muted)}.full{width:100%}
.cart-page{padding:70px 0 110px}.cart-heading{margin-bottom:32px}.cart-heading p{color:var(--muted)}.cart-layout{display:grid;grid-template-columns:1.5fr .7fr;gap:25px}.cart-items{min-height:340px}.empty-cart{height:340px;border:1px dashed var(--line);border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-cart>span{font-size:35px;color:var(--muted)}.empty-cart h2{font-family:var(--font-heading,Georgia,serif);font-weight:400;margin:8px 0 0}.empty-cart p{color:var(--muted);font-size:12px;margin:5px 0 18px}.cart-product{display:grid;grid-template-columns:110px 1fr auto;gap:18px;background:white;border:1px solid var(--line);border-radius:17px;padding:15px;align-items:center}.cart-thumb{height:85px;border-radius:11px;background:linear-gradient(145deg,#9ebaa6 0 38%,#54756b 38% 60%,#d8ac6f 60%)}.cart-product h3{margin:0;font-size:16px}.cart-product p{margin:4px 0 0;color:var(--muted);font-size:11px}.cart-product strong{font-size:15px}.cart-summary{background:#f4f1e9;border-radius:20px;padding:25px;height:max-content}.cart-summary h2{font-family:var(--font-heading,Georgia,serif);font-weight:400;font-size:25px;margin-top:0}.cart-summary>div{display:flex;justify-content:space-between;font-size:12px;margin:12px 0}.cart-summary hr{border:0;border-top:1px solid #d9d4ca;margin:20px 0}.cart-summary .cart-total{align-items:center}.cart-total strong{font-size:25px}.cart-summary .btn{margin-top:20px}.cart-summary>small{display:block;color:var(--muted);font-size:9px;text-align:center;margin-top:12px}
@media(max-width:900px){.main-nav{display:none}.hero-grid{grid-template-columns:1fr}.hero-art{opacity:.25;width:100%}.hero-copy{padding:75px 0 110px}.quick-order{grid-template-columns:1fr auto}.quick-order .btn{grid-column:1/3}.product-grid{grid-template-columns:repeat(2,1fr)}.product-card.large{grid-column:span 2}.inspiration-grid{grid-template-columns:1fr}.benefits{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.photo-grid{grid-template-columns:repeat(2,1fr)}.crop-dialog{grid-template-columns:1fr;max-height:95vh;overflow:auto}.crop-preview-wrap{min-height:400px}.crop-stage{height:320px}.cart-layout{grid-template-columns:1fr}}
@media(max-width:600px){.shell{width:min(100% - 24px,1180px)}.site-header{height:68px}.brand-mark{width:29px;height:29px}.brand-copy strong{font-size:13px}.cart-button>span:not(.cart-icon){display:none}.hero,.hero-grid{min-height:600px}.hero-copy{padding-top:60px}.hero h1{font-size:50px}.hero p{font-size:15px}.trust-row{gap:10px;flex-wrap:wrap}.quick-order{margin-top:-25px;padding:22px;grid-template-columns:1fr}.quick-price,.quick-order .btn{grid-column:auto}.section{padding:70px 0}.section-heading{align-items:start;gap:20px}.section-heading h2,.order-heading h1,.cart-heading h1{font-size:36px}.section-heading>.text-link{display:none}.product-grid{grid-template-columns:1fr}.product-card.large{grid-column:auto}.large .product-visual,.product-visual{height:250px}.inspiration{padding:70px 0}.inspiration-grid{gap:35px}.inspiration h2{font-size:46px}.inspiration-scenes{height:340px}.scene-one{width:220px;height:270px}.scene-two{width:180px;height:220px}.benefits{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.order-topline .steps b,.order-topline .steps i{display:none}.order-heading{align-items:start;flex-direction:column;gap:20px;margin-top:35px}.format-picker{width:100%}.format-picker select{width:100%}.workspace-toolbar{align-items:flex-start;gap:12px;flex-direction:column}.bulk-actions{width:100%;flex-wrap:wrap}.photo-grid{grid-template-columns:1fr}.photo-image{height:290px}.crop-modal{padding:8px}.crop-preview-wrap{padding:42px 18px 30px;min-height:350px}.crop-stage{height:265px}.crop-controls{padding:35px 22px 25px}.quality{left:20px;bottom:10px}.cart-product{grid-template-columns:80px 1fr}.cart-product>strong{grid-column:2}.hero-art{display:none}.hero{background:linear-gradient(155deg,#f6f1e8,#e6eee9)}}
.crop-stage{cursor:grab;touch-action:none}.crop-stage.fit{cursor:default}

/* Ordering 0.1.1 */
.order-heading{align-items:flex-start}.bulk-actions{flex-wrap:wrap}.qty-input input{width:38px;height:30px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;font:inherit;font-size:12px;background:#fff;color:var(--ink);-moz-appearance:textfield}.qty-input input::-webkit-outer-spin-button,.qty-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.photo-grid{grid-template-columns:repeat(3,1fr);align-items:start}.photo-card{overflow:visible}.photo-image{border-radius:14px 14px 0 0}.overview-crop{position:absolute;border:2px solid rgba(255,255,255,.96);box-shadow:0 0 0 999px rgba(17,26,24,.42);pointer-events:none;z-index:2}.overview-crop.fit-preview{border:2px dashed rgba(255,255,255,.92);box-shadow:inset 0 0 0 999px rgba(255,255,255,.08)}.quality-dot.neutral{color:#6d7571}.quality-dot.warn{color:#9a691f}.quality-dot.bad{color:var(--danger)}.photo-meta{padding:13px}.photo-meta-top{margin-bottom:10px}.photo-meta-top strong{max-width:66%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.print-list{display:flex;flex-direction:column;gap:7px}.print-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto 24px;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#faf9f6}.print-row.active{border-color:#8fa79f;background:#f1f5f2}.preview-format{border:0;background:none;padding:0;text-align:left;cursor:pointer;min-width:0}.preview-format span{display:block;font-weight:700;font-size:11px;color:var(--ink)}.preview-format small{display:block;color:var(--muted);font-size:8px;margin-top:1px}.print-row .qty button{width:25px;height:27px}.print-row .qty input{height:27px;width:30px}.print-row .edit-photo{font-size:10px}.remove-print{border:0;background:none;color:#a2a5a1;font-size:18px;cursor:pointer;padding:0}.remove-print:hover{color:var(--danger)}.no-print{border:1px dashed var(--line);border-radius:10px;padding:11px;display:flex;flex-direction:column;gap:2px}.no-print strong{font-size:11px}.no-print span{font-size:9px;color:var(--muted);line-height:1.35}.add-format-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:9px}.add-format-row select{min-width:0;padding:8px 25px 8px 9px;font-size:10px}.add-format-row .small-btn{font-size:10px;padding:8px}.add-format-row .small-btn:disabled{opacity:.45;cursor:default}.crop-stage{cursor:default;touch-action:none;background:#1c2724}.crop-stage img{width:100%;height:100%;object-fit:contain;transform:none!important;pointer-events:none}.crop-stage.fit img{background:white}.crop-frame{position:absolute;inset:auto;border:2px solid #fff;box-shadow:0 0 0 999px rgba(0,0,0,.38),0 0 0 1px rgba(0,0,0,.2);pointer-events:auto;cursor:move;touch-action:none;z-index:3}.crop-frame.dragging{cursor:grabbing}.crop-grip{position:absolute;left:50%;top:50%;width:32px;height:32px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.9);border-radius:50%;background:rgba(20,32,28,.28)}.crop-grip:before,.crop-grip:after{content:"";position:absolute;background:white;opacity:.9}.crop-grip:before{width:12px;height:1px;left:9px;top:15px}.crop-grip:after{width:1px;height:12px;left:15px;top:9px}
@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.photo-grid{grid-template-columns:1fr}.photo-image{height:270px}.bulk-actions .qty{margin-left:auto}.add-format-row{grid-template-columns:1fr}.print-row{grid-template-columns:minmax(0,1fr) auto 24px}.print-row .edit-photo{grid-column:1/3;justify-self:start;padding:4px 0}.remove-print{grid-column:3;grid-row:1}}
.photo-image[style*="aspect-ratio"]{min-height:0}.photo-image[style*="aspect-ratio"] img{object-fit:cover}

/* 0.1.2 – fixed photo cards, surfaces and editable cart order */
.photo-grid{align-items:stretch}
.photo-card{display:flex;flex-direction:column;overflow:hidden}
.photo-image{height:220px!important;min-height:220px;aspect-ratio:auto!important;background:#eceae4;display:flex;align-items:center;justify-content:center;border-radius:14px 14px 0 0}
.photo-image img{width:100%;height:100%;object-fit:contain!important;background:transparent}
.photo-meta{display:flex;flex-direction:column;flex:1}
.print-list{flex:1}
.print-row{grid-template-columns:minmax(78px,1fr) minmax(92px,112px) auto auto 24px}
.surface-select{min-width:0;padding:7px 24px 7px 8px;border-radius:8px;font-size:10px;background:#fff}
.bulk-actions #bulkSurface{padding:8px 28px 8px 10px;font-size:12px}
.overview-crop{box-shadow:0 0 0 999px rgba(17,26,24,.48);border-width:2px}
.overview-crop.fit-preview{box-shadow:none;border:1px dashed rgba(255,255,255,.95)}
.cart-order-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.cart-order-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--line)}
.cart-order-head h2{margin:4px 0 0;font-family:var(--font-heading,Georgia,serif);font-size:25px;font-weight:400}
.edit-order-link{text-decoration:none;white-space:nowrap}
.cart-order-lines{display:flex;flex-direction:column}
.cart-order-line{display:grid;grid-template-columns:72px 1fr auto;gap:15px;align-items:center;padding:16px 22px;border-bottom:1px solid #eeeae2}
.cart-order-line:last-child{border-bottom:0}
.cart-order-line h3{margin:0 0 4px;font-size:14px}
.cart-order-line p{margin:0;color:var(--muted);font-size:11px}
.cart-order-line strong{font-size:14px}
.cart-order-line .cart-thumb{width:58px;height:44px;border-radius:8px;background:linear-gradient(135deg,#d8e0da,#bfa47e);border:4px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.09)}
@media(max-width:900px){.photo-image{height:205px!important;min-height:205px}.print-row{grid-template-columns:minmax(70px,1fr) minmax(88px,105px) auto auto 22px}}
@media(max-width:620px){.photo-image{height:190px!important;min-height:190px}.print-row{grid-template-columns:1fr auto 24px}.surface-select{grid-column:1/2}.print-row .qty{grid-column:2/3;grid-row:1/3}.print-row .edit-photo{grid-column:1/2;text-align:left}.remove-print{grid-column:3/4;grid-row:1/3}.cart-order-head{align-items:flex-start;flex-direction:column}.cart-order-line{grid-template-columns:56px 1fr}.cart-order-line>strong{grid-column:2}}

/* 0.2.11 database-backed catalog preview */
.storefront-category-block{margin:28px 0 48px}.storefront-category-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.storefront-category-heading p{color:var(--muted);margin:0;max-width:650px}.storefront-subcategory{margin:18px 0 30px;padding:22px;border:1px solid rgba(23,52,47,.09);border-radius:22px;background:rgba(255,255,255,.72)}
.storefront-subcategory-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.storefront-subcategory-heading h3{margin:0;font-size:24px}.storefront-subcategory-heading p{margin:5px 0 0;color:var(--muted)}.storefront-subcategory-heading>span{font-size:12px;color:var(--muted)}
.catalog-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.catalog-product-card{display:block;text-decoration:none;color:inherit;border:1px solid rgba(23,52,47,.1);border-radius:18px;overflow:hidden;background:#fff;transition:transform .18s ease,box-shadow .18s ease}.catalog-product-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(23,52,47,.10)}
.catalog-product-visual{height:138px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--secondary,#f3eee4),#fff);font-size:25px;font-weight:800;letter-spacing:-.03em}.catalog-product-content{padding:16px}.catalog-product-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.catalog-product-title h4{font-size:18px;margin:0}.catalog-product-title p{font-size:12px;color:var(--muted);margin:4px 0 0}.catalog-product-title>strong{white-space:nowrap;font-size:13px}
.variant-preview-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.variant-preview-list span{display:flex;gap:6px;align-items:center;padding:6px 9px;border-radius:999px;background:#f5f5f1;font-size:11px}.variant-preview-list small{color:var(--muted)}.storefront-empty{display:flex;flex-direction:column;gap:4px;padding:24px;border-radius:16px;background:#f7f4ed;color:var(--muted)}.storefront-empty.compact{padding:14px}
@media(max-width:900px){.catalog-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.catalog-product-grid{grid-template-columns:1fr}.storefront-subcategory{padding:15px}.storefront-subcategory-heading{align-items:flex-start;flex-direction:column}}

/* 0.2.13 interactive order refinements */
.overview-crop{pointer-events:auto;cursor:move;touch-action:none}.overview-crop.dragging{cursor:grabbing}.photo-image{overscroll-behavior:contain}.print-row.no-surface{grid-template-columns:minmax(0,1fr) auto auto 24px}.product-description{margin-top:12px;max-width:720px;color:var(--muted)}.product-description summary{cursor:pointer;font-weight:700;color:var(--brand-2);font-size:12px}.product-description p{line-height:1.6}.product-lead{max-width:760px}.workspace-toolbar #addMorePhotos{white-space:nowrap}

.cart-order-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.danger-btn{background:#f6e8e6;color:var(--danger)}.danger-btn:hover{background:#efd7d4}.danger-btn:disabled{opacity:.55;cursor:default}@media(max-width:620px){.cart-order-actions{width:100%}}

/* QR upload */
.upload-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
.btn-secondary{background:#eef2ef;color:#17312d;border:1px solid #d7dfdc}
.qr-modal{position:fixed;inset:0;z-index:1200;background:rgba(19,35,31,.62);display:grid;place-items:center;padding:1.25rem}
.qr-modal.hidden{display:none}
.qr-dialog{position:relative;width:min(460px,100%);background:#fff;border-radius:24px;padding:2rem;box-shadow:0 24px 80px rgba(0,0,0,.22);text-align:center}
.qr-dialog h2{margin:.35rem 0 .5rem;font-size:2rem}
.qr-dialog p{color:#66736f;line-height:1.55}
.qr-code-shell{width:260px;height:260px;margin:1.25rem auto;background:#fff;border:1px solid #e2e7e5;border-radius:18px;padding:12px;display:grid;place-items:center}
.qr-code-shell img{width:100%;height:100%;object-fit:contain}
.qr-upload-link{display:inline-block;margin:.15rem 0 .85rem;color:var(--brand-primary,#17312d);font-weight:700}
.qr-upload-status{margin:.5rem 0 1rem;padding:.8rem 1rem;border-radius:12px;background:#f1f5f3;font-weight:700;color:#27423c}
.qr-dialog small{display:block;color:#7a8581;line-height:1.45}

/* Remote upload page */
.remote-upload-page{min-height:100vh;background:var(--paper,#f6f3ed);margin:0;font-family:var(--font-body,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif);color:var(--ink,#17312d)}
.remote-upload-shell{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 50% 35%,var(--brand-soft,rgba(23,52,47,.06)),transparent 42%)}
.remote-upload-card{width:min(520px,100%);box-sizing:border-box;background:var(--surface-card,#fff);border:1px solid var(--line,rgba(23,49,45,.10));border-radius:24px;padding:2rem;box-shadow:0 20px 60px color-mix(in srgb,var(--ink,#17312d) 10%,transparent)}
.remote-upload-brand{min-height:48px;margin:0 0 1.35rem;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ink,#17312d)}
.remote-upload-brand img{display:block;max-width:min(230px,72%);max-height:72px;width:auto;height:auto;object-fit:contain}
.remote-upload-brand strong{font-family:var(--font-heading,Georgia,serif);font-size:clamp(1.35rem,5vw,2rem);font-weight:700;line-height:1.1}
.remote-upload-card .eyebrow{color:var(--brand,#17342f)}
.remote-upload-card h1{font-family:var(--font-heading,Georgia,serif);font-size:2.5rem;font-weight:400;line-height:1.08;color:var(--ink,#17312d);margin:.35rem 0 .65rem}
.remote-upload-card p{color:var(--muted,#68746f);line-height:1.55}
.remote-upload-card .remote-upload-choose{-webkit-appearance:none;appearance:none;background:var(--brand,#17342f);color:#fff;border:1px solid var(--brand,#17342f);-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.remote-upload-card .remote-upload-choose:hover,.remote-upload-card .remote-upload-choose:focus,.remote-upload-card .remote-upload-choose:focus-visible,.remote-upload-card .remote-upload-choose:active{background:var(--primary-hover,var(--brand,#17342f));border-color:var(--primary-hover,var(--brand,#17342f));color:#fff}
.remote-upload-card .remote-upload-choose:focus-visible{outline:3px solid color-mix(in srgb,var(--brand,#17342f) 25%,transparent);outline-offset:3px}
.remote-upload-card .remote-upload-choose:disabled{background:var(--brand,#17342f);border-color:var(--brand,#17342f);color:#fff;opacity:.55;cursor:wait}
.remote-upload-progress{margin:1rem 0;padding:.85rem 1rem;border-radius:12px;background:var(--brand-soft,#f1f5f3);color:var(--ink,#17312d)}
.remote-upload-result{margin:1rem 0 0;font-weight:700;line-height:1.45}
.remote-upload-result.success{color:#1f6b48}.remote-upload-result.warn{color:#8a5a12}.remote-upload-result.error{color:#a43131}
.remote-upload-note{font-size:.9rem;margin-top:1.25rem}
@media(max-width:600px){.qr-dialog{padding:1.35rem}.qr-code-shell{width:220px;height:220px}.remote-upload-shell{place-items:center;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom))}.remote-upload-card{padding:1.4rem;border-radius:18px}.remote-upload-brand{margin-bottom:1.1rem}.remote-upload-brand img{max-height:58px}.remote-upload-card h1{font-size:2rem}}

.qr-link-actions{display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap;margin:.15rem 0 .85rem}
.qr-link-actions .qr-upload-link{margin:0}
.qr-link-actions .small-btn:disabled{opacity:.5;cursor:not-allowed}

/* Checkout */
.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.checkout-card{background:#fff;border:1px solid var(--line,#e8e8e8);border-radius:22px;padding:28px}.checkout-card h2{margin:0 0 18px}.checkout-card h2:not(:first-child){margin-top:30px}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkout-card label{display:flex;flex-direction:column;gap:7px;font-weight:700}.checkout-card input,.checkout-card textarea{border:1px solid #d9d9d9;border-radius:12px;padding:12px 13px;font:inherit;background:#fff}.location-options{display:grid;gap:10px}.location-option{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:12px!important;border:1px solid #ddd;border-radius:14px;padding:14px;cursor:pointer}.location-option input{margin-top:3px}.location-option span{display:grid;gap:3px}.location-option small{font-weight:400;color:#6c6c6c}.validation-banner{background:#fff1f1;border:1px solid #efbcbc;color:#9b2020;border-radius:12px;padding:12px 15px;margin-bottom:18px}.confirmation-page{padding-top:70px;padding-bottom:70px}.confirmation-card{max-width:680px;margin:auto;text-align:center;background:#fff;border:1px solid #e6e6e6;border-radius:26px;padding:46px}.confirmation-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#eaf7ee;color:#167333;font-size:32px;margin:0 auto 20px}.confirmation-total{display:flex;justify-content:space-between;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:18px 0;margin:26px 0;font-size:1.15rem}.cart-order-line.compact{grid-template-columns:1px 1fr auto}@media(max-width:850px){.checkout-layout{grid-template-columns:1fr}.form-grid.two{grid-template-columns:1fr}}
.checkout-option-list{display:grid;gap:10px;margin:0 0 28px}.checkout-option{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #e4e7e2;border-radius:12px;background:#fbfcfa;cursor:pointer}.checkout-option input{width:19px;height:19px;accent-color:var(--brand-primary,#183d36)}.checkout-option span{display:grid;gap:3px}.checkout-option small{color:#77827e;line-height:1.35}.checkout-option b{white-space:nowrap}


/* Creative Engine / collage */
.creative-page{padding:34px 0 80px;background:var(--paper)}.creative-shell{max-width:1500px}.creative-top{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:start;margin-bottom:22px}.creative-top a{color:var(--brand);font-weight:700;text-decoration:none}.creative-top h1{font-size:clamp(2rem,4vw,4rem);margin:.2rem 0}.creative-toolbar{display:flex;gap:14px;align-items:end;flex-wrap:wrap;background:#fff;border:1px solid #e7e1d8;border-radius:20px;padding:16px 18px;margin-bottom:18px;box-shadow:0 8px 30px rgba(30,45,40,.06)}.creative-toolbar label,.creative-text-controls label{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#51605c}.creative-toolbar select,.creative-toolbar input,.creative-text-controls select,.creative-text-controls input{min-height:42px;border:1px solid #d9d4ca;border-radius:10px;padding:0 10px;background:#fff}.creative-workspace{display:grid;grid-template-columns:260px minmax(0,1fr) 230px;gap:18px;align-items:start}.creative-assets,.creative-stage-panel,.creative-summary{background:#fff;border:1px solid #e6e0d7;border-radius:20px;padding:16px;box-shadow:0 8px 30px rgba(30,45,40,.06)}.creative-assets-head{display:flex;justify-content:space-between;align-items:center}.creative-assets-head small{display:block;color:#77827e;margin-top:3px}.creative-asset-filter{display:flex;gap:6px;margin:12px 0}.creative-asset-filter button{border:0;background:#eee9e0;border-radius:999px;padding:6px 10px;font-weight:700}.creative-asset-filter button.active{background:var(--brand);color:#fff}.creative-asset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:520px;overflow:auto;margin-bottom:12px}.creative-asset{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;border:2px solid transparent;cursor:grab;background:#f1eee7}.creative-asset.used{opacity:.55;border-color:var(--brand)}.creative-asset img{width:100%;height:100%;object-fit:cover}.creative-asset span{position:absolute;left:4px;right:4px;bottom:4px;background:rgba(0,0,0,.66);color:#fff;font-size:.67rem;padding:3px 5px;border-radius:6px;text-align:center}.creative-empty-assets{grid-column:1/-1;padding:25px 8px;color:#74807c;text-align:center;font-size:.85rem}.creative-canvas-wrap{position:relative;background:#e7e4df;border-radius:16px;padding:24px;display:grid;place-items:center;min-height:560px}.creative-canvas{width:min(100%,850px);background:#fff;box-shadow:0 18px 45px rgba(0,0,0,.16);position:relative;overflow:hidden;display:flex;flex-direction:column}.creative-grid{flex:1;display:grid;min-height:0}.creative-slot{background:rgba(80,90,88,.08);border:1px dashed rgba(70,80,78,.35);min-width:0;min-height:0;display:grid;place-items:center;position:relative;overflow:hidden;color:#7c8682;font-size:.72rem}.creative-slot.filled{border-style:solid;background:#ddd}.creative-slot img{width:100%;height:100%;object-fit:cover}.creative-slot button{position:absolute;right:4px;top:4px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;cursor:pointer}.creative-canvas-text{text-align:center;padding:.55rem 1rem .25rem;display:grid;gap:.1rem}.creative-canvas-text strong{font-size:1.35rem}.creative-canvas-text span{font-size:.85rem}.creative-text-controls{display:grid;grid-template-columns:2fr 2fr 1fr;gap:10px;margin-top:14px}.creative-summary h3{font-size:1.7rem;margin:.4rem 0 1.1rem}.creative-stat{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee9e2}.creative-hint{font-size:.78rem;color:#697571;line-height:1.5}.creative-save-state{font-size:.78rem;font-weight:700;color:#71807b;margin:12px 0}.full{width:100%}@media(max-width:1050px){.creative-workspace{grid-template-columns:220px 1fr}.creative-summary{grid-column:1/-1}.creative-canvas-wrap{position:relative;min-height:460px}}@media(max-width:760px){.creative-top{grid-template-columns:1fr}.creative-workspace{grid-template-columns:1fr}.creative-assets{order:2}.creative-stage-panel{order:1}.creative-summary{order:3}.creative-asset-grid{grid-template-columns:repeat(4,1fr);max-height:260px}.creative-text-controls{grid-template-columns:1fr}.creative-canvas-wrap{position:relative;padding:10px;min-height:380px}}


/* Creative Engine 0.3.5 */
.creative-shell{max-width:1900px}
.creative-gallery-head{display:grid;grid-template-columns:170px 1fr;gap:24px;align-items:start;margin-bottom:22px}
.creative-gallery-head>a,.link-button{color:var(--brand);font-weight:800;text-decoration:none;background:none;border:0;padding:8px 0;cursor:pointer;text-align:left}
.creative-gallery-head h1{font-size:clamp(2rem,3.5vw,4rem);margin:.1rem 0 .5rem}
.creative-gallery-filters{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 20px}
.creative-gallery-filters .segmented{display:flex;background:#efebe4;border-radius:999px;padding:4px;gap:2px}
.creative-gallery-filters button{border:0;background:transparent;padding:8px 14px;border-radius:999px;font-weight:750;cursor:pointer}
.creative-gallery-filters button.active{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.09)}
.creative-template-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.creative-template-card{border:1px solid #ddd8cf;border-radius:18px;background:#fff;padding:12px;display:grid;gap:8px;cursor:pointer;transition:.15s;text-align:center;min-height:190px}
.creative-template-card:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 10px 30px rgba(20,40,35,.08)}
.creative-template-card strong{font-size:.95rem}.creative-template-card small{color:#77817e}
.creative-template-mini{aspect-ratio:4/3;border:1px solid #e3dfd8;border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:3px;position:relative;background:#faf9f7}
.creative-template-mini.portrait{aspect-ratio:2/3;margin-inline:auto;width:68%}.creative-template-mini.landscape{aspect-ratio:3/2}
.creative-template-mini .mini-row{display:flex;flex:1;gap:3px}.creative-template-mini i{background:#c6cad0;border-radius:2px}.creative-template-mini em{font-size:.55rem;font-style:italic;color:#656e6b}
.creative-workspace{grid-template-columns:minmax(260px,320px) minmax(620px,1fr) minmax(230px,280px)}
.creative-canvas-wrap{position:relative;min-height:min(72vh,900px);padding:26px}.creative-canvas{width:min(100%,1100px);max-height:76vh}
.creative-fixed-layout{flex:1;min-height:0;display:flex;flex-direction:column}.creative-fixed-row{display:flex;flex:1;min-height:0}
.creative-slot{flex-basis:0}.creative-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;max-height:none;transform-origin:center center;transition:filter .1s}
.range-with-value{min-width:190px}.range-with-value>span{font-size:.72rem;font-weight:700;color:#66726e}.range-with-value input{padding:0}
.creative-background-control{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#51605c}.background-swatches{display:flex;gap:7px;align-items:center;min-height:42px}
.background-swatch{width:34px;height:34px;border-radius:50%;border:2px solid #fff;outline:1px solid #d8d3ca;cursor:pointer}.background-swatch.active{outline:3px solid var(--brand)}
.font-choices{display:grid;gap:6px}.font-choices>div{display:flex;gap:7px}.font-choices button{min-width:52px;height:42px;border:1px solid #ddd7cf;border-radius:9px;background:#fff;font-size:1.15rem;cursor:pointer}.font-choices button.active{border:2px solid var(--brand)}
.creative-upload-progress{display:grid;place-items:center;text-align:center;gap:4px;padding:18px;border-radius:12px;background:#f4f1eb;margin:10px 0}.spinner{width:24px;height:24px;border:3px solid #d8d3ca;border-top-color:var(--brand);border-radius:50%;animation:prspin .8s linear infinite}@keyframes prspin{to{transform:rotate(360deg)}}
.source-modal{position:fixed;inset:0;background:rgba(15,20,18,.55);display:grid;place-items:center;z-index:80;padding:20px}.source-modal.hidden{display:none}.source-dialog{background:#fff;border-radius:20px;padding:26px;width:min(620px,100%);position:relative}.source-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.source-choice-grid button{border:1px solid #ddd7cf;border-radius:16px;background:#faf9f7;padding:22px;text-align:left;display:grid;gap:7px;cursor:pointer}.source-choice-grid button:hover{border-color:var(--brand)}.source-choice-grid strong{font-size:1.05rem}.source-choice-grid span{color:#68736f}
.creative-crop-stage{width:min(70vw,850px);height:min(70vh,700px);overflow:hidden;background:#111;position:relative;touch-action:none;cursor:grab}.creative-crop-stage img{width:100%;height:100%;object-fit:cover;max-width:none;max-height:none;transform-origin:center}
.frame-margin-warning{background:#fff5d9;border:1px solid #e6c76f;border-radius:12px;padding:10px 14px;margin:-8px 0 16px;color:#66521d}
.fixed-layout-preview{display:flex!important;flex-direction:column!important;gap:4px}.fixed-preview-row{display:flex;flex:1;gap:4px;min-height:0}.fixed-preview-row span{display:grid;place-items:center;background:#d8ddd9;border-radius:4px;color:#4d5b56;font-size:.7rem;min-width:0}
.builder-slot-count{margin:.6rem 0 1.3rem;padding:.7rem 1rem;background:#f1eee8;border-radius:10px}
@media(min-width:1600px){.creative-assets{padding:20px}.creative-asset-grid{grid-template-columns:repeat(3,1fr);max-height:66vh}.creative-stage-panel{padding:20px}.creative-canvas-wrap{position:relative;min-height:78vh}.creative-summary{padding:20px}}
@media(max-width:1100px){.creative-workspace{grid-template-columns:230px minmax(0,1fr)}.creative-summary{grid-column:1/-1}.creative-canvas-wrap{position:relative;min-height:500px}}
@media(max-width:760px){.creative-gallery-head{grid-template-columns:1fr}.creative-template-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.source-choice-grid{grid-template-columns:1fr}.creative-workspace{grid-template-columns:1fr}.creative-canvas-wrap{position:relative;min-height:390px;padding:10px}}


/* Creative Engine 0.3.8 - wide editor, orientation and crop dialog */
.creative-page{padding:18px 0 54px}
.creative-shell{width:min(calc(100% - 36px),2300px)!important;max-width:2300px!important}
.creative-top{grid-template-columns:105px 1fr;gap:18px;margin-bottom:14px}
.creative-top h1{font-size:clamp(2rem,3vw,3.4rem);margin:.05rem 0 .25rem}
.creative-top p{margin:.2rem 0}
.creative-toolbar{padding:12px 16px;margin-bottom:14px}
.creative-workspace{grid-template-columns:minmax(245px,300px) minmax(720px,1fr) minmax(220px,260px);gap:14px}
.creative-stage-panel{padding:12px}
.creative-canvas-wrap{position:relative;min-height:min(78vh,980px);padding:18px}
.creative-canvas{width:min(100%,1450px);max-height:none}
.creative-summary{padding:14px}
.creative-assets{padding:14px}
.creative-asset-grid{max-height:68vh}
.creative-orientation-control{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#51605c}
.orientation-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:42px}
.orientation-buttons button{min-height:42px;border:1px solid #d9d4ca;border-radius:10px;background:#fff;padding:0 12px;cursor:pointer;font-weight:750;color:#59645f}
.orientation-buttons button+button{border-left:1px solid #d9d4ca}
.orientation-buttons button.active{background:var(--brand);border-color:var(--brand);color:#fff}

#creativeCropModal{padding:18px}
#creativeCropModal .crop-dialog{
    width:min(1460px,calc(100vw - 36px));
    max-height:calc(100vh - 36px);
    grid-template-columns:minmax(0,1fr) 360px;
    overflow:auto;
}
#creativeCropModal .crop-preview-wrap{
    min-width:0;
    min-height:min(78vh,820px);
    padding:28px;
}
#creativeCropModal .creative-crop-stage{
    width:100%;
    height:min(72vh,760px);
    max-width:1040px;
}
#creativeCropModal .crop-controls{
    min-width:0;
    padding:48px 28px 28px;
    overflow:auto;
}
#creativeCropModal .crop-controls h2{font-size:29px}
#creativeCropModal .crop-actions{display:flex;gap:8px;flex-wrap:wrap}
#creativeCropModal .crop-controls input[type=range]{width:100%}

@media(min-width:1900px){
    .creative-workspace{grid-template-columns:300px minmax(900px,1fr) 270px}
    .creative-asset-grid{grid-template-columns:repeat(3,1fr)}
    .creative-canvas-wrap{position:relative;min-height:82vh}
}
@media(max-width:1200px){
    .creative-workspace{grid-template-columns:230px minmax(0,1fr)}
    .creative-summary{grid-column:1/-1}
}
@media(max-width:900px){
    #creativeCropModal .crop-dialog{grid-template-columns:1fr}
    #creativeCropModal .crop-preview-wrap{min-height:430px}
    #creativeCropModal .creative-crop-stage{height:52vh}
    #creativeCropModal .crop-controls{padding:24px}
}
@media(max-width:760px){
    .creative-shell{width:min(calc(100% - 20px),2300px)!important}
    .creative-workspace{grid-template-columns:1fr}
    .creative-canvas-wrap{position:relative;min-height:420px}
}


/* Creative Engine 0.3.9 - viewport fitting and compact right rail */
.creative-page{
    height:calc(100vh - 88px);
    min-height:720px;
    overflow:hidden;
    padding:10px 0 14px;
}
.creative-shell{height:100%;display:flex;flex-direction:column}
#creativeEditorView{min-height:0;display:flex;flex-direction:column;flex:1}
#creativeEditorView.hidden{display:none}
.creative-top{flex:0 0 auto;margin-bottom:8px}
.creative-toolbar{flex:0 0 auto;margin-bottom:8px;padding:9px 14px}
.creative-workspace{
    min-height:0;
    flex:1;
    grid-template-columns:minmax(240px,290px) minmax(0,1fr) minmax(220px,260px);
    align-items:stretch;
}
.creative-assets,.creative-summary,.creative-stage-panel{min-height:0;height:100%}
.creative-assets{overflow:hidden;display:flex;flex-direction:column}
.creative-asset-grid{max-height:none;min-height:0;flex:1;overflow:auto}
.creative-stage-panel{overflow:hidden;display:flex}
.creative-canvas-wrap{position:relative;
    min-height:0!important;
    height:100%;
    width:100%;
    padding:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.creative-canvas{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:100%!important;
    box-sizing:border-box;
}
/* Landscape preview fills by width, portrait fills by height. */
.creative-canvas[data-orientation="landscape"]{
    width:min(100%,1450px)!important;
    height:auto!important;
}
.creative-canvas[data-orientation="portrait"]{
    height:100%!important;
    width:auto!important;
}
.creative-summary{
    overflow:auto;
    padding:12px;
    display:flex;
    flex-direction:column;
    gap:10px;
}
.creative-summary .eyebrow{margin-bottom:-4px}
.creative-summary-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.creative-summary-top h3{margin:0;font-size:1.45rem}
.creative-summary-top>strong{font-size:1rem;white-space:nowrap}
.creative-missing{
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-radius:10px;
    padding:9px 11px;
    background:#fff2dc;
    color:#6a4b13;
}
.creative-missing.complete{background:#e9f6ee;color:#265d3c}
.creative-text-controls{
    border-top:1px solid #e8e3da;
    border-bottom:1px solid #e8e3da;
    padding:10px 0;
    margin:0;
}
.creative-text-controls h4{margin:0 0 8px;font-size:.95rem}
.creative-text-controls label{display:grid;gap:4px;margin-bottom:8px}
.creative-hint{font-size:.78rem;line-height:1.45;margin:0}
.creative-save-state{margin-top:auto}
#creativeSave{flex:0 0 auto}

/* Crop editor: keep both image and controls visible without page scrolling */
#creativeCropModal .crop-dialog{
    height:min(900px,calc(100vh - 28px));
    max-height:calc(100vh - 28px);
    overflow:hidden;
}
#creativeCropModal .crop-preview-wrap{
    min-height:0!important;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    padding:18px;
}
#creativeCropModal .creative-crop-stage{
    width:100%;
    height:100%;
    max-height:none;
    max-width:none;
}
#creativeCropModal .crop-controls{
    height:100%;
    overflow:auto;
    padding:34px 24px 24px;
}
.crop-position-info{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#f3f0ea;
    border-radius:9px;
    padding:8px 10px;
    font-size:.78rem;
}
.creative-crop-stage{cursor:grab}
.creative-crop-stage:active{cursor:grabbing}

@media(max-height:850px){
    .creative-page{height:calc(100vh - 76px);min-height:620px}
    .creative-top h1{font-size:2rem}
    .creative-top p{font-size:.88rem}
    .creative-toolbar{padding:7px 12px}
    .creative-workspace{gap:10px}
}
@media(max-width:1200px){
    .creative-page{height:auto;min-height:0;overflow:visible}
    .creative-workspace{grid-template-columns:230px minmax(0,1fr)}
    .creative-summary{grid-column:1/-1;height:auto}
    .creative-stage-panel{min-height:560px}
}


/* Demo checkout completion 0.3.48 */
.checkout-minimum{
  display:grid;
  grid-template-columns:1fr auto;
  gap:3px 12px;
  padding:12px 14px;
  margin-bottom:18px;
  border:1px solid #dfe5e1;
  border-radius:12px;
  background:#f5f8f6;
}
.checkout-minimum small{grid-column:1/-1;color:#66736d}
.checkout-minimum.warning{background:#fff6ec;border-color:#efd2aa}
.checkout-minimum.warning strong{color:#9a5a13}
.checkout-minimum.ok strong{color:#2d6a4f}
.checkout-terms{
  margin-top:18px;
  padding:14px;
  border:1px solid #e4ddd3;
  border-radius:12px;
  background:#faf8f5;
}
.checkout-terms>label{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  align-items:start;
  cursor:pointer
}
.checkout-terms>label>input{margin-top:4px}
.checkout-terms span{display:grid;gap:4px}
.checkout-terms small{color:#68736e}
.checkout-terms a{font-size:.82rem;font-weight:700}
.confirmation-facts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:8px;
  margin:18px 0;
}
.confirmation-facts>div{
  display:grid;
  gap:3px;
  padding:11px;
  border:1px solid #e7e1da;
  border-radius:11px;
  background:#faf9f7;
}
.confirmation-facts span{font-size:.72rem;color:#7b8580}


/* Payment selection 0.3.55 */
.checkout-payment-list{
  display:grid;
  gap:8px;
  margin-bottom:16px
}
.checkout-payment-option{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  align-items:start;
  padding:12px;
  border:1px solid #e3ddd5;
  border-radius:11px;
  background:#fff;
  cursor:pointer
}
.checkout-payment-option:has(input:checked){
  border-color:#71917f;
  background:#f1f7f3;
  box-shadow:0 0 0 1px rgba(78,119,96,.08)
}
.checkout-payment-option span{display:grid;gap:2px}
.checkout-payment-option small{color:#74807a}


/* Creative Engine 0.3.10 - right accordion and crop-frame editor */
.creative-page{height:calc(100vh - 76px);min-height:640px;padding:8px 0 10px}
.creative-top{margin-bottom:6px}
.creative-top h1{font-size:clamp(1.75rem,2.25vw,2.8rem)}
.creative-workspace{grid-template-columns:minmax(230px,280px) minmax(0,1fr) minmax(260px,310px);gap:10px}
.creative-stage-panel{border-radius:16px}
.creative-canvas-wrap{position:relative;padding:8px}
.creative-summary{padding:10px;gap:8px;overflow:hidden}
.creative-order-head{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.creative-order-head h3{margin:2px 0 0;font-size:1.2rem}
.creative-order-head>strong{font-size:1rem;white-space:nowrap}
.creative-missing{padding:7px 9px;font-size:.8rem}
.creative-accordion{border:1px solid #e5e0d7;border-radius:12px;overflow:hidden;background:#fff}
.creative-accordion-item+.creative-accordion-item{border-top:1px solid #e5e0d7}
.creative-accordion-head{
    width:100%;border:0;background:#fff;display:flex;justify-content:space-between;align-items:center;
    padding:11px 12px;font-weight:850;cursor:pointer;text-align:left;color:#24312d
}
.creative-accordion-head:hover{background:#f8f6f2}
.creative-accordion-head b{font-size:1.1rem;font-weight:500}
.creative-accordion-body{display:none;padding:0 12px 12px;gap:10px}
.creative-accordion-item.open>.creative-accordion-body{display:grid}
.creative-accordion-body label{display:grid;gap:5px;font-size:.78rem;font-weight:750;color:#53605c}
.creative-accordion-body select,.creative-accordion-body input[type=text]{min-height:38px}
.creative-accordion-body .range-with-value{min-width:0}
.creative-text-controls{border:0!important;padding:0!important;margin:0!important}
.creative-hint{font-size:.72rem;line-height:1.35}
.creative-save-state{font-size:.72rem}
#creativeSave{min-height:44px}

/* Frame based crop dialog */
.creative-frame-crop-dialog{grid-template-columns:minmax(0,1fr) 300px!important}
#creativeCropModal .crop-preview-wrap{
    display:grid!important;
    grid-template-rows:minmax(0,1fr) auto;
    gap:8px;
    background:#181818;
}
.creative-crop-stage{
    position:relative;
    width:100%!important;
    height:100%!important;
    min-height:0;
    overflow:hidden;
    background:#111;
    touch-action:none;
}
#creativeCropCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.creative-crop-shade{position:absolute;background:rgba(0,0,0,.58);pointer-events:none}
.creative-crop-frame{
    position:absolute;
    border:3px solid #fff;
    box-shadow:0 0 0 1px rgba(0,0,0,.45),0 0 20px rgba(0,0,0,.3);
    cursor:move;
    touch-action:none;
    box-sizing:border-box;
}
.crop-handle{
    position:absolute;width:16px;height:16px;border-radius:50%;background:#0aa05a;border:2px solid #fff;
    box-shadow:0 1px 4px rgba(0,0,0,.35)
}
.crop-handle.nw{left:-9px;top:-9px;cursor:nwse-resize}
.crop-handle.ne{right:-9px;top:-9px;cursor:nesw-resize}
.crop-handle.sw{left:-9px;bottom:-9px;cursor:nesw-resize}
.crop-handle.se{right:-9px;bottom:-9px;cursor:nwse-resize}
.crop-stage-help{color:#d7d7d7;text-align:center;font-size:.76rem}
#creativeCropModal .crop-controls{padding:26px 20px 20px}
#creativeCropModal .crop-controls h2{margin:.15rem 0 .35rem}
#creativeCropModal .crop-controls p{font-size:.82rem;line-height:1.4}
#creativeCropModal .crop-actions{display:grid;grid-template-columns:1fr 1fr}
#creativeCropModal .crop-actions button{width:100%}

@media(min-width:1800px){
    .creative-workspace{grid-template-columns:280px minmax(0,1fr) 310px}
    .creative-canvas{max-width:1550px!important}
}
@media(max-height:760px){
    .creative-page{height:calc(100vh - 66px);min-height:560px}
    .creative-top p{display:none}
    .creative-top h1{font-size:1.65rem}
    .creative-assets{padding:10px}
    .creative-summary{padding:8px}
    .creative-accordion-head{padding:9px 10px}
}
@media(max-width:1200px){
    .creative-page{height:auto;overflow:visible}
    .creative-workspace{grid-template-columns:220px minmax(0,1fr)}
    .creative-summary{grid-column:1/-1;overflow:visible}
}
@media(max-width:900px){
    .creative-frame-crop-dialog{grid-template-columns:1fr!important;height:auto!important;max-height:calc(100vh - 16px)!important;overflow:auto!important}
    #creativeCropModal .crop-preview-wrap{min-height:55vh!important}
}


/* Creative frame option preview / Frame Preview V2 */
.creative-canvas-wrap{position:relative;
    transition:padding .18s ease, background .18s ease, box-shadow .18s ease;
    position:relative;
}
.creative-canvas-wrap.has-creative-frame{padding:10px}
.creative-canvas-wrap.has-creative-frame .creative-canvas{
    box-sizing:border-box!important;
    position:relative;
    z-index:1;
    border-radius:1px;
    box-shadow:0 12px 30px rgba(0,0,0,.24),0 0 0 1px rgba(0,0,0,.10);
}
.creative-canvas.creative-frame-color-fallback{
    box-sizing:content-box!important;
    border:var(--creative-frame-px,16px) solid var(--creative-frame-color,#242424);
}
.creative-frame-render-canvas{
    position:absolute;
    z-index:3;
    display:block;
    pointer-events:none;
    max-width:none!important;
    max-height:none!important;
}
/* 0.3.327 – background bleed sits behind the collage and frame, never above content. */
.creative-frame-bleed{
    position:absolute;
    z-index:0;
    pointer-events:none;
    border-radius:2px;
}
.creative-frame-preview-note{
    margin:0;
    padding:8px 9px;
    border-radius:9px;
    background:#f5f3ee;
    color:#68736f;
    font-size:.68rem;
    line-height:1.4;
}
.creative-frame-preview-note span{font-weight:900;color:#53635d;margin-right:3px}

.creative-stage-popover{
    position:absolute;
    inset:0;
    z-index:8;
    display:grid;
    place-items:center;
    padding:18px;
}
.creative-stage-popover.hidden{display:none}
.creative-stage-popover-backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:rgba(244,241,234,.34);
    backdrop-filter:blur(1px);
    cursor:pointer;
}
.creative-stage-popover-card{
    position:relative;
    z-index:1;
    width:min(420px,100%);
    padding:16px 42px 16px 16px;
    border:1px solid #d9d4cc;
    border-radius:14px;
    background:rgba(255,255,255,.96);
    box-shadow:0 20px 48px rgba(22,37,31,.16);
    color:#34423d;
    display:grid;
    gap:8px;
}
.creative-stage-popover-card strong{font-size:.98rem;color:#21302b}
.creative-stage-popover-card p{margin:0;font-size:.83rem;line-height:1.5}
.creative-stage-popover-close{
    position:absolute;
    right:10px;
    top:10px;
    width:26px;
    height:26px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#66726d;
    font-size:1.1rem;
    line-height:1;
    cursor:pointer;
}
.creative-stage-popover-close:hover{background:#f1efea;color:#25332e}
.creative-frame-swatch{
    display:inline-block;
    width:13px;
    height:13px;
    margin-right:7px;
    vertical-align:-2px;
    border-radius:2px;
    background:var(--swatch,#242424);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.22);
}


/* Creative option information 0.3.23 */
.creative-option-group-head>div{display:flex;align-items:center;gap:7px}
.creative-option-info{
    width:19px;height:19px;border-radius:50%;border:1px solid #aab4af;
    background:#fff;color:#55615c;font-size:.7rem;font-weight:900;line-height:1;
    cursor:pointer;padding:0
}
.creative-option-info-text{
    margin:-2px 0 8px;padding:8px 9px;border-radius:8px;
    background:#f4f2ed;color:#55615c;font-size:.75rem;line-height:1.4
}


/* Creative option detail + frame texture 0.3.24 */
.creative-option-choice-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 28px;
    gap:6px;
    align-items:stretch;
    position:relative;
}
.creative-option-choice-row>.creative-option-choice{
    width:100%;
}
.creative-option-choice-info{
    width:28px;
    min-height:36px;
    border:1px solid #d9d4cc;
    border-radius:8px;
    background:#fff;
    color:#59645f;
    font-size:.72rem;
    font-weight:900;
    cursor:pointer;
}
.creative-option-choice-info-panel{
    grid-column:1/-1;
    padding:8px;
    border-radius:8px;
    background:#f5f2ed;
    font-size:.74rem;
    line-height:1.4;
}
.creative-option-choice-info-panel img{
    width:100%;
    max-height:120px;
    object-fit:cover;
    border-radius:7px;
    margin-bottom:6px;
}
.creative-option-choice-info-panel p{margin:0}

/* Creative production rules 0.3.25 */
#frameMarginWarning{margin:6px 0 0;padding:8px 10px;border-radius:9px;background:#fff6df;color:#7a5815;font-size:.76rem;line-height:1.35}
.creative-slot{overflow:hidden;transition:border-radius .12s ease}

.creative-canvas{flex:none!important;max-width:100%!important;max-height:100%!important}.creative-canvas[data-orientation="landscape"],.creative-canvas[data-orientation="portrait"]{width:auto!important;height:auto!important}.creative-rect-layout{min-width:0;min-height:0;box-sizing:border-box}.creative-canvas-text-zone{box-sizing:border-box;min-height:0;padding:.35rem .8rem;display:grid;place-content:center}.creative-canvas-text-zone .text-placeholder{opacity:.55;font-style:italic;font-weight:500}.creative-text-position{display:grid;gap:6px;font-size:.78rem;font-weight:750;color:#53605c}


/* Canvas fitting + rect layout 0.3.28 */
.creative-canvas[data-orientation="landscape"],
.creative-canvas[data-orientation="portrait"]{
    width:initial!important;
    height:initial!important;
}
.creative-canvas-wrap{position:relative;
    min-width:0;
    min-height:0;
}
.creative-stage-panel{
    min-width:0;
}

/* Template shape + orientation previews 0.3.29 */
.creative-template-mini.square,.creative-template-preview.square{aspect-ratio:1/1!important}
.creative-template-mini .mini-rect-layout{position:relative;flex:1;min-height:0;width:100%}
.creative-template-mini .mini-rect-layout>i{position:absolute;box-sizing:border-box;border:1px solid rgba(70,85,78,.26);background:rgba(255,255,255,.72)}


/* Creative style + synchronized gallery previews 0.3.30 */
.creative-text-color-control{display:grid;gap:6px;font-size:.78rem;font-weight:750;color:#53605c}
.creative-template-mini.portrait{aspect-ratio:2/3!important}
.creative-template-mini.landscape{aspect-ratio:3/2!important}
.creative-template-mini.square{aspect-ratio:1!important}
.creative-template-mini em.top{top:3px;bottom:auto}


/* Calendar storefront foundation 0.3.87 */
.calendar-storefront-page{padding:34px 0 70px}
.calendar-storefront-head{
    display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:28px
}
.calendar-storefront-head h1{margin:.2rem 0 .35rem;font-size:clamp(2.1rem,4vw,4.4rem)}
.calendar-storefront-head p{margin:0;max-width:760px;color:#66736d}
.calendar-flow-strip{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    margin:0 0 28px;border:1px solid #e5e0d7;border-radius:16px;overflow:hidden;background:#e5e0d7
}
.calendar-flow-strip>div{padding:14px 16px;background:#fff}
.calendar-flow-strip strong{display:block;margin-bottom:3px;color:#24312d}
.calendar-flow-strip span{font-size:.78rem;color:#6b756f;line-height:1.4}
.calendar-design-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px
}
.calendar-design-card{
    display:grid;gap:0;border:1px solid #e4dfd7;border-radius:16px;overflow:hidden;
    background:#fff;color:inherit;text-decoration:none;box-shadow:0 5px 18px rgba(34,45,40,.04)
}
.calendar-design-card:hover{border-color:#8aa295;box-shadow:0 10px 24px rgba(34,45,40,.08)}
.calendar-design-preview{
    aspect-ratio:3/4;padding:14px;background:#f2f1ed;display:flex;align-items:center;justify-content:center
}
.calendar-design-sheet{
    width:78%;height:92%;display:flex;flex-direction:column;background:var(--cal-bg,#fff);
    color:var(--cal-text,#344054);font-family:var(--cal-font,"Segoe UI");
    box-shadow:0 3px 10px rgba(0,0,0,.12);overflow:hidden
}
.calendar-design-image{
    flex:1;min-height:0;background:
        linear-gradient(145deg,#dfe7ea,#b9c7ce 58%,#9baeb7);
}
.calendar-design-grid-preview{
    flex:0 0 var(--cal-grid-height,38%);
    padding:7px 8px 8px;background:var(--cal-bg,#fff);box-sizing:border-box
}
.calendar-design-grid-preview strong{
    display:block;margin-bottom:5px;text-align:center;font-size:.72rem;color:var(--cal-title,#101828)
}
.calendar-design-week,.calendar-design-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.calendar-design-week{font-size:.34rem;margin-bottom:3px}
.calendar-design-days{font-size:.38rem;line-height:1.8}
.calendar-design-week span:nth-child(6),.calendar-design-week span:nth-child(7),
.calendar-design-days span:nth-child(7n+6),.calendar-design-days span:nth-child(7n){
    color:var(--cal-weekend,#d92d20)
}
.calendar-design-days span:first-child{color:var(--cal-holiday,#d92d20);font-weight:800}
.calendar-preview-lines .calendar-design-days span{border-bottom:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}
.calendar-preview-cells .calendar-design-days{gap:0}
.calendar-preview-cells .calendar-design-days span{border-right:1px solid var(--cal-line,#d0d5dd);border-bottom:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}
.calendar-preview-circles .calendar-design-days span{
    width:13px;height:13px;display:grid;place-items:center;justify-self:center;border:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd);border-radius:50%;line-height:1
}
.calendar-design-content{padding:14px}
.calendar-design-content h3{margin:0 0 3px;font-size:1.05rem}
.calendar-design-content p{margin:0;color:#69756f;font-size:.78rem;line-height:1.4}
.calendar-empty{
    padding:30px;border:1px dashed #d5d0c8;border-radius:16px;background:#faf9f6;text-align:center;color:#69756f
}
.calendar-product-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.calendar-product-facts span{
    padding:5px 8px;border-radius:999px;background:#f0eee8;font-size:.72rem;color:#55615b
}
@media(max-width:760px){
    .calendar-storefront-head{align-items:flex-start;flex-direction:column}
    .calendar-flow-strip{grid-template-columns:1fr}
}


/* Creative asset compact grid + calendar flow 0.3.88 */
.creative-assets .creative-asset-grid{
    align-content:start;
    grid-auto-rows:max-content;
}
.calendar-step-two{
    display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:24px;align-items:start
}
.calendar-selected-design{
    padding:16px;border:1px solid #e4dfd7;border-radius:16px;background:#fff
}
.calendar-selected-design h2{margin:.8rem 0 .25rem}
.calendar-selected-design p{margin:0;color:#69756f}
.calendar-product-options{
    padding:20px;border:1px solid #e4dfd7;border-radius:16px;background:#fff
}
.calendar-product-options h2{margin:0 0 4px}.calendar-product-options>p{margin:0 0 18px;color:#69756f}
.calendar-variant-choice-grid{display:grid;gap:9px;margin-bottom:20px}
.calendar-variant-choice{
    display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:12px 13px;
    border:1px solid #ded9d0;border-radius:11px;background:#fbfaf7;cursor:pointer
}
.calendar-variant-choice:has(input:checked){border-color:#385b4f;background:#f0f6f3;box-shadow:0 0 0 1px #385b4f}
.calendar-variant-choice input{width:18px;height:18px}.calendar-variant-choice strong{display:block}
.calendar-variant-choice span span{display:block;margin-top:2px;font-size:.76rem;color:#69756f}
.calendar-variant-choice b{white-space:nowrap}
.calendar-date-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.calendar-date-options label{display:grid;gap:5px;font-size:.78rem;font-weight:800;color:#344054}
.calendar-date-options select{min-height:42px;border:1px solid #d9d4ca;border-radius:10px;background:#fff;padding:0 10px}
.calendar-continue-row{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:18px}
.calendar-continue-row .button{min-width:190px;text-align:center}
.calendar-editor-page{padding:28px 0 70px}
.calendar-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
.calendar-editor-stage{padding:20px;border-radius:18px;background:#e7e4df;min-height:680px;display:grid;place-items:center}
.calendar-editor-sheet{width:min(520px,92%);aspect-ratio:210/297;background:#fff;box-shadow:0 16px 44px rgba(0,0,0,.16);display:flex;flex-direction:column}
.calendar-editor-image-placeholder{flex:1;margin:28px;background:linear-gradient(145deg,#dfe7ea,#b9c7ce 58%,#9baeb7);border-radius:4px;display:grid;place-items:center;color:#667085;font-weight:700}
.calendar-editor-calendar-placeholder{flex:0 0 36%;padding:18px 24px;border-top:1px solid #e4e7ec;text-align:center}
.calendar-editor-calendar-placeholder h3{margin:0 0 14px;font-size:1.35rem}.calendar-editor-calendar-placeholder p{font-size:.8rem;color:#667085;line-height:1.7}
.calendar-editor-sidebar{padding:18px;border:1px solid #e4dfd7;border-radius:16px;background:#fff;display:grid;gap:14px}
.calendar-editor-sidebar h2{margin:0}.calendar-editor-fact{padding:10px 0;border-bottom:1px solid #eeeae3}.calendar-editor-fact span{display:block;font-size:.7rem;color:#69756f;text-transform:uppercase;letter-spacing:.08em}.calendar-editor-fact strong{display:block;margin-top:2px}
@media(max-width:860px){.calendar-step-two,.calendar-editor-layout{grid-template-columns:1fr}.calendar-date-options{grid-template-columns:1fr}}


/* Calendar preview/date controls 0.3.89 */
.calendar-past-warning{
    margin:12px 0;
    padding:10px 12px;
    border:1px solid #f5c26b;
    border-radius:10px;
    background:#fff8e8;
    color:#7a4b00;
    font-size:.78rem;
    line-height:1.45
}
.calendar-editor-settings-form{
    display:grid;
    gap:11px;
    padding:12px;
    border:1px solid #ebe7df;
    border-radius:11px;
    background:#faf9f6
}
.calendar-editor-settings-form>label{
    display:grid;
    gap:5px;
    font-size:.75rem;
    font-weight:800;
    color:#344054
}
.calendar-editor-settings-form select{
    min-height:40px;
    padding:0 9px;
    border:1px solid #d9d4ca;
    border-radius:9px;
    background:#fff
}
.calendar-date-options.compact{
    grid-template-columns:minmax(0,1fr) minmax(86px,.42fr);
    margin:0
}
.calendar-date-options.compact label{min-width:0}
.calendar-date-options.compact select{width:100%;min-width:0;max-width:100%}
.calendar-editor-calendar-placeholder{
    box-sizing:border-box;
    padding:16px 22px;
    border-top:1px solid var(--cal-line,#e4e7ec);
    text-align:center;
    overflow:hidden
}
.calendar-editor-calendar-placeholder h3{
    margin:0 0 11px;
    font-size:1.2rem
}
.calendar-editor-calendar-placeholder .calendar-design-week{
    margin-bottom:5px;
    font-size:.63rem
}
.calendar-editor-calendar-placeholder .calendar-design-days{
    font-size:.72rem;
    line-height:1.4
}
.calendar-editor-calendar-placeholder .calendar-design-days span{
    min-height:26px
}
.calendar-editor-calendar-placeholder .calendar-empty-day{
    border-color:transparent!important;
    background:transparent!important
}
.calendar-editor-sidebar .text-link.small{
    display:inline-block;
    margin-top:4px;
    font-size:.73rem
}

/* Photo book editor prototype 0.3.90 */
.editor-body{overflow:hidden;background:#f0f2f1}.editor-body .site-footer{display:none}.editor-body>main{min-height:0}.editor-body .site-header{display:none}
.book-editor{height:100vh;min-height:680px;display:grid;grid-template-rows:64px minmax(0,1fr) 126px;background:#edf0ef;color:#21312d;overflow:hidden}
.book-editor button,.book-editor select,.book-editor input{font:inherit}.book-editor-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(300px,1fr);align-items:center;gap:18px;background:#fff;border-bottom:1px solid #dfe4e2;padding:0 18px;z-index:20;box-shadow:0 1px 8px rgba(31,48,43,.06)}
.book-editor-toolbar-left,.book-editor-toolbar-center,.book-editor-toolbar-right{display:flex;align-items:center}.book-editor-toolbar-left{gap:12px}.book-editor-toolbar-center{justify-content:center;gap:4px}.book-editor-toolbar-right{justify-content:flex-end;gap:12px}.book-back-link{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;color:var(--brand);text-decoration:none;font-size:1.3rem}.book-back-link:hover{background:#f0f3f2}.book-editor-title{display:grid;line-height:1.1}.book-editor-title strong{font-size:.92rem}.book-editor-title span{font-size:.7rem;color:#76827f;margin-top:4px}.book-tool-button{border:0;background:transparent;border-radius:9px;min-width:58px;height:48px;color:#52605c;display:grid;place-items:center;align-content:center;gap:1px;cursor:pointer;font-size:1.1rem}.book-tool-button span{font-size:.62rem;font-weight:750}.book-tool-button:hover:not(:disabled){background:#f0f3f2;color:var(--brand)}.book-tool-button:disabled{opacity:.35;cursor:default}.book-primary-action{border:0;border-radius:9px;background:var(--brand);color:#fff;padding:11px 17px;font-weight:800;cursor:pointer}.book-primary-action:hover{filter:brightness(1.06)}
.book-zoom-control{display:flex;align-items:center;border:1px solid #d8dedb;border-radius:9px;overflow:hidden;background:#fff}.book-zoom-control button{border:0;background:transparent;width:32px;height:34px;cursor:pointer;font-size:1.15rem}.book-zoom-control span{width:52px;text-align:center;font-size:.72rem;font-weight:800;color:#64716d}
.book-editor-main{display:grid;grid-template-columns:76px 284px minmax(0,1fr);min-height:0;overflow:hidden}.book-editor-tools{background:#fff;border-right:1px solid #dde3e0;display:flex;flex-direction:column;padding:10px 6px;gap:5px}.book-tool-tab{border:0;background:transparent;border-radius:10px;padding:9px 3px;display:grid;place-items:center;gap:4px;color:#53615d;font-size:.66rem;font-weight:750;cursor:pointer}.book-tool-tab:hover{background:#f3f5f4}.book-tool-tab.active{background:var(--brand);color:#fff}.book-tool-icon{font-size:1.3rem;line-height:1}.book-editor-panel{background:#fff;border-right:1px solid #dde3e0;min-height:0;overflow:hidden}.book-panel{height:100%;display:none;flex-direction:column;padding:18px;overflow:auto}.book-panel.active{display:flex}.book-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}.book-panel-heading h2{margin:.1rem 0 0;font-size:1.3rem}.book-panel-heading .eyebrow{font-size:.62rem}.book-icon-button{border:1px solid #d7dedb;background:#fff;width:34px;height:34px;border-radius:9px;font-size:1.25rem;cursor:pointer;color:var(--brand)}.book-upload-zone{border:1px dashed #aab5b1;border-radius:12px;background:#f7f8f7;padding:18px 12px;display:grid;gap:4px;text-align:center;color:#4f5d59;cursor:pointer}.book-upload-zone strong{font-size:.88rem}.book-upload-zone span{font-size:.68rem;color:#77817e}.book-upload-zone:hover,.book-upload-zone.dragging{border-color:var(--brand);background:#eff5f2}.book-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;align-content:start;min-height:120px}.book-empty-photos{grid-column:1/-1;border-radius:10px;background:#f7f8f7;color:#87918e;padding:24px 8px;text-align:center;font-size:.72rem}.book-empty-photos.hidden{display:none}.book-photo-item{border:1px solid #e0e5e3;border-radius:9px;padding:4px;background:#fff;cursor:grab;overflow:hidden;text-align:left}.book-photo-item img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;display:block}.book-photo-item span{font-size:.58rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 2px 1px;color:#65716e}.book-panel-hint{font-size:.68rem;color:#7d8884;line-height:1.45;margin-top:auto;padding-top:12px}.book-panel-hint.top{margin:0 0 14px;padding:0}.book-panel-action{border:0;background:var(--brand);color:#fff;border-radius:9px;padding:10px 12px;font-weight:800;cursor:pointer;margin-bottom:16px}.book-field-group{display:grid;gap:6px;margin:10px 0}.book-field-group label{font-size:.7rem;font-weight:800;color:#5e6c68}.book-field-group select{border:1px solid #d4dcda;border-radius:8px;padding:9px;background:#fff}.book-field-group input[type=range]{width:100%}.book-text-align-row{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.book-text-align-row button{border:1px solid #d9dfdd;background:#fff;border-radius:8px;padding:7px;cursor:pointer}.book-text-align-row button.active{border-color:var(--brand);background:#eff5f2;color:var(--brand)}
.book-layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.book-layout-card{border:1px solid #dde2e0;background:#fff;border-radius:10px;padding:8px;display:grid;gap:6px;cursor:pointer;color:#52605c}.book-layout-card:hover{border-color:var(--brand);box-shadow:0 6px 18px rgba(23,52,47,.09)}.book-layout-card>span{font-size:.65rem;font-weight:750}.book-layout-mini{aspect-ratio:1/1;background:#f8f8f6;border:1px solid #e4e6e3;position:relative;overflow:hidden}.book-layout-mini i{position:absolute;background:#cad4d1;border:1px solid #aebbb7}.book-layout-mini em{position:absolute;left:20%;right:20%;bottom:6%;font-size:.55rem;font-style:normal;color:#7d8985;text-align:center}.book-background-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.book-background-swatch{aspect-ratio:1/1;border:1px solid #ced5d2;border-radius:50%;cursor:pointer;box-shadow:inset 0 0 0 3px #fff}.book-background-swatch:hover{outline:2px solid var(--brand);outline-offset:2px}
.book-stage-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:46px minmax(0,1fr);position:relative;background:#e8ebea}.book-stage-topline{display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid #d9dfdd;background:#f8f9f8}.book-stage-topline>div:first-child{display:flex;align-items:baseline;gap:10px}.book-stage-topline strong{font-size:.82rem}.book-stage-topline span{font-size:.65rem;color:#798481}.book-stage-status{font-size:.63rem;color:#72807b;display:flex;align-items:center;gap:6px}.status-dot{width:7px;height:7px;border-radius:50%;background:#80a58c}.book-stage-scroll{min-height:0;overflow:auto;display:grid;place-items:center;padding:26px}.book-stage{width:min(1160px,95%);transform:scale(var(--book-editor-zoom,1));transform-origin:center center;transition:transform .15s}.book-spread{aspect-ratio:2/1;display:grid;grid-template-columns:1fr 14px 1fr;filter:drop-shadow(0 18px 28px rgba(32,43,39,.16));position:relative}.book-page{position:relative;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px rgba(30,45,40,.06);user-select:none}.book-page-left{border-radius:3px 0 0 3px}.book-page-right{border-radius:0 3px 3px 0}.book-page.selected:after{content:"";position:absolute;inset:5px;border:2px solid rgba(24,116,93,.44);pointer-events:none;z-index:40}.book-safe-guide{position:absolute;inset:4.2%;border:1px dashed rgba(39,62,55,.22);pointer-events:none;z-index:35}.book-gutter{background:linear-gradient(90deg,rgba(0,0,0,.14),rgba(255,255,255,.72),rgba(0,0,0,.13));position:relative;z-index:45}.book-cover-spread .book-gutter{background:linear-gradient(90deg,rgba(0,0,0,.2),rgba(255,255,255,.65),rgba(0,0,0,.18))}.book-page-label{position:absolute;left:10px;bottom:7px;font-size:.55rem;color:rgba(50,62,58,.55);z-index:50}.book-object{position:absolute;z-index:10;touch-action:none;box-sizing:border-box}.book-object.selected{outline:2px solid #218a70;outline-offset:2px;z-index:30}.book-object-image{overflow:hidden;background:#dbe1df;border:1px solid rgba(60,80,74,.17);cursor:move}.book-object-image.empty{border:1.5px dashed #93a29d;background:rgba(233,237,235,.72);display:grid;place-items:center;color:#76837f}.book-object-image.empty span{display:grid;place-items:center;gap:2px;font-size:.6rem;text-align:center}.book-object-image.empty b{font-size:1.2rem;font-weight:400}.book-object-image.drag-over{outline:3px solid var(--brand);outline-offset:-3px}.book-object-image img{width:100%;height:100%;object-fit:cover;display:block;max-width:none;transform-origin:center}.book-object-text{display:flex;align-items:center;justify-content:stretch;cursor:move;padding:2px 4px;line-height:1.08}.book-text-content{width:100%;min-height:1em;outline:none}.book-object-text.selected .book-text-content{background:rgba(255,255,255,.45)}.book-resize-handle{position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid #218a70;cursor:nwse-resize;z-index:60;display:none}.book-object.selected .book-resize-handle{display:block}.book-clean-preview .book-safe-guide,.book-clean-preview .book-page-label,.book-clean-preview .book-resize-handle{display:none}.book-clean-preview .book-page:after,.book-clean-preview .book-object{outline:none}.book-object-toolbar{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:4px;background:#1f2e2a;color:#fff;padding:5px;border-radius:10px;box-shadow:0 8px 26px rgba(0,0,0,.2);z-index:80}.book-object-toolbar.hidden{display:none}.book-object-toolbar button{border:0;background:transparent;color:#fff;padding:7px 10px;border-radius:7px;font-size:.66rem;font-weight:750;cursor:pointer}.book-object-toolbar button:hover,.book-object-toolbar.crop-active #bookCropObject{background:rgba(255,255,255,.14)}.book-object-toolbar .hidden{display:none}
.book-page-strip-wrap{display:grid;grid-template-columns:100px minmax(0,1fr) 120px;gap:12px;align-items:center;background:#fff;border-top:1px solid #dbe1df;padding:10px 16px;z-index:30}.book-page-strip-actions{display:grid;grid-template-columns:28px 1fr 28px;gap:4px;align-items:center}.book-page-strip-actions span{text-align:center;font-size:.66rem;font-weight:800;color:#66736f}.book-page-strip-actions button{border:1px solid #dce2e0;background:#fff;border-radius:7px;height:30px;cursor:pointer}.book-page-strip{display:flex;gap:10px;overflow-x:auto;padding:2px 4px 5px}.book-strip-item{border:1px solid transparent;background:transparent;border-radius:9px;padding:5px;display:grid;gap:4px;min-width:112px;cursor:pointer}.book-strip-item.active{border-color:var(--brand);background:#f0f5f3}.book-strip-item>span{font-size:.6rem;font-weight:750;color:#66736f}.book-strip-mini{aspect-ratio:2/1;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 2px 8px rgba(20,40,35,.12);background:#ddd;gap:1px}.book-strip-mini>i{position:relative;overflow:hidden}.book-strip-mini b{position:absolute;background:#c7cecc;border:1px solid rgba(0,0,0,.08);background-size:cover;background-position:center}.book-strip-mini b.filled{border:0}.book-add-pages-placeholder{border:1px dashed #c5cdca;background:#f7f8f7;border-radius:8px;color:#a1aaa7;font-size:.66rem;padding:9px;cursor:not-allowed}
.book-preview-modal{position:fixed;inset:0;background:rgba(15,22,20,.82);z-index:1000;display:grid;place-items:center;padding:40px}.book-preview-modal.hidden{display:none}.book-preview-dialog{width:min(1300px,94vw);display:grid;gap:16px;position:relative}.book-preview-spread{aspect-ratio:2/1;display:grid;grid-template-columns:1fr 14px 1fr;filter:drop-shadow(0 25px 40px rgba(0,0,0,.4))}.book-preview-close{position:absolute;right:-14px;top:-50px;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:#273631;font-size:1.5rem;cursor:pointer}.book-preview-caption{color:#fff;display:flex;justify-content:space-between;gap:20px;align-items:center}.book-preview-caption span{font-size:.75rem;opacity:.75}.book-toast{position:fixed;left:50%;bottom:150px;transform:translateX(-50%);background:#21322d;color:#fff;padding:10px 16px;border-radius:9px;z-index:1500;font-size:.75rem;box-shadow:0 10px 30px rgba(0,0,0,.18)}.book-toast.hidden{display:none}
@media(max-width:1050px){.book-editor-main{grid-template-columns:68px 230px minmax(0,1fr)}.book-editor-toolbar{grid-template-columns:1fr auto}.book-editor-toolbar-center{display:none}.book-stage{width:1050px}.book-stage-scroll{place-items:center start}.book-editor-toolbar-right{justify-content:flex-end}.book-editor-title span{display:none}}
@media(max-width:760px){.editor-body{overflow:auto}.book-editor{height:auto;min-height:100vh;grid-template-rows:auto auto auto;overflow:visible}.book-editor-toolbar{grid-template-columns:1fr;min-height:64px;padding:10px}.book-editor-toolbar-right{display:none}.book-editor-main{grid-template-columns:58px 1fr;grid-template-rows:auto minmax(520px,70vh)}.book-editor-panel{min-height:260px}.book-stage-wrap{grid-column:1/-1;grid-row:2}.book-editor-tools{grid-row:1}.book-editor-panel{grid-row:1}.book-stage-scroll{padding:14px;overflow:auto}.book-stage{width:900px}.book-page-strip-wrap{grid-template-columns:1fr;padding:8px}.book-page-strip-actions,.book-add-pages-placeholder{display:none}.book-editor{padding-bottom:0}}

/* Photo book editor refinements 0.3.92 */
.book-tool-button.active{background:#eef5f2;color:var(--brand)}
.book-photo-thumb{position:relative;display:block}.book-photo-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;display:block}.book-photo-used{position:absolute;right:5px;top:5px;min-width:23px;height:23px;padding:0 5px;border-radius:999px;background:rgba(29,54,47,.88);color:#fff;display:grid;place-items:center;font-size:.56rem;line-height:1;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.15)}.book-photo-item.used{border-color:#b8cec5;background:#f7fbf9}
.book-page.guides-hidden .book-safe-guide{display:none}.book-snap-guide{position:absolute;z-index:75;pointer-events:none;background:#e34880;box-shadow:0 0 0 1px rgba(255,255,255,.75)}.book-snap-guide.vertical{top:0;bottom:0;width:1px;transform:translateX(-.5px)}.book-snap-guide.horizontal{left:0;right:0;height:1px;transform:translateY(-.5px)}
.book-object.selected{outline:2px solid #218a70;outline-offset:1px}.book-object.crop-active{outline:2px solid #e34880;outline-offset:2px;cursor:grab}.book-object.crop-active:active{cursor:grabbing}.book-object.crop-active:after{content:"Flyt billede";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(25,39,35,.78);color:#fff;border-radius:999px;padding:6px 10px;font-size:.58rem;font-weight:800;pointer-events:none;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.book-resize-handle{position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #218a70;z-index:60;display:none;box-sizing:border-box}.book-object.selected .book-resize-handle{display:block}.book-object.crop-active .book-resize-handle{display:none}.book-resize-handle.handle-nw{left:-7px;top:-7px;cursor:nwse-resize}.book-resize-handle.handle-n{left:50%;top:-7px;transform:translateX(-50%);cursor:ns-resize}.book-resize-handle.handle-ne{right:-7px;top:-7px;cursor:nesw-resize}.book-resize-handle.handle-e{right:-7px;top:50%;transform:translateY(-50%);cursor:ew-resize}.book-resize-handle.handle-se{right:-7px;bottom:-7px;cursor:nwse-resize}.book-resize-handle.handle-s{left:50%;bottom:-7px;transform:translateX(-50%);cursor:ns-resize}.book-resize-handle.handle-sw{left:-7px;bottom:-7px;cursor:nesw-resize}.book-resize-handle.handle-w{left:-7px;top:50%;transform:translateY(-50%);cursor:ew-resize}
.book-object-toolbar{align-items:center}.book-object-toolbar-divider{width:1px;height:22px;background:rgba(255,255,255,.18);margin:0 2px}.book-crop-toolbar{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;background:#1f2e2a;color:#fff;padding:6px 7px 6px 10px;border-radius:11px;box-shadow:0 8px 26px rgba(0,0,0,.22);z-index:90;white-space:nowrap}.book-crop-toolbar.hidden{display:none}.book-crop-toolbar>span{font-size:.64rem;font-weight:800;margin-right:3px}.book-crop-toolbar button{border:0;background:rgba(255,255,255,.08);color:#fff;border-radius:7px;height:30px;padding:0 9px;cursor:pointer;font-size:.64rem;font-weight:750}.book-crop-toolbar button:hover{background:rgba(255,255,255,.16)}.book-crop-toolbar button:first-of-type,.book-crop-toolbar button:nth-of-type(2){width:30px;padding:0;font-size:1rem}.book-crop-toolbar input[type=range]{width:130px;accent-color:#9ac9bb}.book-crop-toolbar .book-crop-done{background:#fff;color:#20332d}.book-crop-toolbar .book-crop-done:hover{background:#edf4f1}
.book-clean-preview .book-snap-guide,.book-clean-preview .book-object.crop-active:after{display:none}
@media(max-width:1050px){.book-crop-toolbar input[type=range]{width:95px}.book-object-toolbar button,.book-crop-toolbar button{padding-left:7px;padding-right:7px}}
.book-resize-handle{left:auto;right:auto;top:auto;bottom:auto;transform:none}



/* Operational calendar editor foundation 0.3.95 */
.calendar-editor-page.shell.calendar-editor-v3{
    width:min(96vw,1900px);
    max-width:none;
}
.calendar-editor-v3{margin-inline:auto}
.calendar-editor-topbar{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
}
.calendar-editor-topbar h1{margin:.15rem 0 0}
.calendar-save-state{
    min-width:92px;
    padding:8px 12px;
    border-radius:999px;
    background:#f2f4f3;
    color:#68726d;
    text-align:center;
    font-size:.75rem;
    font-weight:800;
}
.calendar-save-state.saving{background:#fff7e5;color:#8a5a00}
.calendar-save-state.saved{background:#edf7f1;color:#32664e}
.calendar-save-state.dirty{background:#fff3d6;color:#8a5a00}
.calendar-save-state.error{background:#fff0ef;color:#a63b32}
.calendar-editor-workspace{
    display:grid;
    grid-template-columns:260px minmax(640px,1fr) 320px;
    gap:16px;
    align-items:start;
}
.calendar-assets-panel,
.calendar-editor-sidebar{
    padding:15px;
    border:1px solid #e5e0d7;
    border-radius:16px;
    background:#fff;
}
.calendar-assets-panel{display:flex;flex-direction:column;min-height:760px}
.calendar-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.calendar-panel-heading>div{display:grid;gap:2px}
.calendar-panel-heading small{color:#707a74}
.calendar-asset-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    align-content:start;
    flex:1;
    overflow:auto;
    padding-right:2px;
    margin-bottom:12px;
}
.calendar-assets-empty{
    grid-column:1/-1;
    padding:26px 10px;
    border:1px dashed #d9d4ca;
    border-radius:10px;
    color:#7b847f;
    text-align:center;
    font-size:.78rem;
}
.calendar-asset-card,
.calendar-picker-card{
    position:relative;
    overflow:hidden;
    padding:0;
    border:2px solid transparent;
    border-radius:10px;
    background:#f3f2ef;
    cursor:pointer;
}
.calendar-asset-card{aspect-ratio:1/1}
.calendar-picker-card{aspect-ratio:1/1}
.calendar-asset-card.used{border-color:#aac2b5}
.calendar-asset-card img,
.calendar-picker-card img{width:100%;height:100%;object-fit:cover;display:block}
.calendar-asset-card span{
    position:absolute;
    right:4px;
    bottom:4px;
    padding:3px 6px;
    border-radius:999px;
    background:rgba(25,37,33,.82);
    color:#fff;
    font-size:.62rem;
}
.calendar-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px;max-height:min(65vh,600px);overflow:auto}
.calendar-picker-card span{display:block;padding:7px 8px;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff}
.calendar-asset-picker-dialog{width:min(960px,100%)}
.calendar-upload-progress{display:flex;gap:8px;align-items:center;margin-bottom:10px;padding:8px;border-radius:9px;background:#f7f6f2;font-size:.72rem}
.calendar-main-editor{min-width:0;display:flex;flex-direction:column;gap:10px}
.calendar-page-toolbar{display:grid;grid-template-columns:42px 1fr 42px;gap:10px;align-items:center}
.calendar-page-toolbar>div{text-align:center;display:grid;gap:1px}
.calendar-page-toolbar small{color:#747e79}
.calendar-page-arrow{width:40px;height:40px;border:1px solid #dcd8d0;border-radius:50%;background:#fff;font-size:1.6rem;cursor:pointer}
.calendar-page-arrow:disabled{opacity:.32;cursor:default}
.calendar-editor-v3 .calendar-editor-stage{
    display:grid;
    place-items:center;
    min-height:640px;
    padding:22px;
    border-radius:16px;
    background:#e6e3dd;
}
.calendar-editor-v3 .calendar-editor-sheet{
    width:min(670px,96%);
    aspect-ratio:210/297;
    overflow:hidden;
    background:#fff;
    box-shadow:0 24px 50px rgba(23,30,28,.10);
}
#calendarLivePage,.calendar-preview-root{width:100%;height:100%}
.calendar-preview-root{
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
}
.calendar-preview-root.cover{padding:6%}
.calendar-preview-photo{
    position:relative;
    flex:1 1 auto;
    min-height:0;
    display:grid;
    place-items:center;
    overflow:hidden;
    background:linear-gradient(145deg,#e4ebee,#bdc9cf);
    color:#697781;
    font-weight:800;
}
.calendar-preview-photo.has-image{background:#dde6ea}
.calendar-preview-photo img{width:100%;height:100%;object-fit:cover;display:block}
.calendar-preview-photo.drop-ready{outline:3px dashed #315b4b;outline-offset:-8px}
.calendar-live-remove{
    position:absolute;
    right:10px;
    top:10px;
    width:30px;
    height:30px;
    border:0;
    border-radius:50%;
    background:rgba(15,20,18,.78);
    color:#fff;
    font-size:1.15rem;
    line-height:1;
    cursor:pointer;
}
.calendar-preview-cover-year{padding:2.8% 0;text-align:center;font-size:clamp(1.4rem,4vw,2.6rem);font-weight:800}
.calendar-preview-calendar{
    box-sizing:border-box;
    flex-shrink:0;
    overflow:hidden;
}
.calendar-preview-calendar-surface{
    width:100%;height:100%;min-height:0;
    box-sizing:border-box;
    display:flex;flex-direction:column;
    padding:3.8% 5%;
    overflow:hidden;
}
.calendar-preview-calendar h2{margin:0 0 3%;color:var(--calendar-title);text-align:center;font-size:clamp(1rem,2.2vw,1.5rem)}
.calendar-live-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:1.5%;text-align:right;font-size:.62rem;font-weight:800}
.calendar-live-weekdays.with-weeks{grid-template-columns:24px repeat(7,minmax(0,1fr));gap:4px}
.calendar-live-weekdays.compact{font-size:.34rem;gap:1px}
.calendar-live-weekdays.with-weeks.compact{grid-template-columns:12px repeat(7,minmax(0,1fr));gap:2px}
.calendar-live-weekdays>span:not(.calendar-week-number-heading){display:flex;align-items:center;justify-content:flex-end;padding-right:10%;box-sizing:border-box}
.calendar-week-number-heading{padding:0!important}
.calendar-live-weekdays .weekend,
.calendar-live-days .weekend{color:var(--calendar-weekend)}
.calendar-live-days>span.holiday .calendar-day-head>b{color:var(--calendar-weekend)}
.calendar-live-grid{display:grid;grid-template-columns:1fr;min-height:0}
.calendar-live-grid.compact{font-size:inherit}
.calendar-live-grid.with-weeks{grid-template-columns:24px 1fr;gap:4px}
.calendar-live-grid.with-weeks.compact{grid-template-columns:12px 1fr;gap:2px}
.calendar-live-weeknums{display:grid;grid-auto-rows:1fr;align-items:center;color:#8a938e;font-size:.53rem}
.calendar-live-weeknums.compact{font-size:.28rem}
.calendar-live-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1fr;min-height:0;text-align:right;font-size:.69rem}
.calendar-live-days.compact{font-size:.36rem}
.calendar-live-days span{display:grid;align-items:center;justify-items:end;min-height:24px;position:relative;padding-right:10%;box-sizing:border-box}
.calendar-live-days.compact span{min-height:12px}
.calendar-live-days span b{font-weight:600;font-size:inherit}
.calendar-live-days span i{
    position:absolute;
    top:1px;
    right:3px;
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--calendar-weekend);
    display:block;
}
.calendar-live-days.compact span i{width:3px;height:3px;right:1px;top:1px}
.calendar-live-style-lines .calendar-live-days span:not(.calendar-empty-day){border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line)}
.calendar-live-style-cells .calendar-live-days span:not(.calendar-empty-day){border-right:var(--calendar-line-width,1px) solid var(--calendar-line);border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line)}
.calendar-live-style-circles .calendar-live-days span:not(.calendar-empty-day){width:22px;height:22px;min-height:22px;justify-self:center;border:1px solid var(--calendar-line);border-radius:50%}
.calendar-live-style-circles .calendar-live-days.compact span:not(.calendar-empty-day){width:11px;height:11px;min-height:11px}
.calendar-live-holidays{display:flex;flex-wrap:wrap;gap:6px;margin-top:3%;font-size:.56rem;color:#6a746e}
.calendar-live-holidays span{padding:2px 6px;border-radius:999px;background:rgba(21,28,25,.05)}
.calendar-live-holidays b{margin-right:3px;color:var(--calendar-title)}
.calendar-live-holidays.compact{gap:2px;font-size:.22rem;margin-top:1.5%}
.calendar-live-holidays.compact span{padding:1px 3px}
.calendar-page-help{color:#717c76;text-align:center;font-size:.75rem}
.calendar-pages-panel{padding:12px 14px;border:1px solid #e5e0d7;border-radius:16px;background:#fff}
.calendar-pages-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:11px}
.calendar-pages-heading>div:first-child{display:grid}
.calendar-pages-heading span,.calendar-pages-status{color:#737d78;font-size:.72rem}
.calendar-page-strip{display:grid;grid-auto-flow:column;grid-auto-columns:132px;gap:10px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
.calendar-page-thumb{display:grid;gap:6px;padding:6px;border:1px solid #ded9d0;border-radius:12px;background:#faf9f6;cursor:pointer}
.calendar-page-thumb.active{border-color:#315b4b;box-shadow:0 0 0 1px #315b4b}
.calendar-page-thumb.drop-ready{box-shadow:0 0 0 2px #315b4b inset}
.calendar-page-thumb-preview{aspect-ratio:3/4;overflow:hidden;border-radius:8px;background:#fff;border:1px solid #ece7de}
.calendar-page-thumb strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.64rem;text-align:center}
.calendar-page-thumb .calendar-preview-root.compact{font-size:.4rem}
.calendar-preview-root.compact .calendar-preview-calendar-surface{padding:4% 4.5%}
.calendar-preview-root.compact .calendar-preview-calendar h2{font-size:.42rem;margin-bottom:2%}
.calendar-preview-root.compact.cover{padding:7%}
.calendar-editor-sidebar{display:grid;align-content:start;gap:10px}
.calendar-side-section{padding-bottom:12px;border-bottom:1px solid #eee9e1}
.calendar-side-section:last-child{border-bottom:0}
.calendar-side-section h2,.calendar-side-section h3{margin:0 0 10px}
.calendar-editor-toggle{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:.78rem;cursor:pointer}
.calendar-background-swatches{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px}
.calendar-background-swatch{width:32px;height:32px;padding:0;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #d5d0c8;cursor:pointer}
.calendar-background-swatch.active{box-shadow:0 0 0 2px #315b4b}
.calendar-order-summary{display:grid;gap:9px}
.calendar-order-summary>div{display:flex;justify-content:space-between;gap:12px}
.calendar-order-summary span{color:#707a74;font-size:.72rem}
@media(max-width:1380px){
    .calendar-editor-workspace{grid-template-columns:240px minmax(560px,1fr) 290px}
}
@media(max-width:1180px){
    .calendar-editor-workspace{grid-template-columns:220px minmax(480px,1fr)}
    .calendar-editor-sidebar{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));min-height:0}
}
@media(max-width:920px){
    .calendar-editor-workspace{grid-template-columns:1fr}
    .calendar-assets-panel{min-height:0}
    .calendar-asset-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:250px}
    .calendar-editor-sidebar{grid-template-columns:1fr}
    .calendar-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Calendar viewport workspace + crop editor 0.3.96 */
.calendar-editor-page.shell.calendar-editor-v4{
    width:min(97vw,1960px);
    max-width:none;
    height:calc(100vh - 82px);
    min-height:620px;
    margin-inline:auto;
    padding:8px 0 10px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.calendar-editor-v4 .calendar-editor-topbar{
    flex:0 0 auto;
    min-height:48px;
    margin-bottom:7px;
    align-items:center;
}
.calendar-editor-v4 .calendar-editor-topbar>div:first-child{
    display:flex;
    align-items:baseline;
    gap:12px;
    min-width:0;
}
.calendar-editor-v4 .calendar-editor-topbar .eyebrow{display:none}
.calendar-editor-v4 .calendar-editor-topbar h1{
    margin:0;
    font-size:1.35rem;
    line-height:1.1;
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-editor-workspace{
    flex:1 1 auto;
    min-height:0;
    height:auto;
    align-items:stretch;
}
.calendar-editor-v4 .calendar-assets-panel,
.calendar-editor-v4 .calendar-editor-sidebar{
    min-height:0;
    height:100%;
    overflow:auto;
}
.calendar-editor-v4 .calendar-main-editor{
    min-height:0;
    height:100%;
    display:grid;
    grid-template-rows:42px minmax(0,1fr) 34px 154px;
    gap:7px;
}
.calendar-editor-v4 .calendar-page-toolbar{margin:0}
.calendar-editor-v4 .calendar-editor-stage{
    min-height:0;
    height:auto;
    padding:14px;
    overflow:hidden;
}
.calendar-editor-v4 .calendar-editor-sheet{
    height:100%;
    width:auto;
    max-width:100%;
    max-height:100%;
    aspect-ratio:210/297;
}
.calendar-editor-v4 .calendar-page-help{
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    overflow:hidden;
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-page-help strong{
    color:#25332e;
    font-size:.78rem;
}
.calendar-editor-v4 .calendar-page-help span{
    overflow:hidden;
    text-overflow:ellipsis;
}
.calendar-editor-v4 .calendar-pages-panel{
    min-height:0;
    height:154px;
    padding:8px 10px;
    overflow:hidden;
}
.calendar-editor-v4 .calendar-pages-heading{
    height:28px;
    margin-bottom:6px;
}
.calendar-editor-v4 .calendar-pages-heading span{display:none}
.calendar-editor-v4 .calendar-page-strip{
    height:108px;
    grid-auto-columns:88px;
    gap:7px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:1px 2px 5px;
}
.calendar-editor-v4 .calendar-page-thumb{
    min-height:0;
    height:102px;
    padding:4px;
    gap:3px;
}
.calendar-editor-v4 .calendar-page-thumb-preview{
    min-height:0;
    height:78px;
    aspect-ratio:auto;
}
.calendar-editor-v4 .calendar-page-thumb strong{
    font-size:.57rem;
    line-height:1;
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-page-thumb .calendar-preview-cover-year{
    font-size:.5rem;
    line-height:1;
    padding:2% 0 0;
}
.calendar-editor-v4 .calendar-page-thumb .calendar-preview-root.compact{
    font-size:.32rem;
}
.calendar-editor-v4 .calendar-preview-root.compact .calendar-preview-calendar{
    padding:3% 4%;
}
.calendar-editor-v4 .calendar-preview-root.compact .calendar-preview-calendar h2{
    font-size:.34rem;
    margin-bottom:1%;
}
.calendar-editor-v4 .calendar-live-weekdays.compact{font-size:.22rem;margin-bottom:.5%}
.calendar-editor-v4 .calendar-live-days.compact{font-size:.23rem}
.calendar-editor-v4 .calendar-live-days.compact span{min-height:7px}
.calendar-editor-v4 .calendar-live-grid.with-weeks.compact{grid-template-columns:8px 1fr;gap:1px}
.calendar-editor-v4 .calendar-live-weeknums.compact{font-size:.18rem}
.calendar-editor-v4 .calendar-live-holidays.compact{
    display:none;
}
.calendar-editor-v4 .calendar-preview-cover-year{
    flex:0 0 auto;
}
.calendar-live-edit{
    position:absolute;
    right:10px;
    top:10px;
    padding:6px 9px;
    border:0;
    border-radius:999px;
    background:rgba(22,31,28,.82);
    color:#fff;
    font-size:.68rem;
    font-weight:800;
    cursor:pointer;
    z-index:2;
}
.calendar-crop-dialog{
    width:min(1040px,100%);
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    background:#f7f4ed;
    border-radius:22px;
    overflow:hidden;
    position:relative;
}
.calendar-crop-preview-wrap{
    min-height:570px;
    display:grid;
    place-items:center;
    padding:42px;
    background:#25312e;
}
.calendar-crop-stage{
    position:relative;
    width:min(100%,650px);
    aspect-ratio:var(--calendar-crop-ratio,4/3);
    overflow:hidden;
    background:#111;
}
.calendar-crop-stage img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    user-select:none;
    pointer-events:none;
}
.calendar-crop-frame{
    position:absolute;
    inset:0;
    border:2px solid #fff;
    box-shadow:0 0 0 999px rgba(0,0,0,.25);
    pointer-events:none;
}
#calendarCropModal .crop-controls{
    padding:36px 24px 24px;
    overflow:auto;
}
#calendarCropModal .crop-controls h2{margin:.15rem 0 .4rem}
#calendarCropModal .crop-controls>p{margin:0 0 18px}
#calendarCropModal .range-with-value{
    display:grid;
    grid-template-columns:1fr auto;
    gap:7px;
    align-items:center;
    margin:17px 0;
    font-size:.76rem;
    font-weight:800;
}
#calendarCropModal .range-with-value input{
    grid-column:1/-1;
    width:100%;
}
.calendar-crop-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:22px;
}
.calendar-crop-actions .button{width:100%;padding-inline:8px}
.calendar-crop-actions .button.primary{grid-column:1/-1}
.calendar-crop-actions .danger{color:#a53b32}
@media(max-width:1180px){
    .calendar-editor-page.shell.calendar-editor-v4{
        height:auto;
        min-height:calc(100vh - 82px);
        overflow:visible;
    }
    .calendar-editor-v4 .calendar-editor-workspace{height:auto}
    .calendar-editor-v4 .calendar-main-editor{height:720px}
    .calendar-editor-v4 .calendar-assets-panel,
    .calendar-editor-v4 .calendar-editor-sidebar{height:auto;overflow:visible}
}
@media(max-width:760px){
    .calendar-crop-dialog{grid-template-columns:1fr;max-height:94vh;overflow:auto}
    .calendar-crop-preview-wrap{min-height:360px;padding:24px}
}

/* Calendar fit-to-stage + shared creative image editor 0.3.97 */
.calendar-editor-v4 .calendar-main-editor{
    grid-template-rows:42px minmax(0,1fr) 154px;
}
.calendar-editor-v4 .calendar-editor-stage{
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
}
.calendar-editor-v4 .calendar-editor-sheet{
    width:unset;
    height:unset;
    max-width:100%;
    max-height:100%;
    flex:0 0 auto;
}
.calendar-editor-v4 .calendar-page-toolbar>div{
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:5px;
}
.calendar-editor-v4 .calendar-page-toolbar strong{
    font-size:.78rem;
    font-weight:800;
    color:#34443e;
}
.calendar-editor-v4 .calendar-page-toolbar small:empty{display:none}
.calendar-editor-v4 .calendar-page-thumb strong{
    display:block;
    min-height:1em;
    margin-top:1px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    font-size:.56rem;
    line-height:1.05;
    text-align:center;
    color:#34443e;
}
.calendar-crop-stage{
    cursor:grab;
    touch-action:none;
}
.calendar-crop-stage.dragging{cursor:grabbing}
.calendar-crop-stage img{
    pointer-events:none;
    will-change:transform,filter;
    transition:none;
}
.calendar-crop-tools{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:16px 0;
}
.calendar-crop-tools .button{
    min-width:0;
    width:100%;
    padding-inline:8px;
}
.calendar-crop-tools #calendarCropReset{grid-column:1/-1}
.calendar-crop-tools .button.active{
    background:#23342e;
    color:#fff;
    border-color:#23342e;
}
.calendar-crop-hint{
    display:grid;
    gap:3px;
    margin:16px 0;
    padding:10px 12px;
    border-radius:10px;
    background:#edf4f1;
    color:#53645e;
    font-size:.72rem;
    line-height:1.4;
}
.calendar-crop-hint strong{color:#2f4f43}
@media(max-width:1180px){
    .calendar-editor-v4 .calendar-main-editor{
        grid-template-rows:42px minmax(0,1fr) 154px;
    }
}


/* Calendar thumbnail proportions + shared editor control fix 0.3.99 */
.calendar-editor-v4 .calendar-page-strip{
    height:108px;
    grid-auto-columns:max-content;
    align-items:start;
}
.calendar-editor-v4 .calendar-page-thumb{
    width:60px;
    height:102px;
    padding:4px;
    grid-template-rows:1fr auto;
    justify-items:center;
}
.calendar-editor-v4 .calendar-page-thumb.landscape{
    width:96px;
}
.calendar-editor-v4 .calendar-page-thumb-preview{
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:2/3;
    display:grid;
    place-items:center;
    overflow:hidden;
}
.calendar-editor-v4 .calendar-page-thumb.landscape .calendar-page-thumb-preview{
    aspect-ratio:3/2;
}
.calendar-editor-v4 .calendar-page-thumb-preview > .calendar-preview-root{
    width:100%;
    height:100%;
}
.calendar-editor-v4 .calendar-page-thumb strong{
    width:100%;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-align:center;
}
.calendar-live-edit{
    pointer-events:auto;
    touch-action:manipulation;
    user-select:none;
}


/* Calendar thumbnail readability + two-axis image panning 0.3.100 */
.calendar-editor-v4 .calendar-main-editor{
    grid-template-rows:42px minmax(0,1fr) 34px 184px;
}
.calendar-editor-v4 .calendar-pages-panel{
    height:184px;
}
.calendar-editor-v4 .calendar-page-strip{
    height:138px;
    gap:9px;
}
.calendar-editor-v4 .calendar-page-thumb{
    width:84px;
    height:132px;
    padding:5px;
    gap:4px;
}
.calendar-editor-v4 .calendar-page-thumb.landscape{
    width:124px;
}
.calendar-editor-v4 .calendar-page-thumb-preview{
    width:76px;
    height:auto;
    aspect-ratio:2/3;
}
.calendar-editor-v4 .calendar-page-thumb.landscape .calendar-page-thumb-preview{
    width:114px;
    aspect-ratio:3/2;
}
.calendar-editor-v4 .calendar-page-thumb strong{
    font-size:.61rem;
    line-height:1.05;
}
.calendar-editor-v4 .calendar-page-thumb .calendar-preview-root.compact{
    font-size:.39rem;
}
.calendar-editor-v4 .calendar-page-thumb .calendar-preview-cover-year{
    font-size:.62rem;
}
.calendar-editor-v4 .calendar-preview-root.compact .calendar-preview-calendar h2{
    font-size:.42rem;
}
.calendar-editor-v4 .calendar-live-weekdays.compact{
    font-size:.27rem;
}
.calendar-editor-v4 .calendar-live-days.compact{
    font-size:.28rem;
}
.calendar-editor-v4 .calendar-live-days.compact span{
    min-height:9px;
}

/* Calendar multi-slot templates and preview fit 0.3.101 */
.calendar-preview-photo-grid{
    flex:1 1 auto;
    min-height:0;
    display:grid;
    gap:2.2%;
    overflow:hidden;
}
.calendar-preview-photo-grid .calendar-preview-photo{
    min-width:0;
    min-height:0;
}
.calendar-preview-photo-grid.layout-single,
.calendar-preview-photo-grid.layout-cover-1{
    grid-template-columns:1fr;
    grid-template-rows:1fr;
}
.calendar-preview-photo-grid.layout-split-vertical,
.calendar-preview-photo-grid.layout-cover-2{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:1fr;
}
.calendar-preview-photo-grid.layout-split-horizontal{
    grid-template-columns:1fr;
    grid-template-rows:repeat(2,minmax(0,1fr));
}
.calendar-preview-photo-grid.layout-hero-two,
.calendar-preview-photo-grid.layout-cover-3{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:1.35fr 1fr;
}
.calendar-preview-photo-grid.layout-hero-two .calendar-preview-photo:first-child,
.calendar-preview-photo-grid.layout-cover-3 .calendar-preview-photo:first-child{
    grid-column:1/-1;
}
.calendar-preview-root.cover .calendar-preview-photo-grid{
    margin-bottom:5%;
}
.calendar-preview-root.compact .calendar-preview-photo-grid{
    gap:2px;
}
.calendar-preview-calendar{
    display:flex;
    flex-direction:column;
    min-height:0;
}
.calendar-preview-calendar h2,
.calendar-live-weekdays,
.calendar-live-holidays{
    flex:0 0 auto;
}
.calendar-live-grid{
    flex:1 1 auto;
    min-height:0;
    overflow:visible;
    align-content:stretch;
    grid-template-rows:minmax(0,1fr);
}
.calendar-live-days{
    height:100%;
    align-content:start;
    grid-template-rows:repeat(var(--calendar-week-count,6),minmax(0,calc(100% / var(--calendar-sizing-week-count,var(--calendar-week-count,6)))));
}
.calendar-live-days span{
    min-height:0;
    overflow:visible;
}
.calendar-live-weeknums{
    height:100%;
    align-content:start;
    grid-template-rows:repeat(var(--calendar-week-count,6),minmax(0,calc(100% / var(--calendar-sizing-week-count,var(--calendar-week-count,6)))));
}
.calendar-live-holidays{
    margin-top:1.7%;
    max-height:2.2em;
    overflow:hidden;
}
.calendar-preview-root.compact .calendar-live-holidays{
    display:none;
}
.calendar-editor-v4 .calendar-page-thumb{
    padding-bottom:9px;
}
.calendar-editor-v4 .calendar-page-thumb-preview{
    margin-bottom:7px;
}
.calendar-editor-v4 .calendar-page-thumb>strong{
    display:block;
    padding-top:3px;
    line-height:1.15;
}
.calendar-preview-photo .calendar-live-edit{
    z-index:4;
}


/* Calendar per-month layouts + thumbnail stability 0.3.103 */
.calendar-editor-field{
    display:grid;
    gap:5px;
    font-size:.75rem;
    font-weight:800;
    color:#344054;
}
.calendar-editor-field select{
    min-height:40px;
    padding:0 9px;
    border:1px solid #d9d4ca;
    border-radius:9px;
    background:#fff;
}
.calendar-setting-help{
    display:block;
    margin-top:4px;
    color:#7a847e;
    font-size:.68rem;
    line-height:1.35;
}
.calendar-editor-v4 .calendar-page-thumb{
    width:82px;
    height:136px;
    padding:5px;
    gap:7px;
    grid-template-rows:105px 14px;
    overflow:visible;
}
.calendar-editor-v4 .calendar-page-thumb.landscape{
    width:116px;
    grid-template-rows:76px 14px;
    align-self:center;
}
.calendar-editor-v4 .calendar-page-thumb-preview{
    width:70px;
    height:105px;
    aspect-ratio:auto;
    overflow:hidden;
    margin:0;
}
.calendar-editor-v4 .calendar-page-thumb.landscape .calendar-page-thumb-preview{
    width:106px;
    height:71px;
    aspect-ratio:auto;
}
.calendar-editor-v4 .calendar-page-thumb>strong{
    position:relative;
    z-index:8;
    display:block;
    align-self:end;
    width:100%;
    min-height:14px;
    margin:0;
    padding:0;
    line-height:14px;
    background:#faf9f6;
    font-size:.60rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.calendar-editor-v4 .calendar-page-thumb.active>strong{
    background:#faf9f6;
}
.calendar-preview-root.compact.month .calendar-preview-photo-grid,
.calendar-preview-root.compact.month .calendar-preview-calendar{
    min-height:0;
    overflow:hidden;
}
.calendar-preview-root.compact.month .calendar-preview-calendar{
    flex-shrink:0;
}

/* Calendar left sidebar tabs + graphical layout picker 0.3.104 */
.calendar-panel-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:12px;
}
.calendar-panel-tab{
    min-height:40px;
    border:1px solid #d9d4ca;
    border-radius:10px;
    background:#f7f4ed;
    color:#344054;
    font-weight:800;
    cursor:pointer;
}
.calendar-panel-tab.active{
    border-color:#315b4b;
    background:#edf4f1;
    color:#1f3d33;
    box-shadow:0 0 0 1px #315b4b inset;
}
.calendar-panel-pane{
    display:none;
    min-height:0;
    flex:1 1 auto;
}
.calendar-panel-pane.active{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.calendar-panel-heading.compact{margin-bottom:0}
.calendar-layout-grid{
    display:grid;
    gap:10px;
    align-content:start;
}
.calendar-layout-card{
    display:grid;
    grid-template-columns:86px minmax(0,1fr);
    align-items:center;
    gap:12px;
    width:100%;
    padding:10px;
    border:1px solid #d9d4ca;
    border-radius:12px;
    background:#fff;
    text-align:left;
    cursor:pointer;
}
.calendar-layout-card.active{
    border-color:#315b4b;
    box-shadow:0 0 0 1px #315b4b inset;
    background:#f8fbf9;
}
.calendar-layout-copy{
    display:grid;
    gap:3px;
    min-width:0;
}
.calendar-layout-copy strong{
    font-size:.82rem;
    color:#25332e;
}
.calendar-layout-copy small{
    color:#69756f;
    line-height:1.35;
}
.calendar-layout-empty{
    padding:16px 14px;
    border:1px dashed #d9d4ca;
    border-radius:12px;
    color:#69756f;
    background:#faf9f6;
    font-size:.78rem;
    line-height:1.5;
}
.calendar-layout-visual{
    width:86px;
    aspect-ratio:4/3;
    display:grid;
    gap:4px;
    padding:6px;
    border-radius:10px;
    background:#f3eee4;
    border:1px solid #e7e1d7;
}
.calendar-layout-visual span{
    display:block;
    border-radius:6px;
    background:linear-gradient(135deg,#dbe5df,#bac9c2);
    border:1px solid #cdd9d3;
}
.calendar-layout-visual.layout-single{
    grid-template-columns:1fr;
    grid-template-rows:1fr;
}
.calendar-layout-visual.layout-single span:nth-child(n+2){display:none}
.calendar-layout-visual.layout-split-vertical{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:1fr;
}
.calendar-layout-visual.layout-split-vertical span:nth-child(3){display:none}
.calendar-layout-visual.layout-split-horizontal{
    grid-template-columns:1fr;
    grid-template-rows:repeat(2,minmax(0,1fr));
}
.calendar-layout-visual.layout-split-horizontal span:nth-child(3){display:none}
.calendar-layout-visual.layout-hero-two{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:1.3fr 1fr;
}
.calendar-layout-visual.layout-hero-two span:first-child{
    grid-column:1 / -1;
}

/* Calendar date notes and markers 0.3.105 */
.calendar-panel-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.calendar-date-tool-content{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-height:0;
}
.calendar-date-toggle{
    display:flex;
    gap:10px;
    align-items:flex-start;
    padding:10px 12px;
    border:1px solid #e2ddd4;
    border-radius:12px;
    background:#faf9f6;
    color:#344054;
}
.calendar-date-toggle input{
    margin-top:2px;
}
.calendar-date-toggle span{
    display:grid;
    gap:3px;
}
.calendar-date-toggle strong{
    font-size:.78rem;
    color:#25332e;
}
.calendar-date-toggle small{
    font-size:.7rem;
    color:#69756f;
    line-height:1.35;
}
.calendar-date-tool-empty{
    padding:16px 14px;
    border:1px dashed #d9d4ca;
    border-radius:12px;
    background:#faf9f6;
    color:#69756f;
    font-size:.78rem;
    line-height:1.45;
}
.calendar-date-picker-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:5px;
}
.calendar-date-picker-day{
    position:relative;
    aspect-ratio:1/1;
    min-width:0;
    padding:0;
    border:1px solid #ddd8cf;
    border-radius:8px;
    background:#fff;
    color:#344054;
    cursor:pointer;
}
.calendar-date-picker-day b{
    font-size:.72rem;
}
.calendar-date-picker-day span{
    position:absolute;
    right:3px;
    top:2px;
    font-size:.58rem;
    color:#315b4b;
}
.calendar-date-picker-day.has-note{
    border-color:#9eb8ac;
    background:#f3f8f5;
}
.calendar-date-picker-day.active{
    border-color:#315b4b;
    box-shadow:0 0 0 1px #315b4b inset;
    background:#eaf3ee;
}
.calendar-date-entry{
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid #e2ddd4;
    border-radius:12px;
    background:#faf9f6;
}
.calendar-date-entry>strong{
    color:#25332e;
}
.calendar-date-entry label{
    display:grid;
    gap:5px;
    color:#344054;
    font-size:.75rem;
    font-weight:800;
}
.calendar-date-entry input{
    width:100%;
    min-height:40px;
    padding:0 9px;
    border:1px solid #d9d4ca;
    border-radius:9px;
    background:#fff;
}
.calendar-date-icon-heading{
    color:#344054;
    font-size:.75rem;
    font-weight:800;
}
.calendar-date-icons{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
}
.calendar-date-icons button{
    min-height:38px;
    border:1px solid #d9d4ca;
    border-radius:9px;
    background:#fff;
    color:#344054;
    font-size:1rem;
    cursor:pointer;
}
.calendar-date-icons button:first-child{
    font-size:.7rem;
    font-weight:800;
}
.calendar-date-icons button.active{
    border-color:#315b4b;
    box-shadow:0 0 0 1px #315b4b inset;
    background:#edf4f1;
}
.calendar-live-days span.has-user-note{
    background:rgba(49,91,75,.045);
    border-radius:4px;
}
.calendar-user-date-icon{
    position:absolute;
    left:3px;
    top:2px;
    color:#315b4b;
    font-size:.58rem;
    font-style:normal;
    line-height:1;
}
.calendar-user-date-text{
    position:absolute;
    left:2px;
    right:2px;
    bottom:1px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    color:#5b6761;
    font-size:.42rem;
    line-height:1;
}
.calendar-live-days.compact .calendar-user-date-icon{
    left:1px;
    top:1px;
    font-size:.22rem;
}
.calendar-live-days.compact .calendar-user-date-text{
    display:none;
}

/* Calendar flexible period controls 0.3.106 */
.calendar-period-section{
    display:grid;
    gap:10px;
}
.calendar-period-summary{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.calendar-period-summary>div{
    display:grid;
    gap:2px;
    padding:9px 10px;
    border:1px solid #e6e1d8;
    border-radius:10px;
    background:#faf9f6;
}
.calendar-period-summary span{
    color:#77817c;
    font-size:.64rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.calendar-period-summary strong{
    color:#283630;
    font-size:.82rem;
}
.calendar-extra-month-controls{
    display:grid;
    gap:8px;
}
.calendar-extra-month-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:9px 10px;
    border:1px solid #e5e0d7;
    border-radius:11px;
    background:#fff;
}
.calendar-extra-month-row>div:first-child{
    display:grid;
    gap:2px;
}
.calendar-extra-month-row strong{
    font-size:.76rem;
    color:#2d3b35;
}
.calendar-extra-month-row small{
    color:#77817c;
    font-size:.64rem;
    line-height:1.3;
}
.calendar-stepper{
    display:grid;
    grid-template-columns:30px 28px 30px;
    align-items:center;
    gap:4px;
}
.calendar-stepper>strong{
    text-align:center;
    font-size:.82rem;
}
.calendar-stepper-button{
    width:30px;
    height:30px;
    padding:0;
    border:1px solid #d6d1c8;
    border-radius:8px;
    background:#f8f6f1;
    color:#315b4b;
    font-size:1.05rem;
    font-weight:800;
    cursor:pointer;
}
.calendar-stepper-button:hover:not(:disabled){
    border-color:#315b4b;
    background:#edf4f1;
}
.calendar-stepper-button:disabled{
    opacity:.35;
    cursor:default;
}
.calendar-period-rule{
    padding:8px 9px;
    border-radius:9px;
    background:#f2f5f3;
    color:#5d6a64;
    font-size:.68rem;
    line-height:1.4;
}

/* Calendar settings accordion 0.3.107 */
.calendar-editor-v4 .calendar-editor-sidebar{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.calendar-editor-v4 .calendar-sidebar-intro{
    flex:0 0 auto;
    padding-bottom:8px;
}
.calendar-editor-v4 .calendar-settings-accordion{
    flex:0 0 auto;
}
.calendar-editor-v4 .calendar-settings-accordion .creative-accordion-body{
    padding:4px 12px 14px;
}
.calendar-editor-v4 .calendar-settings-accordion .calendar-editor-settings-form{
    margin:0;
}
.calendar-editor-v4 .calendar-settings-accordion .calendar-period-summary{
    margin-top:2px;
}
.calendar-editor-v4 .calendar-settings-accordion .calendar-editor-toggle{
    margin:2px 0;
}
.calendar-editor-v4 .calendar-order-summary{
    position:sticky;
    bottom:-18px;
    z-index:6;
    flex:0 0 auto;
    margin-top:auto;
    padding:12px 0 2px;
    border-top:1px solid #e5e0d7;
    border-bottom:0;
    background:#fff;
    box-shadow:0 -10px 18px rgba(255,255,255,.92);
}

/* Calendar sidebar polish, switches and custom background 0.3.108 */
.calendar-editor-v4 .calendar-sidebar-intro{
    padding:0 0 4px;
    border-bottom:0;
}
.calendar-editor-v4 .calendar-sidebar-intro .calendar-editor-fact{
    padding:8px 0 4px;
    border-bottom:0;
}
.calendar-change-design-button{
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    width:100%;
    margin-top:10px;
    padding:10px 12px;
    border:1px solid #d9d4ca;
    border-radius:11px;
    background:#f7f4ed;
    color:#25332e;
    font-size:.78rem;
    font-weight:850;
    text-decoration:none;
    transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.calendar-change-design-button:hover{
    background:#edf4f1;
    border-color:#9fafaa;
    transform:translateY(-1px);
}
.calendar-editor-v4 .calendar-settings-accordion{
    border-radius:14px;
}
.calendar-editor-v4 .calendar-settings-accordion .creative-accordion-head{
    min-height:52px;
    padding:13px 14px;
}
.calendar-editor-v4 .calendar-settings-accordion .creative-accordion-body{
    padding:2px 14px 16px;
    gap:12px;
}
.calendar-editor-v4 .calendar-settings-accordion .calendar-editor-settings-form{
    gap:12px;
}
.calendar-editor-v4 .calendar-editor-settings-form select,
.calendar-editor-v4 .calendar-cover-title-field input{
    min-height:44px;
    border:1px solid #d9d4ca;
    border-radius:11px;
    background:#fff;
    padding:0 12px;
}
.calendar-product-submit{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    width:100%;
    min-height:44px;
    padding:0 14px;
    border:1px solid #315b4b;
    border-radius:11px;
    background:#315b4b;
    color:#fff;
    font-weight:850;
    cursor:pointer;
}
.calendar-product-submit:hover{
    filter:brightness(.96);
}
.calendar-editor-v4 .calendar-switch{
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    min-height:46px;
    margin:0!important;
    padding:10px 0!important;
    cursor:pointer;
}
.calendar-editor-v4 .calendar-switch>span{
    flex:1 1 auto;
    order:1;
    color:#344054;
    font-size:.78rem;
    font-weight:780;
    line-height:1.35;
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;
    order:2;
    flex:0 0 auto;
    position:relative;
    width:42px;
    height:24px;
    margin:0;
    border:1px solid #cfc9bf;
    border-radius:999px;
    background:#e8e5df;
    cursor:pointer;
    transition:background .18s ease,border-color .18s ease;
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]::after{
    content:"";
    position:absolute;
    width:18px;
    height:18px;
    left:2px;
    top:2px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.18);
    transition:transform .18s ease;
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]:checked{
    background:#315b4b;
    border-color:#315b4b;
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]:checked::after{
    transform:translateX(18px);
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]:focus-visible{
    outline:2px solid #91aa9f;
    outline-offset:2px;
}
.calendar-background-picker-row{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.calendar-background-picker-row .calendar-background-swatches{
    margin:0;
}
.calendar-custom-background{
    --calendar-custom-color:#ffffff;
    position:relative;
    display:grid!important;
    place-items:center;
    width:32px;
    height:32px;
    flex:0 0 32px;
    padding:0!important;
    border:2px solid #fff;
    border-radius:50%;
    background:conic-gradient(from 0deg,#ef476f,#ffd166,#06d6a0,#118ab2,#7b61ff,#ef476f);
    box-shadow:0 0 0 1px #d5d0c8;
    cursor:pointer;
    overflow:hidden;
}
.calendar-custom-background.active{
    box-shadow:0 0 0 2px #315b4b;
}
.calendar-custom-background.active::before{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:50%;
    background:var(--calendar-custom-color);
    z-index:1;
}
.calendar-custom-background span{
    position:relative;
    z-index:2;
    display:grid;
    place-items:center;
    width:16px;
    height:16px;
    border-radius:50%;
    background:rgba(255,255,255,.9);
    color:#25332e;
    font-size:.8rem;
    font-weight:900;
    line-height:1;
    pointer-events:none;
}
.calendar-custom-background input[type="color"]{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:pointer;
}
.calendar-cover-title-field{
    gap:6px!important;
}
.calendar-cover-title-field>span{
    color:#344054;
    font-size:.78rem;
    font-weight:800;
}
.calendar-editor-v4 #calendarCoverTitleInput:disabled{
    background:#f4f2ed;
    color:#6f7773;
}

/* Calendar finish/cart flow 0.3.109 */
.calendar-editor-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
}
.calendar-finish-button{
    min-width:92px;
    min-height:40px;
    padding:0 20px;
    border:1px solid #294c40;
    border-radius:999px;
    background:#315b4b;
    color:#fff;
    font:inherit;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 5px 14px rgba(49,91,75,.16);
    transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
}
.calendar-finish-button:hover:not(:disabled){
    transform:translateY(-1px);
    background:#274b3e;
    box-shadow:0 7px 18px rgba(49,91,75,.22);
}
.calendar-finish-button:disabled{
    cursor:wait;
    opacity:.65;
}
.calendar-save-state{
    white-space:nowrap;
}

/* Creative media standard + cart editing flow 0.3.110 */
.creative-media-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    flex-wrap:wrap;
    margin:10px 0 12px;
}
.creative-media-filters{
    display:flex;
    gap:6px;
    margin:0;
    flex-wrap:wrap;
}
.creative-media-filters button,
.creative-asset-filter.creative-media-filters button{
    border:0;
    background:#eee9e0;
    color:#25332e;
    border-radius:999px;
    padding:7px 11px;
    font-weight:800;
    cursor:pointer;
}
.creative-media-filters button.active,
.creative-asset-filter.creative-media-filters button.active{
    background:var(--brand);
    color:#fff;
}
.creative-media-sort{
    display:flex;
    align-items:center;
    gap:6px;
    color:#6f7a75;
    font-size:.68rem;
    font-weight:800;
}
.creative-media-sort select{
    min-height:34px;
    max-width:108px;
    border:1px solid #d9d4ca;
    border-radius:9px;
    background:#fff;
    padding:0 28px 0 8px;
    font:inherit;
    color:#25332e;
}
.creative-assets .creative-asset-grid,
.calendar-assets-panel .calendar-asset-grid{
    grid-template-columns:repeat(auto-fill,minmax(86px,1fr));
    gap:10px;
}
.creative-asset.used,
.calendar-asset-card.used{
    opacity:1;
    border-color:#8db19f;
}
.creative-used-check{
    position:absolute !important;
    right:6px !important;
    top:6px !important;
    left:auto !important;
    bottom:auto !important;
    width:24px;
    height:24px;
    display:grid !important;
    place-items:center;
    padding:0 !important;
    border-radius:999px !important;
    background:#2f7458 !important;
    color:#fff !important;
    font-size:.8rem !important;
    font-weight:900;
    line-height:1;
    box-shadow:0 2px 8px rgba(31,61,51,.24);
}
.creative-drag-hint{
    position:absolute;
    left:5px;
    right:5px;
    bottom:5px;
    background:rgba(25,37,33,.76);
    color:#fff;
    border-radius:7px;
    padding:4px 5px;
    text-align:center;
    font-size:.66rem;
}
.calendar-editor-cart-actions{
    margin-top:auto;
    padding-top:16px;
    border-top:1px solid #e7e1d8;
    display:grid;
    gap:9px;
}
.calendar-editor-bottom-state{
    color:#71807b;
    font-size:.75rem;
    font-weight:700;
}
.calendar-add-cart-button{
    min-height:58px;
    border-radius:999px;
    font-size:1.05rem;
    font-weight:900;
}
.calendar-cancel-design,
.creative-cancel-design{
    width:100%;
    border:0;
    background:transparent;
    color:#8b4545;
    padding:8px 10px;
    font-weight:800;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:3px;
}
.calendar-cancel-design:hover,
.creative-cancel-design:hover{
    color:#6d3030;
}
.calendar-cancel-design:disabled,
.creative-cancel-design:disabled{
    opacity:.55;
    cursor:default;
}
.creative-summary .creative-cancel-design{margin-top:2px}
.cart-order-line .cart-line-actions{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    min-width:126px;
}
.cart-order-line .cart-line-actions strong{min-width:86px;white-space:nowrap;text-align:right}
.cart-line-title-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:inherit;
    text-decoration:none;
    border-radius:5px;
}
.cart-line-title-link:hover{text-decoration:underline;text-underline-offset:3px}
.cart-line-edit-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#edf2ef;
    color:#315448;
    font-size:10px;
    line-height:1;
    text-decoration:none;
    transform:translateY(-1px);
}
.cart-line-remove{
    width:30px;
    height:30px;
    display:inline-grid;
    place-items:center;
    flex:0 0 30px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#9a827d;
    font:700 20px/1 Arial,sans-serif;
    cursor:pointer;
}
.cart-line-remove:hover{background:#f6e8e6;color:var(--danger)}
.cart-line-remove:disabled{opacity:.45;cursor:default}
.cart-order-footer{display:flex;justify-content:flex-end;padding:13px 22px 15px;border-top:1px solid #eeeae2;background:#fcfbf8}
.cart-order-footer .delete-order{border:0;background:transparent;color:#9a827d;font:inherit;font-size:11px;font-weight:700;line-height:1.2;cursor:pointer;padding:6px 0}
.cart-order-footer .delete-order:hover{color:var(--danger);text-decoration:underline;text-underline-offset:3px}
.cart-order-footer .delete-order:disabled{opacity:.5;cursor:default;text-decoration:none}
@media(max-width:760px){
    .creative-media-toolbar{align-items:stretch}
    .creative-media-sort{width:100%;justify-content:space-between}
    .creative-media-sort select{max-width:none;flex:1}
    .cart-order-line .cart-line-actions{min-width:0;flex-direction:column;align-items:flex-end;gap:6px}
}
@media(max-width:620px){
    .cart-order-line .cart-line-actions{
        grid-column:2;
        justify-self:end;
    }
}

/* Classic photo ordering refinements */
.classic-upload-progress{width:min(520px,calc(100% - 30px));margin:18px auto 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;display:flex;align-items:center;gap:12px;box-shadow:0 12px 35px rgba(22,42,36,.08)}
.classic-upload-progress.hidden{display:none}.classic-upload-progress>div{display:grid;gap:2px}.classic-upload-progress strong{font-size:12px}.classic-upload-progress small{font-size:10px;color:var(--muted)}
.workspace-primary-actions{min-width:max-content}.photo-sort-controls{display:flex;align-items:center;gap:5px!important;margin-left:auto}.photo-sort-controls>span{margin-right:2px}.sort-icon-btn{width:31px;height:31px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);display:grid;place-items:center;font-size:11px;font-weight:800;cursor:pointer;padding:0}.sort-icon-btn:hover,.sort-icon-btn.active{border-color:#91a59e;color:var(--brand);background:#eff4f1}.sort-icon-btn.direction{font-size:15px}
.quality-dot{z-index:6;width:27px;height:27px;padding:0!important;border:2px solid rgba(255,255,255,.92)!important;display:grid;place-items:center;font-size:13px!important;font-weight:900;color:#fff!important;box-shadow:0 2px 8px rgba(0,0,0,.18);cursor:pointer}.quality-dot.good{background:#3f8a63!important}.quality-dot.warn{background:#d99b2b!important}.quality-dot.bad{background:#c84f45!important}.quality-dot.neutral{background:#818987!important}.quality-dot.hidden{display:none}
.quality{left:auto!important;right:22px;bottom:auto!important;top:20px;z-index:6;border:0;box-shadow:0 4px 16px rgba(0,0,0,.16);cursor:pointer;font-weight:800}.quality.good{background:#e9f5ee;color:#2f7551}.quality.warn{background:#fff2d8;color:#996510}.quality.bad{background:#fde8e5;color:#aa3f36}
.quality-info-dialog{width:min(520px,100%)}.quality-info-heading{display:flex;align-items:center;gap:10px;margin:8px 0 12px}.quality-info-heading h2{margin:0;font-family:var(--font-heading,Georgia,serif);font-size:28px;font-weight:400}.quality-info-signal{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:15px}.quality-info-signal.good{background:#3f8a63}.quality-info-signal.warn{background:#d99b2b}.quality-info-signal.bad{background:#c84f45}.quality-info-dialog p{color:var(--muted);line-height:1.55}.quality-info-recommendation{margin:18px 0;padding:13px 15px;border-radius:12px;background:#f5f2eb;display:flex;justify-content:space-between;align-items:center}.quality-info-recommendation.hidden{display:none}.quality-info-recommendation span{font-size:11px;color:var(--muted)}.quality-info-recommendation strong{font-size:16px}.quality-info-dialog>small{display:block;color:#7b8581;line-height:1.5}
@media(max-width:1080px){.workspace-toolbar{flex-wrap:wrap}.photo-sort-controls{margin-left:0}.bulk-actions{width:100%}}
@media(max-width:620px){.workspace-primary-actions{min-width:0;flex-wrap:wrap}.photo-sort-controls{width:100%;justify-content:flex-start}.classic-upload-progress{width:100%}.quality{right:12px;top:12px}}

/* Classic photo ordering layout + editor refinements 0.3.114 */
.order-page .order-shell{
    width:min(calc(100% - 36px),2300px);
    max-width:2300px;
}
.photo-workspace{margin-top:25px}
.workspace-toolbar{
    display:grid;
    grid-template-columns:auto auto minmax(0,1fr);
    gap:12px 18px;
    align-items:center;
    justify-content:stretch;
}
.workspace-toolbar>div{min-width:0}
.workspace-primary-actions{min-width:0!important;white-space:nowrap}
.workspace-primary-actions #selectedInfo{min-width:72px;white-space:nowrap}
.photo-sort-controls{margin-left:0!important;white-space:nowrap}
.bulk-actions{justify-self:end;justify-content:flex-end;min-width:0}
.bulk-actions label{white-space:nowrap}
.photo-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:15px}
.photo-workspace-footer{display:flex;justify-content:flex-end;padding:12px 3px 0}
.reset-order-link{border:0;background:transparent;color:#8d7772;font-size:11px;font-weight:700;padding:6px 2px;cursor:pointer}
.reset-order-link:hover{color:var(--danger);text-decoration:underline;text-underline-offset:3px}
.overview-fit-paper{position:absolute;display:none;background:#fff;overflow:hidden;z-index:1;box-shadow:0 0 0 1px rgba(18,31,27,.08)}
.overview-fit-paper img{width:100%;height:100%;object-fit:contain;display:block;max-width:none}
.quality-dot{
    font-family:var(--font-heading,Georgia,serif);
    font-style:italic;
    line-height:1;
}
.quality{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.quality-symbol{
    width:18px;
    height:18px;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    font:700 italic 12px/1 Georgia,serif;
    background:currentColor;
}
.quality-symbol::first-letter{color:#fff}
.quality.good .quality-symbol{background:#3f8a63}
.quality.warn .quality-symbol{background:#d99b2b}
.quality.bad .quality-symbol{background:#c84f45}
.quality-info-signal{font:700 italic 14px/1 Georgia,serif}
.quality-info-modal{z-index:1500!important}
.crop-copy-button{
    width:100%;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    color:var(--ink);
    display:grid;
    grid-template-columns:30px 1fr;
    gap:10px;
    align-items:center;
    text-align:left;
    padding:10px 12px;
    margin:0 0 10px;
    cursor:pointer;
}
.crop-copy-button:hover{border-color:#9db0a9;background:#f8fbf9}
.crop-copy-button>span:first-child{font-size:21px;color:var(--brand-2);text-align:center}
.crop-copy-button>span:last-child{display:grid;gap:2px}
.crop-copy-button strong{font-size:11px}
.crop-copy-button small{font-size:9px;color:var(--muted);line-height:1.35}

@media(max-width:1500px){
    .workspace-toolbar{grid-template-columns:minmax(0,1fr) auto}
    .workspace-primary-actions{justify-self:start}
    .photo-sort-controls{justify-self:end}
    .bulk-actions{grid-column:1/-1;width:100%;justify-content:flex-end;border-top:1px solid #eeeae2;padding-top:10px}
}
@media(max-width:900px){
    .order-page .order-shell{width:min(calc(100% - 24px),2300px)}
    .workspace-toolbar{grid-template-columns:1fr}
    .workspace-primary-actions,.photo-sort-controls,.bulk-actions{grid-column:1;width:100%;justify-self:stretch}
    .workspace-primary-actions{flex-wrap:wrap;white-space:normal}
    .photo-sort-controls{justify-content:flex-start}
    .bulk-actions{justify-content:flex-start;flex-wrap:wrap}
    .photo-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
}
@media(max-width:620px){
    .order-page .order-shell{width:min(calc(100% - 18px),2300px)}
    .photo-grid{grid-template-columns:1fr}
    .photo-workspace-footer{justify-content:center}
}


/* Classic photo ordering polish 0.3.115 */
/* Keep the per-print quantity control intact even when card columns get tight. */
.print-row .qty{
    flex:0 0 auto;
    min-width:79px;
}
.print-row .qty button{
    flex:0 0 24px;
    width:24px;
}
.print-row .qty input{
    flex:0 0 29px;
    width:29px;
    min-width:29px;
    padding:0;
}

/* Destructive reset remains secondary, but is easier to discover. */
.reset-order-link{
    border:1px solid #d8aaa3;
    border-radius:8px;
    background:rgba(255,255,255,.45);
    color:#98534a;
    padding:6px 9px;
}
.reset-order-link:hover{
    border-color:var(--danger);
    background:#fff7f5;
    color:var(--danger);
    text-decoration:none;
}

/* Optical centering for the bulk-selection checkmark. */
.photo-select{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    line-height:1;
    font-size:18px;
    text-align:center;
    text-indent:0;
}
.selected .photo-select{
    padding-bottom:2px;
}

/* In "Hele billedet" the white area represents the actual paper, not the editor stage. */
.crop-stage.fit{
    background:#1c2724;
}
.crop-stage.fit img{
    object-fit:contain;
    background:#fff;
}

/* Classic photo ordering follow-up polish 0.3.116 */
.print-row .qty{
    min-width:86px;
}
.print-row .qty button{
    width:26px;
    flex:0 0 26px;
}
.print-row .qty input{
    width:32px;
    min-width:32px;
    flex:0 0 32px;
}
.remove-print{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    justify-self:center;
    align-self:center;
    line-height:1;
    margin:0;
    padding:0;
}
.add-format-row .small-btn:disabled{
    opacity:.45;
    cursor:default;
}
.photo-select{
    font-size:17px;
}
.selected .photo-select{
    padding:0;
    transform:translateY(-1px);
}
.crop-rotate-button>span:first-child{
    font-size:20px;
}
.crop-delete-button{
    border-color:#dfb1aa;
    background:#fffaf9;
}
.crop-delete-button:hover{
    border-color:var(--danger);
    background:#fff3f1;
}
.crop-delete-button>span:first-child{
    color:var(--danger);
    font-size:18px;
}

/* Quantity pricing UX 0.3.117 */
.product-info-actions{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-top:10px}.product-info-actions .product-description{margin-top:0}.price-list-button{border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--brand);font-size:11px;font-weight:800;padding:7px 10px;cursor:pointer;white-space:nowrap}.price-list-button:hover{border-color:#9aada6;background:#f5f8f6}
.price-info-mark{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:5px;border:1px solid #9baba5;border-radius:50%;font:700 italic 9px/1 Georgia,serif;color:#557067;vertical-align:1px}.preview-format:hover .price-info-mark{background:#e9f0ed}
.quantity-hint-banner{margin:0 0 15px;border:1px solid #d9c696;border-radius:14px;background:#fff9e9;padding:11px 14px;color:#4f4325;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 16px}.quantity-hint-banner.hidden{display:none}.quantity-hint-main{display:flex;align-items:center;gap:10px;min-width:0}.quantity-hint-copy{display:grid;gap:4px;min-width:0}.quantity-hint-main strong{font-size:12px}.quantity-hint-lines{display:grid;gap:5px}.quantity-hint-lines>span,.quantity-hint-more span{font-size:11px;line-height:1.4;display:block}.quantity-hint-icon{display:grid!important;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:50%;background:#f2d98d;color:#493b19;font-size:16px!important;font-weight:900}.quantity-hint-actions{display:flex;align-items:center;justify-self:end;gap:8px}.quantity-hint-toggle,.quantity-hint-dismiss{border:1px solid #d8c89d;background:#fff7df;color:#725f2e;font-size:10px;font-weight:800;cursor:pointer}.quantity-hint-toggle{border-radius:999px;padding:6px 10px;white-space:nowrap}.quantity-hint-dismiss{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;padding:0;font-size:17px;line-height:1}.quantity-hint-more{display:grid;gap:5px}.quantity-hint-more[hidden]{display:none!important}.cart-hint{margin:0 0 14px}.cart-hint.quantity-hint-banner{display:grid}.cart-hint .quantity-hint-main{margin-bottom:0}
.price-list-modal{z-index:1600!important}.price-list-dialog{width:min(760px,calc(100% - 24px));max-height:min(84vh,850px);overflow:auto}.price-list-dialog>p{color:var(--muted);margin-top:4px}.price-list-content{display:grid;gap:18px;margin-top:20px}.price-list-category{display:grid;gap:10px}.price-list-category>h3{margin:0;padding-bottom:7px;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.price-list-category>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.price-list-block{border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 12px}.price-list-block h3{font-size:12px;margin:0 0 7px}.price-tier-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-top:1px solid #efede7}.price-tier-row:first-of-type{border-top:0}.price-tier-row span{font-size:10px;color:var(--muted)}.price-tier-row strong{font-size:10px;white-space:nowrap}
/* Five actual children when a print has a surface selector: size, surface, quantity, edit, remove. */
.print-row.has-surface{grid-template-columns:minmax(72px,1fr) minmax(105px,1fr) 86px auto 24px;box-sizing:border-box;overflow:hidden}.print-row.has-surface .surface-select{min-width:0;width:100%;max-width:100%}.print-row.has-surface .remove-print{grid-column:5}.print-row.no-surface{grid-template-columns:minmax(0,1fr) 86px auto 24px;box-sizing:border-box;overflow:hidden}.remove-print{position:static!important;transform:none!important;right:auto!important}
@media(max-width:760px){.quantity-hint-banner{grid-template-columns:1fr}.quantity-hint-actions{justify-self:start}.price-list-category>div{grid-template-columns:1fr}.print-row.has-surface{grid-template-columns:minmax(0,1fr) 86px 24px}.print-row.has-surface .surface-select{grid-column:1;grid-row:2}.print-row.has-surface .qty{grid-column:2;grid-row:1/3}.print-row.has-surface .edit-photo{grid-column:1;grid-row:3;justify-self:start}.print-row.has-surface .remove-print{grid-column:3;grid-row:1/3}}

/* Quantity pricing follow-up fixes 0.3.118 */
.print-row{position:relative;padding-right:34px!important;overflow:visible!important}
.print-row.has-surface{grid-template-columns:minmax(72px,1fr) minmax(105px,1fr) 86px auto!important}
.print-row.no-surface{grid-template-columns:minmax(0,1fr) 86px auto!important}
.print-row .remove-print{
    position:absolute!important;
    right:7px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:22px;
    height:22px;
    z-index:3;
}
@media(max-width:760px){
    .print-row.has-surface{grid-template-columns:minmax(0,1fr) 86px!important}
    .print-row.has-surface .surface-select{grid-column:1;grid-row:2}
    .print-row.has-surface .qty{grid-column:2;grid-row:1/3}
    .print-row.has-surface .edit-photo{grid-column:1;grid-row:3;justify-self:start}
}

/* Storefront quantity pricing + visible upload progress 0.3.119 */
.classic-upload-progress{
    position:fixed;
    left:50%;
    top:92px;
    transform:translateX(-50%);
    z-index:1400;
    width:min(520px,calc(100% - 30px));
    margin:0;
    padding:14px 16px;
    border:1px solid rgba(23,52,47,.16);
    border-radius:14px;
    background:rgba(255,255,255,.98);
    box-shadow:0 18px 48px rgba(22,42,36,.20);
    display:flex;
    align-items:center;
    gap:12px;
    transition:opacity .2s ease,transform .2s ease;
}
.classic-upload-progress.hidden{display:none}
.classic-upload-progress.active{transform:translateX(-50%) translateY(0)}
.classic-upload-progress-copy{display:grid;gap:4px;min-width:0;flex:1}
.classic-upload-progress strong{font-size:12px}
.classic-upload-progress small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.classic-upload-progress-track{height:5px;border-radius:99px;background:#e6ebe8;overflow:hidden;margin-top:4px;position:relative}
.classic-upload-progress-track>span{display:block;height:100%;width:0;border-radius:inherit;background:var(--brand);transition:width .22s ease}
.classic-upload-progress-track.indeterminate>span{min-width:42px;animation:classicUploadPulse 1.15s ease-in-out infinite}
@keyframes classicUploadPulse{0%{transform:translateX(-80%)}50%{transform:translateX(180%)}100%{transform:translateX(-80%)}}
@media(max-width:620px){.classic-upload-progress{top:76px;width:calc(100% - 20px)}}

/* Photo line layout + server delete follow-up 0.3.120 */
.print-row{
    padding-right:6px!important;
    overflow:hidden!important;
}
.print-row.has-surface{
    grid-template-columns:minmax(62px,1fr) minmax(78px,110px) 86px minmax(42px,48px) 20px!important;
}
.print-row.no-surface{
    grid-template-columns:minmax(0,1fr) 86px minmax(42px,48px) 20px!important;
}
.print-row .edit-photo{
    min-width:0;
    white-space:nowrap;
    justify-self:center;
}
.print-row .remove-print{
    position:static!important;
    right:auto!important;
    top:auto!important;
    transform:none!important;
    grid-column:auto!important;
    grid-row:auto!important;
    width:20px;
    height:24px;
    justify-self:end;
    z-index:auto;
}
@media(max-width:760px){
    .print-row.has-surface{
        grid-template-columns:minmax(0,1fr) 86px 20px!important;
    }
    .print-row.has-surface .surface-select{grid-column:1;grid-row:2}
    .print-row.has-surface .qty{grid-column:2;grid-row:1/3}
    .print-row.has-surface .edit-photo{grid-column:1;grid-row:3;justify-self:start}
    .print-row.has-surface .remove-print{grid-column:3!important;grid-row:1/3!important;align-self:center}
    .print-row.no-surface{grid-template-columns:minmax(0,1fr) 86px 20px!important}
}

/* Ready-time storefront presentation 0.3.125 */
.ready-time-chip{
    width:max-content;
    max-width:100%;
    margin-top:12px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 10px;
    border:1px solid #cddbd5;
    border-radius:999px;
    background:#f3f8f5;
    color:#315f50;
    font-size:11px;
}
.ready-time-chip span{font-size:14px;line-height:1}
.ready-time-chip strong{font-size:11px;font-weight:800}
.ready-time-chip.compact{margin-top:8px;padding:5px 8px}
.ready-time-chip.compact span{font-size:12px}
.ready-time-chip.compact strong{font-size:10px}
.ready-time-banner{
    margin:-10px 0 22px;
    padding:12px 15px;
    border:1px solid #cddbd5;
    border-radius:13px;
    background:#f3f8f5;
    color:#315f50;
    display:flex;
    align-items:flex-start;
    gap:10px;
    width:max-content;
    max-width:100%;
}
.ready-time-icon{font-size:19px;line-height:1.2}
.ready-time-banner>div{display:grid;gap:2px}
.ready-time-banner small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#688077;font-weight:800}
.ready-time-banner strong{font-size:13px}
.ready-time-banner>div>span{font-size:10px;color:#6f7d78;max-width:620px;line-height:1.4}
@media(max-width:620px){.ready-time-banner{width:100%}}

/* EX-P07 storefront Express availability 0.3.237 */
.ready-time-chip-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:12px}
.ready-time-chip-row .ready-time-chip{margin-top:0}
.ready-time-chip-row.compact{gap:5px;margin-top:8px}
.ready-time-chip-row.compact .ready-time-chip{margin-top:0}
.ready-time-chip.express{border-color:#e8c96e;background:#fff8df;color:#765a0d}
.ready-time-stack{display:flex;align-items:stretch;flex-wrap:wrap;gap:9px;margin:-10px 0 22px}
.ready-time-stack .ready-time-banner{margin:0}
.ready-time-banner.express{border-color:#e8c96e;background:#fff8df;color:#765a0d}
.ready-time-banner.express small{color:#8b7128}
@media(max-width:620px){.ready-time-stack{width:100%;display:grid}.ready-time-stack .ready-time-banner{width:100%}}

/* RT-05 mixed-cart ready-time presentation 0.3.127 */
.cart-ready-overall{
    display:flex;
    align-items:center;
    gap:12px;
    margin:16px 22px 8px;
    padding:14px 16px;
    border:1px solid #c9ddd2;
    border-radius:14px;
    background:#f0f6f2;
}
.cart-ready-icon{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#dcebe2;
    color:#315f4d;
    font-size:17px;
}
.cart-ready-overall>div{display:grid;gap:2px}
.cart-ready-overall small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#6b7d75;font-weight:800}
.cart-ready-overall strong{font-size:14px;color:#244d3e}
.cart-ready-overall span:not(.cart-ready-icon){font-size:10px;color:var(--muted)}
.cart-ready-groups{
    margin:0 22px 16px;
    border:1px solid #e5e1d8;
    border-radius:13px;
    overflow:hidden;
    background:#fcfbf8;
}
.cart-ready-group{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:11px 13px;
    border-bottom:1px solid #ece8df;
}
.cart-ready-group:last-child{border-bottom:0}
.cart-ready-group>div{display:grid;gap:2px;min-width:0}
.cart-ready-group strong{font-size:11px}
.cart-ready-group small{font-size:9px;color:var(--muted);line-height:1.35}
.cart-ready-group>span{font-size:11px;font-weight:800;color:#315f4d;text-align:right;white-space:nowrap}
@media(max-width:620px){
    .cart-ready-overall{margin:14px 14px 7px}
    .cart-ready-groups{margin:0 14px 14px}
    .cart-ready-group{align-items:flex-start;flex-direction:column;gap:5px}
    .cart-ready-group>span{text-align:left;white-space:normal}
}

/* Ready Time RT-06: Express upgrade */
.cart-express-upgrade{margin:16px 0;border:1px solid #d8d3c8;border-radius:15px;background:#fffdf8;padding:15px}
.cart-express-upgrade.selected{border-color:#d9ad59;background:#fff9ec;box-shadow:0 8px 24px rgba(89,69,28,.08)}
.cart-express-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.cart-express-heading h3{margin:3px 0 4px;font:400 20px/1.15 Georgia,serif}
.cart-express-heading p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}
.cart-express-price{display:grid;text-align:right;white-space:nowrap}
.cart-express-price small{font-size:9px;color:var(--muted)}
.cart-express-price strong{font-size:16px}
.cart-express-groups{margin:12px 0;display:grid;gap:6px}
.cart-express-group{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid #eee9de;padding-top:8px}
.cart-express-group>div{display:grid;gap:2px}
.cart-express-group strong{font-size:11px}
.cart-express-group small{font-size:9px;color:var(--muted)}
.cart-express-group>span{font-size:10px;font-weight:800;color:var(--brand-2);white-space:nowrap}
.cart-express-group.unavailable{opacity:.65}
.cart-express-result{display:flex;justify-content:space-between;align-items:center;background:#f4f1e8;border-radius:10px;padding:9px 11px;margin:10px 0}
.cart-express-result small{font-size:9px;color:var(--muted)}
.cart-express-result strong{font-size:11px}
.cart-express-toggle{width:100%;margin-top:4px;background:#f2c575;color:#1d2926}
.cart-express-upgrade.selected .cart-express-toggle{background:#e8ece9;color:var(--brand)}
@media(max-width:620px){.cart-express-heading{flex-direction:column}.cart-express-price{text-align:left}.cart-express-group{align-items:flex-start}}

/* Ready Time RT-07 mixed Express presentation 0.3.131 */
.cart-ready-name{display:flex;align-items:center;gap:7px;min-width:0}
.cart-ready-mode{display:inline-flex;align-items:center;border-radius:999px;padding:2px 6px;font-size:8px!important;font-weight:800;line-height:1.2;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.cart-ready-mode.normal{background:#edf0ee;color:#65736e}
.cart-ready-mode.express{background:#fff0ca;color:#8b651e}
.cart-ready-group.express{background:#fffaf0}
.cart-ready-overall.express-selected{border-color:#dfbd79;background:#fff9ec}
.cart-express-comparison{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0 9px}
.cart-express-comparison>div{border:1px solid #e4dfd4;border-radius:10px;background:#f8f6f0;padding:9px 11px;display:grid;gap:2px}
.cart-express-comparison>div.express{border-color:#e0bc73;background:#fff7e6}
.cart-express-comparison small{font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800}
.cart-express-comparison strong{font-size:11px;color:var(--ink)}
.cart-express-overall-note{margin:-1px 0 11px!important;padding:8px 10px;border-radius:9px;background:#f4f1e8;font-size:9px!important;color:#6f716d!important}
.cart-express-product{display:grid;gap:5px;min-width:0}
.cart-express-times{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cart-express-times>span{display:grid;gap:1px}
.cart-express-times small{font-size:8px!important;text-transform:uppercase;letter-spacing:.05em;color:#8a908d}
.cart-express-times b{font-size:10px;font-weight:800;color:#53625d}
.cart-express-times .express b{color:#8b651e}
.cart-express-times i{font-style:normal;color:#a9aaa6;font-size:12px}
.cart-express-times.unavailable{gap:14px}
.cart-express-unavailable b{color:#9a5b53!important}
.cart-express-product em{font-style:normal;font-size:8px;color:#9a5b53;line-height:1.35}
.cart-express-line-price{font-size:10px;font-weight:800;color:var(--brand-2);white-space:nowrap}
.cart-express-group.unavailable{opacity:1;background:#fbf8f5;border-radius:9px;padding:8px 9px;border-top:0}
.cart-express-group.available{padding-left:2px;padding-right:2px}
.checkout-ready-card{margin:0 0 16px;border:1px solid #d9ddd9;border-radius:14px;background:#fff;padding:13px 14px;display:grid;gap:9px}
.checkout-ready-card>div{display:flex;justify-content:space-between;gap:15px;align-items:center}
.checkout-ready-card small{font-size:9px;color:var(--muted)}
.checkout-ready-card strong{font-size:11px;text-align:right}
.checkout-ready-card .checkout-ready-row{border-top:1px solid #eeece6;padding-top:8px}
.checkout-ready-card .checkout-ready-row:first-of-type{border-top:0;padding-top:0}
.checkout-ready-badge{border-radius:999px;padding:2px 6px;font-size:8px!important;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-left:5px}
.checkout-ready-badge.express{background:#fff0ca;color:#8b651e}
.checkout-ready-badge.normal{background:#edf0ee;color:#65736e}
@media(max-width:620px){.cart-express-comparison{grid-template-columns:1fr}.cart-express-group{align-items:flex-start}.cart-express-line-price{padding-top:2px}.checkout-ready-card>div{align-items:flex-start;flex-direction:column;gap:3px}.checkout-ready-card strong{text-align:left}}

/* RT-09 shipping promise presentation */
.checkout-delivery-option .delivery-promise{display:block;margin-top:3px;font-size:10px;line-height:1.35;color:var(--muted)}
.checkout-delivery-option .delivery-promise.arrival{color:var(--brand-2);font-weight:700}

/* Multi-location storefront selector 0.3.138 */
.store-location-picker{position:relative;margin-left:auto}
.store-location-picker>summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:12px;padding:7px 10px;color:var(--ink);min-width:145px}
.store-location-picker>summary::-webkit-details-marker{display:none}
.store-location-picker>summary>span:last-child{display:grid;line-height:1.05}
.store-location-picker>summary small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.store-location-picker>summary strong{font-size:11px;margin-top:3px;max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-location-pin{font-size:17px;color:var(--brand-2)}
.store-location-menu{position:absolute;right:0;top:calc(100% + 8px);width:280px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 20px 55px rgba(17,31,27,.16);z-index:100}
.store-location-title{display:block;padding:7px 9px 8px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
.store-location-menu a{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:10px;padding:10px;text-decoration:none;color:var(--ink)}
.store-location-menu a:hover,.store-location-menu a.active{background:#f1f5f2}
.store-location-menu a>span{display:grid;gap:2px}
.store-location-menu a strong{font-size:11px}
.store-location-menu a small{font-size:9px;color:var(--muted)}
.store-location-menu a>b{color:var(--brand-2)}
@media(max-width:900px){.main-nav{display:none}.store-location-picker{margin-left:auto}.store-location-picker>summary{min-width:0}.store-location-picker>summary>span:last-child{display:none}.store-location-menu{right:-54px}}

/* Multi-location cart switching 0.3.143 */
.cart-location-choice{margin:14px 18px 8px;padding:14px 15px;border:1px solid #dedbd2;border-radius:13px;background:#faf8f2;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cart-location-choice>div{display:grid;gap:2px;min-width:0}.cart-location-choice h3{margin:0;font:400 18px/1.15 Georgia,serif}.cart-location-choice p{margin:1px 0 0;color:var(--muted);font-size:9px;line-height:1.45;max-width:560px}
.cart-location-choice label{display:grid;gap:5px;min-width:min(300px,42%)}.cart-location-choice label>span{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800}.cart-location-choice select{width:100%;padding:9px 34px 9px 11px;font-size:11px}
.cart-location-notice{margin:14px 18px 8px;padding:10px 12px;border-radius:11px;border:1px solid #c9d8cf;background:#f1f7f3;display:grid;gap:2px}.cart-location-notice strong{font-size:11px;color:#315f4d}.cart-location-notice span{font-size:9px;color:#5f6e68;line-height:1.4}.cart-location-notice.warning{border-color:#dfc78e;background:#fff8e8}.cart-location-notice.warning strong{color:#8b651e}
@media(max-width:760px){.cart-location-choice{align-items:flex-start;flex-direction:column}.cart-location-choice label{min-width:0;width:100%}}

.pickup-location-confirmation{margin-top:14px;border:1px solid #d8e7df;background:#f7fbf8;border-radius:14px;padding:14px 16px}.pickup-location-confirmation>label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:11px!important;cursor:pointer}.pickup-location-confirmation input{margin-top:3px}.pickup-location-confirmation span{display:grid;gap:3px}.pickup-location-confirmation small{font-weight:400;color:#68736e}

/* Collage content types foundation 0.3.167 */
.creative-slot.content-text{background:rgba(255,253,247,.94);border-style:solid;border-color:rgba(181,158,106,.48);padding:10px;text-align:center;color:#4f4635}
.creative-slot.content-text .creative-static-text{font-weight:700;line-height:1.25;max-width:92%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical}
.creative-slot.content-graphic{background:rgba(246,242,249,.94);border-style:solid;border-color:rgba(132,111,151,.42);color:#7b6889;font-size:1.35rem}
.creative-template-mini .mini-rect-layout>i.content-text,.creative-template-mini .mini-rect-layout>i.content-graphic{display:grid;place-items:center;font-style:normal;font-size:.55rem;font-weight:800;color:#665a48}
.creative-template-mini .mini-rect-layout>i.content-text{background:#fffaf0}
.creative-template-mini .mini-rect-layout>i.content-graphic{background:#f2edf6;color:#7b6889}

/* Creative media graphics 0.3.168 */
.creative-slot.content-graphic{overflow:hidden}.creative-static-graphic-image,.creative-slot.content-graphic img.creative-static-graphic-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain!important;display:block;pointer-events:none;max-width:none;max-height:none}.creative-template-mini .mini-rect-layout>i.content-graphic.has-media{background-size:contain;background-position:center;background-repeat:no-repeat;color:transparent}

/* Collage editable text fields 0.3.169 */
.creative-slot.content-text.editable{cursor:pointer;position:absolute}.creative-slot.content-text.editable:hover{outline:2px solid rgba(80,112,98,.42);outline-offset:-2px}.creative-text-edit-badge{position:absolute;right:6px;top:6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(0,0,0,.12);font-size:11px;color:var(--brand);pointer-events:none}.creative-slot.content-text .creative-static-text{width:92%;white-space:pre-wrap;overflow-wrap:anywhere}.creative-text-modal{position:fixed;inset:0;background:rgba(16,29,25,.78);backdrop-filter:blur(8px);z-index:105;display:grid;place-items:center;padding:25px}.creative-text-modal.hidden{display:none}.creative-text-dialog{width:min(920px,100%);background:#f7f4ed;border-radius:25px;overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.4)}.creative-text-preview-panel{min-height:500px;background:#e7e3da;display:grid;grid-template-rows:auto 1fr;padding:42px}.creative-text-field-preview{align-self:center;justify-self:stretch;min-height:220px;background:#fff;border:1px solid #ded9cf;border-radius:18px;padding:28px;display:flex;align-items:center;justify-content:center;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.25}.creative-text-field-controls{padding:48px 34px 30px}.creative-text-field-controls h2{font-family:var(--font-heading,Georgia,serif);font-size:32px;font-weight:400;margin:7px 0}.creative-text-field-controls>p{font-size:12px;color:var(--muted);margin:0 0 18px}.creative-text-field-controls>label{display:grid;gap:7px;font-size:11px;font-weight:700;margin:14px 0}.creative-text-field-controls textarea,.creative-text-field-controls select{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px 12px;font:inherit;box-sizing:border-box}.creative-text-field-controls textarea{resize:vertical;min-height:96px}.creative-text-field-controls input[type=color]{width:100%;height:44px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:5px}.creative-text-field-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.creative-text-field-actions .btn{padding:10px 20px}@media(max-width:760px){.creative-text-modal{padding:8px}.creative-text-dialog{grid-template-columns:1fr;max-height:calc(100vh - 16px);overflow:auto}.creative-text-preview-panel{min-height:230px;padding:28px 22px}.creative-text-field-preview{min-height:140px}.creative-text-field-controls{padding:28px 22px 24px}}


/* Collage editable text refinement 0.3.170 */
.creative-color-picker-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.creative-color-picker-row .background-swatches{flex-wrap:wrap}.creative-custom-color-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.creative-custom-color-button{--custom-color:#ffffff;position:relative;display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;padding:0;border:2px solid #fff;border-radius:50%;background:conic-gradient(from 0deg,#ef476f,#ffd166,#06d6a0,#118ab2,#7b61ff,#ef476f);box-shadow:0 0 0 1px #d5d0c8;cursor:pointer;overflow:hidden}.creative-custom-color-button::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--custom-color);opacity:0;transition:opacity .18s ease}.creative-custom-color-button.active::before{opacity:1}.creative-custom-color-button span{position:relative;z-index:1;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:rgba(255,255,255,.92);font-weight:800;color:#344054;line-height:1}.creative-slot.content-text .creative-static-text{display:block;-webkit-line-clamp:unset;-webkit-box-orient:initial}.creative-text-field-toggle,.creative-text-field-color-group{display:grid;gap:7px;font-size:11px;font-weight:700;margin:14px 0}.creative-inline-switch{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:600}.creative-inline-switch input{width:18px;height:18px;margin:0}.creative-text-field-preview{position:relative;text-align:center}.creative-text-field-preview[style*="aspect-ratio"]{min-height:unset}.creative-text-field-controls>#creativeTextFieldColorWrap span:first-child,.creative-text-field-toggle>span:first-child{font-size:11px;font-weight:700}.creative-text-field-controls>#creativeTextFieldColorWrap,.creative-text-field-controls>#creativeTextFieldAutoFitWrap{margin:14px 0}.creative-text-field-controls>#creativeTextFieldSizeWrap small{font-size:11px;font-weight:400;color:var(--muted);display:block;margin-top:6px}.creative-background-control .background-swatches,.creative-text-color-control .background-swatches{margin:0}


/* Collage text editor preview parity fix 0.3.172 */
.creative-text-preview-panel{overflow:hidden}
.creative-text-field-preview{box-sizing:border-box;justify-self:center;min-height:0;padding:10px;display:grid;place-items:center;overflow:hidden}
.creative-text-field-preview .creative-static-text{width:92%;max-width:92%;font-weight:700;line-height:1.25;white-space:pre-wrap;overflow-wrap:anywhere;overflow:hidden}
@media(max-width:760px){.creative-text-field-preview{max-width:100%;height:auto!important;aspect-ratio:var(--text-preview-aspect,1.6)}}

/* Collage catalog backgrounds 0.3.174 */
.background-swatch.background-media-swatch{background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:0 0 0 1px #d5d0c8 inset,0 0 0 1px #d5d0c8}.background-swatch.background-media-swatch.active{box-shadow:0 0 0 3px #fff inset,0 0 0 2px #315b4b}

/* Collage background inheritance polish 0.3.175 */
.creative-slot.content-text{background:transparent}

/* Collage customer-photo backgrounds 0.3.176 */
.creative-customer-background-button{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:3px 9px 3px 4px;border:1px solid #d5d0c8;border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:10px;font-weight:800;cursor:pointer}.creative-customer-background-button.active{box-shadow:0 0 0 2px #315b4b;border-color:#fff}.creative-customer-background-thumb{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f0ede7;background-size:cover;background-position:center;color:#65736e}.creative-customer-background-thumb.has-image{color:transparent}.creative-customer-background-layer{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.creative-customer-background-layer img{width:100%;height:100%;object-fit:cover;display:block;transform-origin:center center}.creative-canvas>.creative-canvas-text,.creative-canvas>.creative-fixed-layout{position:relative;z-index:1}.creative-background-photo-modal{position:fixed;inset:0;z-index:110;background:rgba(16,29,25,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}.creative-background-photo-modal.hidden{display:none}.creative-background-photo-dialog{width:min(1040px,100%);max-height:calc(100vh - 48px);overflow:hidden;background:#f7f4ed;border-radius:24px;display:grid;grid-template-columns:1.1fr .9fr;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.4)}.creative-background-photo-preview-panel{padding:38px;background:#e7e3da;display:grid;grid-template-rows:auto 1fr auto;gap:16px;min-width:0}.creative-background-photo-stage{width:100%;align-self:center;overflow:hidden;background:#fff;border:1px solid #d8d2c8;border-radius:16px;touch-action:none;cursor:grab;position:relative}.creative-background-photo-stage:active{cursor:grabbing}.creative-background-photo-stage img{width:100%;height:100%;object-fit:cover;display:block;transform-origin:center center;user-select:none;pointer-events:none}.creative-background-photo-preview-panel>small{color:var(--muted);font-size:11px}.creative-background-photo-controls{padding:42px 32px 28px;overflow:auto}.creative-background-photo-controls h2{font-family:var(--font-heading,Georgia,serif);font-size:32px;font-weight:400;margin:6px 0 8px}.creative-background-photo-controls>p{font-size:12px;color:var(--muted);line-height:1.5}.creative-background-photo-controls>.range-with-value{display:grid;gap:7px;margin:16px 0;font-size:11px;font-weight:700}.creative-background-asset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0;max-height:180px;overflow:auto}.creative-background-asset{border:2px solid transparent;background:#fff;border-radius:10px;padding:4px;cursor:pointer;display:grid;gap:4px;min-width:0}.creative-background-asset.active{border-color:#315b4b}.creative-background-asset img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px}.creative-background-asset span{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.creative-background-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center;font-size:11px}@media(max-width:780px){.creative-background-photo-modal{padding:8px}.creative-background-photo-dialog{grid-template-columns:1fr;max-height:calc(100vh - 16px);overflow:auto}.creative-background-photo-preview-panel{padding:24px}.creative-background-photo-controls{padding:26px 22px}.creative-background-asset-grid{grid-template-columns:repeat(3,1fr)}}

/* Collage free overlays 0.3.177 */
.creative-overlay{position:absolute;display:block;pointer-events:none;z-index:0}.creative-overlay img{display:block;width:100%;height:auto;max-width:none}.creative-overlay-front{z-index:4}.creative-overlay-back{z-index:0}.creative-template-mini .mini-rect-layout .creative-overlay{z-index:0}

/* CG-06 production preview 0.3.186 */
.btn.btn-outline{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.btn-outline:hover{border-color:#98b5a7;background:#f7faf8}
.creative-production-preview-modal{position:fixed;inset:0;z-index:110;background:rgba(16,29,25,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}.creative-production-preview-modal.hidden{display:none}.creative-production-preview-dialog{width:min(1180px,100%);max-height:calc(100vh - 48px);overflow:hidden;background:#f7f4ed;border-radius:24px;display:grid;grid-template-columns:1.1fr .9fr;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.4)}.creative-production-preview-stage{padding:38px;background:#e7e3da;display:grid;grid-template-rows:auto 1fr;gap:16px;min-width:0}.creative-production-preview-canvas{display:grid;place-items:center;overflow:auto;border:1px solid #d8d2c8;border-radius:18px;background:#fff;padding:18px;min-height:240px}.creative-production-preview-canvas img{display:block;max-width:100%;max-height:min(70vh,960px);height:auto;box-shadow:0 12px 36px rgba(0,0,0,.12);background:#fff}.creative-production-preview-sidebar{padding:42px 32px 28px;overflow:auto;display:grid;align-content:start;gap:16px}.creative-production-preview-sidebar h2{font-family:var(--font-heading,Georgia,serif);font-size:32px;font-weight:400;margin:6px 0 0}.creative-production-preview-sidebar>p{font-size:12px;color:var(--muted);line-height:1.55;margin:0}.creative-production-preview-meta{display:grid;gap:8px}.creative-production-preview-meta>div{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #e2ddd3;border-radius:12px;background:#fff}.creative-production-preview-meta span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.creative-production-preview-meta strong{font-size:11px;text-align:right}.creative-production-preview-warning{padding:11px 12px;border:1px solid #e4c98b;border-radius:12px;background:#fff8e8;color:#8b651e;font-size:11px;line-height:1.45}.creative-production-preview-status{padding:11px 12px;border-radius:12px;background:#edf3ef;color:#315b4b;font-size:11px;font-weight:700}.creative-production-preview-actions{display:flex;gap:10px;flex-wrap:wrap}.creative-production-preview-actions .small-btn{min-height:40px}@media(max-width:900px){.creative-production-preview-modal{padding:8px}.creative-production-preview-dialog{grid-template-columns:1fr;max-height:calc(100vh - 16px);overflow:auto}.creative-production-preview-stage{padding:24px}.creative-production-preview-sidebar{padding:26px 22px 24px}.creative-production-preview-canvas img{max-height:50vh}}

/* Express pricing EX-P06: live cart price clarity 0.3.236 */
.cart-express-price-breakdown{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:9px 0 2px}
.cart-express-price-breakdown>span{min-width:132px;border:1px solid #e8dfcd;border-radius:9px;background:#fffaf0;padding:7px 9px;display:grid;gap:2px;text-align:right}
.cart-express-price-breakdown small{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.cart-express-price-breakdown b{font-size:10px;color:#6e541f}
.cart-order-line.express-priced{background:#fffdf7}
.cart-order-line .cart-line-copy h3{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cart-line-express-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 6px;background:#fff0ca;color:#8b651e;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.cart-line-express-price{font-weight:800;color:#8b651e}
.cart-line-standard-price{color:#8b918d;text-decoration:line-through;text-decoration-thickness:1px}
.cart-line-standard-total{display:block;margin-top:2px;color:#8b918d;font-size:9px;text-decoration:line-through;text-align:right;white-space:nowrap}
.cart-summary-detail span,.checkout-summary-detail span{display:grid;gap:1px}
.cart-summary-detail small,.checkout-summary-detail small,.checkout-summary-note{font-size:8px;color:var(--muted);font-weight:500}
.cart-summary-detail b,.checkout-summary-detail b{color:#8b651e}
@media(max-width:620px){.cart-express-price-breakdown{justify-content:stretch}.cart-express-price-breakdown>span{flex:1;text-align:left}.cart-line-standard-total{text-align:left}}

/* CMS storefront + navigation 0.3.250 */
.cms-nav-root,.cms-subnav,.cms-footer-nav{list-style:none;margin:0;padding:0}.cms-nav-root{display:flex;align-items:center;gap:24px}.cms-nav-item{position:relative}.cms-nav-item>a{text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:6px}.cms-nav-item.has-children>a::after{content:'⌄';font-size:.8em;opacity:.65}.cms-subnav{display:none;position:absolute;z-index:60;left:-14px;top:calc(100% + 10px);min-width:210px;padding:9px;background:var(--paper,#fff);border:1px solid rgba(29,41,38,.12);border-radius:14px;box-shadow:0 18px 45px rgba(23,52,47,.14)}.cms-subnav .cms-nav-item>a{display:flex;padding:10px 11px;border-radius:9px;white-space:nowrap}.cms-subnav .cms-nav-item>a:hover{background:var(--cream,#f3eee4)}.cms-nav-item:hover>.cms-subnav,.cms-nav-item:focus-within>.cms-subnav{display:block}.cms-subnav .cms-subnav{left:calc(100% + 6px);top:-9px}.cms-footer-nav{display:grid;gap:8px}.cms-footer-nav .cms-subnav{position:static;display:grid;box-shadow:none;border:0;background:transparent;padding:6px 0 0 12px}.cms-footer-nav .cms-nav-item>a{font-weight:400}
.cms-public-page{overflow:hidden}.cms-public-section{padding-top:var(--cms-pt,32px);padding-bottom:var(--cms-pb,32px)}.cms-section-inner{display:grid;gap:28px}.cms-section-inner.full{width:100%;padding-inline:0}.cms-layout-1 .cms-section-inner{grid-template-columns:minmax(0,1fr)}.cms-layout-1-1 .cms-section-inner{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-layout-1-2 .cms-section-inner{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.cms-layout-2-1 .cms-section-inner{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.cms-layout-1-1-1 .cms-section-inner{grid-template-columns:repeat(3,minmax(0,1fr))}.cms-public-column{min-width:0}.cms-valign-center{align-self:center}.cms-valign-end{align-self:end}.cms-public-block{min-width:0}.cms-align-center{text-align:center}.cms-align-right{text-align:right}.cms-public-block h1,.cms-public-block h2,.cms-public-block h3{margin-top:0}.cms-richtext>*:first-child{margin-top:0}.cms-richtext>*:last-child{margin-bottom:0}.cms-richtext img{max-width:100%;height:auto}.cms-content-image{display:block;width:100%;height:auto;max-height:780px;object-fit:cover;border-radius:18px}.cms-image-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:center}.cms-image-text.image-right img{order:2}.cms-image-text img{width:100%;height:100%;min-height:260px;max-height:600px;object-fit:cover;border-radius:18px}.cms-content-hero{min-height:420px;padding:70px clamp(28px,7vw,100px);background:linear-gradient(135deg,var(--brand,#17342f),#274c45);background-size:cover;background-position:center;color:#fff;display:flex;align-items:center}.cms-content-hero-copy{max-width:720px}.cms-content-hero h1{font-size:clamp(2.2rem,5vw,4.7rem);line-height:.98;margin:.2em 0}.cms-content-hero p{font-size:1.15rem;max-width:650px}.cms-button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.cms-btn-ghost{border:1px solid rgba(255,255,255,.7);color:#fff;background:transparent}.cms-callout{padding:34px;border-radius:20px;background:var(--cream,#f3eee4)}.cms-divider{border:0;border-top:1px solid rgba(29,41,38,.16);margin:0}.cms-store-info{padding:26px;border-radius:18px;background:var(--cream,#f3eee4)}.cms-store-info h3{margin:0 0 6px}.cms-store-location{display:block;margin-bottom:15px}.cms-store-info dl{margin:0;display:grid;gap:9px}.cms-store-info dl>div{display:grid;grid-template-columns:minmax(110px,.35fr) 1fr;gap:12px}.cms-store-info dt{font-weight:800}.cms-store-info dd{margin:0}.cms-store-info .week dd{line-height:1.55}
@media(max-width:900px){.cms-nav-root{gap:14px}.cms-layout-1-1 .cms-section-inner,.cms-layout-1-2 .cms-section-inner,.cms-layout-2-1 .cms-section-inner,.cms-layout-1-1-1 .cms-section-inner{grid-template-columns:1fr}.cms-hide-tablet{display:none!important}.cms-image-text{grid-template-columns:1fr}.cms-image-text.image-right img{order:0}.cms-content-hero{min-height:360px}.cms-subnav{left:auto;right:0}}
@media(max-width:680px){.cms-hide-mobile{display:none!important}.cms-content-hero{padding:50px 22px}.cms-public-section{padding-top:min(var(--cms-pt,32px),48px);padding-bottom:min(var(--cms-pb,32px),48px)}.cms-store-info dl>div{grid-template-columns:1fr;gap:2px}}
.cms-mobile-menu{display:none;position:relative}.cms-mobile-menu>summary{list-style:none;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-content:center;gap:4px;cursor:pointer;background:#fff}.cms-mobile-menu>summary::-webkit-details-marker{display:none}.cms-mobile-menu>summary span{display:block;width:17px;height:2px;background:var(--ink);border-radius:3px}.cms-mobile-menu-panel{position:absolute;right:0;top:52px;width:min(340px,calc(100vw - 28px));padding:14px;background:var(--paper,#fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(23,52,47,.16)}.cms-mobile-nav{list-style:none;margin:0;padding:0;display:grid}.cms-mobile-nav .cms-nav-item>a,.cms-mobile-menu-panel>a{display:flex;padding:12px 10px;color:var(--ink);text-decoration:none;font-weight:700}.cms-mobile-nav .cms-subnav{display:grid;position:static;box-shadow:none;border:0;padding:0 0 0 16px;background:transparent}.cms-mobile-nav .cms-subnav .cms-nav-item>a{font-weight:500;padding-block:9px}.cms-mobile-nav .cms-nav-item.has-children>a::after{margin-left:auto}
@media(max-width:900px){.cms-mobile-menu{display:block}.cms-main-nav{display:none!important}}

/* CMS 0.3.252 – robust dropdown hit area, clearer arrows and per-device navigation visibility */
.cms-nav-item.has-children>a::after{content:'▾';font-size:.9em;font-weight:900;line-height:1;opacity:.9;margin-left:3px;transform:translateY(-1px)}
.cms-subnav::before{content:'';position:absolute;left:0;right:0;top:-12px;height:12px}
.cms-subnav .cms-subnav{left:calc(100% - 2px)}
@media(min-width:901px){.cms-nav-desktop-off{display:none!important}}
@media(min-width:681px) and (max-width:900px){.cms-nav-tablet-off{display:none!important}}
@media(max-width:680px){.cms-nav-mobile-off{display:none!important}}


/* CMS 0.3.253 · homepage catalog modules */
.cms-catalog-module{width:100%}.cms-catalog-module-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.cms-catalog-module-heading h2{margin:0;font-size:clamp(1.55rem,2.5vw,2.35rem)}.cms-category-card-grid{display:grid;grid-template-columns:repeat(var(--cms-grid-cols,4),minmax(0,1fr));gap:18px}.cms-category-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid rgba(22,45,37,.1);border-radius:20px;overflow:hidden;background:#fff;color:inherit;text-decoration:none;box-shadow:0 10px 30px rgba(20,44,36,.06);transition:transform .18s ease,box-shadow .18s ease}.cms-category-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,44,36,.11)}.cms-category-card-media{aspect-ratio:4/3;background:linear-gradient(135deg,#edf2ef,#f8f3ea);display:grid;place-items:center;overflow:hidden;color:#698278;font-size:32px}.cms-category-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.cms-category-card:hover .cms-category-card-media img{transform:scale(1.025)}.cms-category-card-copy{position:relative;padding:16px 44px 18px 17px;display:grid;gap:7px;min-height:108px}.cms-category-card-copy h3{margin:0;font-size:1.05rem}.cms-category-card-copy p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}.cms-category-card-copy strong{font-size:.86rem;color:var(--brand,#244c3d)}.cms-card-arrow{position:absolute;right:16px;bottom:17px;font-size:1.3rem;transition:transform .18s ease}.cms-category-card:hover .cms-card-arrow{transform:translateX(3px)}@media(max-width:1050px){.cms-category-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.cms-category-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cms-category-card-copy{padding:13px 36px 14px 13px;min-height:96px}.cms-category-card-copy p{display:none}}@media(max-width:430px){.cms-category-card-grid{grid-template-columns:1fr}}

/* CMS maps & contact forms */
.cms-map-card{display:grid;gap:12px}.cms-map-card iframe{display:block;width:100%;min-height:220px;border:0;border-radius:18px;background:#eef2f0}.cms-map-link{justify-self:start;font-weight:700;text-decoration:none}.cms-contact-card{max-width:900px}.cms-contact-card>p{max-width:720px}.cms-contact-form{display:grid;gap:16px}.cms-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cms-contact-form label{display:grid;gap:6px;font-weight:700}.cms-contact-form input,.cms-contact-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(20,45,38,.18);border-radius:12px;padding:12px 14px;background:#fff;color:inherit;font:inherit}.cms-contact-form input:focus,.cms-contact-form textarea:focus{outline:2px solid rgba(42,109,89,.18);border-color:var(--brand-primary,#2a6d59)}.cms-form-message-field{grid-column:1/-1}.cms-contact-form small{display:block;color:#64716d}.cms-form-message{padding:14px 16px;border-radius:12px;font-weight:700}.cms-form-message.success{background:#e9f7ef;color:#21643f}.cms-form-message.error{background:#fff0ee;color:#a23931}.cms-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.cms-contact-card .btn{justify-self:start}
@media(max-width:760px){.cms-form-grid{grid-template-columns:1fr}.cms-map-card iframe{min-height:280px}}


/* Campaign discounts */
.cart-discount-code{display:grid!important;gap:7px!important;align-items:stretch!important;padding:12px 0 4px;border-top:1px solid #d9d4ca;border-bottom:1px solid #d9d4ca}.cart-discount-code>label{font-size:11px;font-weight:700}.cart-discount-input{display:grid;grid-template-columns:1fr auto;gap:7px}.cart-discount-input input{min-width:0;border:1px solid #d5d1c8;border-radius:9px;padding:9px 10px;background:#fff;font:inherit;font-size:12px}.cart-discount-status{display:flex!important;align-items:center;justify-content:space-between!important;gap:8px!important;margin:0!important;padding:8px 9px;border-radius:8px;font-size:10px!important}.cart-discount-status.success{background:#eaf6ef;color:#276146}.cart-discount-status.error{background:#fff0ed;color:#9a493b}.cart-discount-status.hidden{display:none!important}.cart-discount-status button{border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.cart-summary-detail.campaign b,.checkout-summary-detail.campaign b{color:#2f7558}.cart-line-campaign-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 6px;background:#e6f5eb;color:#26704c;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-left:6px}.cart-line-campaign-price{font-weight:800;color:#26704c}.campaign-priced .cart-line-actions>strong{color:#26704c}


/* Campaign price presentation across storefront */
.catalog-campaign-price,.cms-campaign-price{display:grid;justify-items:end;gap:2px;min-width:max-content}.catalog-campaign-badge,.cms-campaign-badge,.creative-campaign-badge{display:inline-flex;align-items:center;width:max-content;max-width:180px;padding:3px 7px;border-radius:999px;background:#e6f5eb;color:#26704c;font-size:9px;font-weight:800;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-price-before,.cms-price-before,.creative-normal-price{font-size:10px;color:#8b877f;text-decoration:line-through;font-weight:500}.catalog-campaign-price>strong,.cms-campaign-price>strong{color:#26704c}.variant-preview-list .campaign-variant{background:#edf7f0}.variant-preview-list .campaign-variant small{color:#26704c;font-weight:700}.variant-preview-list .campaign-variant s{color:#8b877f;font-weight:400;margin-right:3px}.quick-price.campaign{display:grid;grid-template-columns:auto auto;column-gap:6px;align-items:end}.quick-price.campaign .quick-campaign-label{grid-column:1/-1;color:#26704c;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.quick-price.campaign s{font-size:11px;color:#8b877f;align-self:center}.creative-price-wrap{display:grid;justify-items:end;gap:3px}.creative-price-wrap #creativePrice{color:inherit}.creative-price-wrap:has(.creative-campaign-badge:not(.hidden)) #creativePrice{color:#26704c}.creative-normal-price{display:block}.cms-category-card-copy .cms-campaign-price{margin-left:auto}


/* Campaign presentation */
.cms-campaign-banner-stack{display:grid;gap:0}.cms-campaign-banner{border-bottom:1px solid rgba(0,0,0,.08)}.cms-campaign-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:24px;padding-bottom:24px}.cms-campaign-banner-inner>div{display:grid;gap:6px;max-width:850px}.cms-campaign-banner h2{margin:0;font-size:clamp(1.3rem,2vw,2rem)}.cms-campaign-banner p{margin:0;max-width:760px}.cms-campaign-banner-badge,.cms-campaign-card-badge{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.cms-campaign-banner.theme-accent,.cms-campaign-card.theme-accent{background:color-mix(in srgb,var(--brand-primary,#315f51) 10%,#fff)}.cms-campaign-banner.theme-accent .cms-campaign-banner-badge,.cms-campaign-card.theme-accent .cms-campaign-card-badge{background:var(--brand-primary,#315f51);color:#fff}.cms-campaign-banner.theme-light,.cms-campaign-card.theme-light{background:#f7f6f2}.cms-campaign-banner.theme-light .cms-campaign-banner-badge,.cms-campaign-card.theme-light .cms-campaign-card-badge{background:#ebe8df;color:#37352f}.cms-campaign-banner.theme-dark,.cms-campaign-card.theme-dark{background:#202722;color:#fff}.cms-campaign-banner.theme-dark .cms-campaign-banner-badge,.cms-campaign-card.theme-dark .cms-campaign-card-badge{background:rgba(255,255,255,.14);color:#fff}.cms-campaign-banner.theme-dark .btn{background:#fff;color:#202722}.cms-campaign-promo-code{font-size:.9rem}.cms-campaign-promo-code strong,.cms-campaign-card-code strong{letter-spacing:.08em}.cms-campaign-card-grid{display:grid;grid-template-columns:repeat(var(--cms-grid-cols,3),minmax(0,1fr));gap:18px}.cms-campaign-card{display:flex;min-height:220px;flex-direction:column;align-items:flex-start;gap:10px;padding:24px;border:1px solid rgba(0,0,0,.08);border-radius:18px;color:inherit;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease}.cms-campaign-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.08)}.cms-campaign-card h3{margin:4px 0 0;font-size:1.35rem}.cms-campaign-card p{margin:0;opacity:.78}.cms-campaign-card-code{margin-top:auto;font-size:.84rem}.cms-campaign-card-link{font-weight:800;margin-top:4px}.cms-campaign-grid-empty{padding:20px;border:1px dashed #d6d3ca;border-radius:14px;color:#777}
@media(max-width:900px){.cms-campaign-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-campaign-banner-inner{align-items:flex-start}}@media(max-width:620px){.cms-campaign-card-grid{grid-template-columns:1fr}.cms-campaign-banner-inner{flex-direction:column}}

/* Campaign banner visual upgrade 0.3.266 */
.cms-campaign-banner{position:relative;overflow:hidden}.cms-campaign-banner-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,56px)}.cms-campaign-banner-copy{display:grid;gap:9px;max-width:820px}.cms-campaign-banner-copy h2{font-size:clamp(1.55rem,2.8vw,2.65rem);line-height:1.06;letter-spacing:-.025em}.cms-campaign-banner-copy p{line-height:1.55}.cms-campaign-banner-cta{width:max-content;margin-top:7px}.cms-campaign-banner.height-compact .cms-campaign-banner-inner{padding-top:22px;padding-bottom:22px}.cms-campaign-banner.height-standard .cms-campaign-banner-inner{padding-top:38px;padding-bottom:38px}.cms-campaign-banner.height-large .cms-campaign-banner-inner{padding-top:64px;padding-bottom:64px}.cms-campaign-banner.layout-image-right .cms-campaign-banner-inner,.cms-campaign-banner.layout-image-left .cms-campaign-banner-inner{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr)}.cms-campaign-banner.layout-image-left .cms-campaign-banner-media{order:-1}.cms-campaign-banner-media{align-self:stretch;min-height:210px;max-height:390px;border-radius:20px;overflow:hidden;box-shadow:0 12px 35px rgba(20,35,29,.12)}.cms-campaign-banner.height-compact .cms-campaign-banner-media{min-height:170px;max-height:240px}.cms-campaign-banner.height-large .cms-campaign-banner-media{min-height:290px;max-height:460px}.cms-campaign-banner-media img{display:block;width:100%;height:100%;min-height:inherit;object-fit:cover;object-position:var(--campaign-focus-x,50%) var(--campaign-focus-y,50%)}.cms-campaign-banner.layout-image-background::before,.cms-campaign-banner.layout-image-background::after{content:"";position:absolute;inset:0}.cms-campaign-banner.layout-image-background::before{z-index:0;background-image:var(--campaign-image);background-size:cover;background-position:var(--campaign-focus-x,50%) var(--campaign-focus-y,50%);transform:scale(1.01)}.cms-campaign-banner.layout-image-background::after{z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.84) 48%,rgba(255,255,255,.28) 100%)}.cms-campaign-banner.layout-image-background.theme-dark::after{background:linear-gradient(90deg,rgba(20,28,24,.92) 0%,rgba(20,28,24,.82) 50%,rgba(20,28,24,.34) 100%)}.cms-campaign-banner.layout-image-background .cms-campaign-banner-copy{max-width:680px;text-shadow:0 1px 0 rgba(255,255,255,.16)}
@media(max-width:820px){.cms-campaign-banner.layout-image-right .cms-campaign-banner-inner,.cms-campaign-banner.layout-image-left .cms-campaign-banner-inner{grid-template-columns:1fr}.cms-campaign-banner.layout-image-left .cms-campaign-banner-media{order:0}.cms-campaign-banner-media{min-height:220px;max-height:320px}.cms-campaign-banner.height-large .cms-campaign-banner-media{min-height:250px}.cms-campaign-banner.layout-image-background::after{background:rgba(255,255,255,.84)}.cms-campaign-banner.layout-image-background.theme-dark::after{background:rgba(20,28,24,.78)}}

/* 0.3.268 CMS Banner / Hero foundation */
.cms-bannerhero{position:relative;isolation:isolate;overflow:hidden;display:flex;min-height:360px;padding:clamp(28px,5vw,70px);border-radius:20px;background:linear-gradient(135deg,var(--brand,#17342f),#274c45);color:#fff;align-items:center;gap:clamp(24px,4vw,64px)}
.cms-bannerhero.height-compact{min-height:250px;padding-block:clamp(24px,4vw,44px)}.cms-bannerhero.height-large{min-height:520px;padding-block:clamp(50px,7vw,96px)}
.cms-bannerhero.theme-accent{background:var(--accent,#d8a755);color:#17201d}.cms-bannerhero.theme-light{background:var(--cream,#f3eee4);color:#1d2926}.cms-bannerhero.theme-dark{background:#17201d;color:#fff}
.cms-bannerhero.layout-background.has-image::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--cms-banner-image);background-size:cover;background-position:var(--cms-banner-focus-x,50%) var(--cms-banner-focus-y,50%)}
.cms-bannerhero.layout-background.has-image::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(10,18,15,var(--cms-banner-overlay,.35))}
.cms-bannerhero.layout-image-left,.cms-bannerhero.layout-image-right{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1fr);padding:0}
.cms-bannerhero.layout-image-left .cms-bannerhero-copy,.cms-bannerhero.layout-image-right .cms-bannerhero-copy{padding:clamp(30px,5vw,72px)}
.cms-bannerhero.layout-image-left .cms-bannerhero-media{order:-1}.cms-bannerhero-media{height:100%;min-height:inherit}.cms-bannerhero-media img{display:block;width:100%;height:100%;min-height:inherit;object-fit:cover;object-position:var(--cms-banner-focus-x,50%) var(--cms-banner-focus-y,50%)}
.cms-bannerhero.layout-text{background:var(--cream,#f3eee4);color:#1d2926}
.cms-bannerhero-copy{position:relative;z-index:1;width:min(100%,760px)}.cms-bannerhero.text-center{justify-content:center;text-align:center}.cms-bannerhero.text-center .cms-bannerhero-copy{margin-inline:auto}.cms-bannerhero.text-right{justify-content:flex-end;text-align:right}.cms-bannerhero.text-right .cms-bannerhero-copy{margin-left:auto}
.cms-bannerhero.valign-top{align-items:flex-start}.cms-bannerhero.valign-bottom{align-items:flex-end}
.cms-bannerhero-eyebrow{display:inline-block;margin-bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.18);font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.cms-bannerhero.theme-light .cms-bannerhero-eyebrow,.cms-bannerhero.theme-accent .cms-bannerhero-eyebrow,.cms-bannerhero.layout-image-left .cms-bannerhero-eyebrow,.cms-bannerhero.layout-image-right .cms-bannerhero-eyebrow,.cms-bannerhero.layout-text .cms-bannerhero-eyebrow{background:rgba(23,52,47,.09)}
.cms-bannerhero h2{margin:0 0 14px;line-height:1.02;letter-spacing:-.025em}.cms-bannerhero.heading-small h2{font-size:clamp(1.7rem,3vw,2.5rem)}.cms-bannerhero.heading-medium h2{font-size:clamp(2rem,4vw,3.3rem)}.cms-bannerhero.heading-large h2{font-size:clamp(2.4rem,5vw,4.4rem)}.cms-bannerhero.heading-xlarge h2{font-size:clamp(2.8rem,6vw,5.5rem)}
.cms-bannerhero p{margin:0 0 18px;line-height:1.55;max-width:680px}.cms-bannerhero.text-center p{margin-inline:auto}.cms-bannerhero.text-right p{margin-left:auto}.cms-bannerhero.body-small> .cms-bannerhero-copy>p{font-size:.95rem}.cms-bannerhero.body-normal> .cms-bannerhero-copy>p{font-size:1.08rem}.cms-bannerhero.body-large> .cms-bannerhero-copy>p{font-size:1.25rem}
.cms-bannerhero-code{font-size:.95rem!important}.cms-bannerhero-button{margin-top:4px;background:var(--brand,#17342f);color:#fff}.cms-bannerhero.theme-brand .cms-bannerhero-button,.cms-bannerhero.theme-dark .cms-bannerhero-button,.cms-bannerhero.layout-background.has-image .cms-bannerhero-button{background:#fff;color:#17342f}.cms-bannerhero.button-small .cms-bannerhero-button{padding:8px 13px;font-size:.88rem}.cms-bannerhero.button-large .cms-bannerhero-button{padding:14px 23px;font-size:1.08rem}
@media(max-width:760px){.cms-bannerhero{border-radius:14px;min-height:320px;padding:34px 24px}.cms-bannerhero.height-large{min-height:430px}.cms-bannerhero.layout-image-left,.cms-bannerhero.layout-image-right{grid-template-columns:1fr}.cms-bannerhero.layout-image-left .cms-bannerhero-media,.cms-bannerhero.layout-image-right .cms-bannerhero-media{order:-1;min-height:220px;height:220px}.cms-bannerhero.layout-image-left .cms-bannerhero-copy,.cms-bannerhero.layout-image-right .cms-bannerhero-copy{padding:30px 24px}.cms-bannerhero.heading-xlarge h2,.cms-bannerhero.heading-large h2{font-size:clamp(2.2rem,10vw,3.6rem)}}

.cms-bannerhero.buttonstyle-outline .cms-bannerhero-button{background:transparent;color:currentColor;border:2px solid currentColor}

/* 0.3.269 CMS Banner Carousel */
.cms-banner-carousel{position:relative}.cms-banner-carousel-track{position:relative}.cms-banner-carousel .cms-banner-slide{display:none}.cms-banner-carousel .cms-banner-slide.is-active{display:flex}.cms-banner-carousel .cms-banner-slide.layout-image-left.is-active,.cms-banner-carousel .cms-banner-slide.layout-image-right.is-active{display:grid}
.cms-banner-carousel-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#17342f;font-size:2rem;line-height:1;box-shadow:0 6px 20px rgba(0,0,0,.18);cursor:pointer;display:grid;place-items:center}.cms-banner-carousel-arrow.prev{left:16px}.cms-banner-carousel-arrow.next{right:16px}.cms-banner-carousel-arrow:hover{background:#fff}.cms-banner-carousel-arrow:focus-visible,.cms-banner-carousel-dots button:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.cms-banner-carousel-dots{position:absolute;z-index:5;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px;padding:7px 10px;border-radius:999px;background:rgba(15,25,22,.28);backdrop-filter:blur(4px)}.cms-banner-carousel-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer}.cms-banner-carousel-dots button.is-active{width:24px;border-radius:999px;background:#fff}
@media(max-width:760px){.cms-banner-carousel-arrow{width:38px;height:38px;font-size:1.7rem}.cms-banner-carousel-arrow.prev{left:8px}.cms-banner-carousel-arrow.next{right:8px}.cms-banner-carousel-dots{bottom:10px}}
@media(prefers-reduced-motion:reduce){.cms-banner-carousel [data-banner-slide]{scroll-behavior:auto}}

/* Calendar template artwork graphics 0.3.290 */
.calendar-preview-photo-grid{position:relative;isolation:isolate}
.calendar-preview-photo-grid .calendar-preview-photo{z-index:1}
.calendar-template-overlay,.calendar-design-overlay{position:absolute;display:block;pointer-events:none;z-index:0}
.calendar-template-overlay-front,.calendar-design-overlay-front{z-index:3}
.calendar-template-overlay img,.calendar-design-overlay img{display:block;width:100%;height:auto;max-width:none}
.calendar-design-image{position:relative;overflow:hidden;isolation:isolate}
/* Shared creative graphic engine: reference containers */
.calendar-preview-root,.calendar-preview-calendar,.calendar-design-sheet,.calendar-design-grid-preview{position:relative;isolation:isolate}
.calendar-template-overlay,.calendar-design-overlay{transform-origin:center center}

/* Calendar Builder v2 – full-page artwork composition */
.calendar-preview-root.month.composition-overlay{position:relative;display:block!important;overflow:hidden}.calendar-preview-root.month.composition-overlay>.calendar-preview-photo-grid{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:1!important;padding:0!important}.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar{position:absolute!important;z-index:5!important;overflow:visible}.calendar-preview-root.month.composition-overlay .calendar-preview-calendar-surface{position:relative;height:100%;box-sizing:border-box;overflow:hidden}.calendar-preview-root.month.composition-overlay .calendar-template-overlay{z-index:8}.calendar-preview-root.month.composition-overlay .calendar-preview-photo-grid .calendar-template-overlay-front{z-index:4}.calendar-preview-root.month.composition-overlay .calendar-preview-photo-grid .calendar-template-overlay-back{z-index:0}
.calendar-design-sheet.overlay-composition{position:relative;display:block}.calendar-design-sheet.overlay-composition .calendar-design-image{position:absolute;inset:0;width:100%;height:100%;filter:brightness(var(--cal-art-brightness,1)) grayscale(var(--cal-art-gray,0)) blur(var(--cal-art-blur,0px));transform:scale(1.015);z-index:1}.calendar-design-sheet.overlay-composition .calendar-design-grid-preview{position:absolute;left:0;right:0;height:var(--cal-grid-height,38%);z-index:4;background:transparent!important;isolation:isolate}.calendar-design-sheet.overlay-composition.grid-top .calendar-design-grid-preview{top:0}.calendar-design-sheet.overlay-composition.grid-bottom .calendar-design-grid-preview{bottom:0}.calendar-design-sheet.overlay-composition .calendar-design-grid-preview::before{content:"";position:absolute;inset:0;background:var(--cal-plate-color,#fff);opacity:var(--cal-plate-opacity,.85);z-index:-1}.calendar-design-sheet.overlay-composition.transition-fade.grid-bottom .calendar-design-grid-preview::before{mask-image:linear-gradient(to bottom,transparent 0,#000 26%,#000 100%)}.calendar-design-sheet.overlay-composition.transition-fade.grid-top .calendar-design-grid-preview::before{mask-image:linear-gradient(to top,transparent 0,#000 26%,#000 100%)}.calendar-design-sheet.overlay-composition.transition-gradient.grid-bottom .calendar-design-grid-preview::before{mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.4) 22%,#000 55%,#000 100%)}.calendar-design-sheet.overlay-composition.transition-gradient.grid-top .calendar-design-grid-preview::before{mask-image:linear-gradient(to top,transparent 0,rgba(0,0,0,.4) 22%,#000 55%,#000 100%)}

/* Calendar column alignment + overlay boundary transition 0.3.298 */
.calendar-live-weekdays.with-weeks,.calendar-live-grid.with-weeks{--calendar-week-gutter:24px}
.calendar-live-weekdays.with-weeks.compact,.calendar-live-grid.with-weeks.compact{--calendar-week-gutter:12px}
.calendar-editor-v4 .calendar-live-weekdays.with-weeks.compact{grid-template-columns:8px repeat(7,minmax(0,1fr));gap:1px}
.calendar-editor-v4 .calendar-live-days.compact span{padding-right:8%}

/* Calendar grid presets + alignment 0.3.299 */
.calendar-preview-calendar{--calendar-day-justify:flex-end}
.calendar-live-weekdays>span:not(.calendar-week-number-heading),
.calendar-live-days span{justify-items:var(--calendar-day-justify);text-align:inherit}
.calendar-live-weekdays>span:not(.calendar-week-number-heading){justify-content:var(--calendar-day-justify)}
.calendar-grid-preset-writing .calendar-live-days span{align-items:start;padding-top:4px;min-height:34px}
.calendar-grid-preset-writing .calendar-live-days.compact span{min-height:15px;padding-top:1px}
.calendar-grid-preset-writing .calendar-user-date-text{bottom:4px;font-size:.46rem;white-space:normal;line-height:1.05;max-height:1.05rem}
.calendar-grid-preset-writing .calendar-live-days.compact .calendar-user-date-text{display:none}
.calendar-grid-preset-compact .calendar-preview-calendar h2{margin-bottom:1.5%;font-size:clamp(.85rem,1.7vw,1.2rem)}
.calendar-grid-preset-compact .calendar-live-weekdays{margin-bottom:.7%;font-size:.54rem}
.calendar-grid-preset-compact .calendar-live-days{font-size:.61rem}
.calendar-grid-preset-compact .calendar-live-days span{min-height:18px}
.calendar-grid-preset-compact .calendar-live-holidays{font-size:.46rem}

.calendar-design-grid-preview.calendar-day-align-left .calendar-design-week span,
.calendar-design-grid-preview.calendar-day-align-left .calendar-design-days span{justify-content:flex-start;text-align:left}
.calendar-design-grid-preview.calendar-day-align-center .calendar-design-week span,
.calendar-design-grid-preview.calendar-day-align-center .calendar-design-days span{justify-content:center;text-align:center}
.calendar-design-grid-preview.calendar-day-align-right .calendar-design-week span,
.calendar-design-grid-preview.calendar-day-align-right .calendar-design-days span{justify-content:flex-end;text-align:right}
.calendar-design-grid-preview.calendar-grid-preset-writing .calendar-design-days span{align-items:start;padding-top:2px;box-sizing:border-box}
.calendar-design-grid-preview.calendar-grid-preset-compact strong{font-size:.58rem}
.calendar-design-grid-preview.calendar-grid-preset-compact .calendar-design-week{font-size:.34rem}
.calendar-design-grid-preview.calendar-grid-preset-compact .calendar-design-days{font-size:.34rem}

/* Calendar grid geometry + relative typography 0.3.300 */
.calendar-preview-calendar-surface{
    container-type:size;
}
/* Semantic sizes scale with the actual calendar area instead of fixed point sizes. */
.calendar-title-size-extra-small .calendar-preview-calendar-surface>h2{font-size:clamp(.62rem,2.5cqw,.95rem)}
.calendar-title-size-small .calendar-preview-calendar-surface>h2{font-size:clamp(.72rem,3.1cqw,1.15rem)}
.calendar-title-size-normal .calendar-preview-calendar-surface>h2{font-size:clamp(.82rem,3.8cqw,1.5rem)}
.calendar-title-size-large .calendar-preview-calendar-surface>h2{font-size:clamp(.92rem,4.5cqw,1.8rem)}
.calendar-title-size-extra-large .calendar-preview-calendar-surface>h2{font-size:clamp(1rem,5.3cqw,2.1rem)}
.calendar-title-size-giant .calendar-preview-calendar-surface>h2{font-size:clamp(1.1rem,6.2cqw,2.5rem)}

.calendar-day-size-extra-small .calendar-live-weekdays{font-size:clamp(.38rem,1.1cqw,.58rem)}
.calendar-day-size-small .calendar-live-weekdays{font-size:clamp(.42rem,1.3cqw,.64rem)}
.calendar-day-size-normal .calendar-live-weekdays{font-size:clamp(.46rem,1.5cqw,.72rem)}
.calendar-day-size-large .calendar-live-weekdays{font-size:clamp(.50rem,1.75cqw,.82rem)}
.calendar-day-size-extra-large .calendar-live-weekdays{font-size:clamp(.54rem,2cqw,.92rem)}
.calendar-day-size-giant .calendar-live-weekdays{font-size:clamp(.60rem,2.35cqw,1.04rem)}
.calendar-day-size-extra-small .calendar-live-days{font-size:clamp(.40rem,1.25cqw,.62rem)}
.calendar-day-size-small .calendar-live-days{font-size:clamp(.44rem,1.45cqw,.70rem)}
.calendar-day-size-normal .calendar-live-days{font-size:clamp(.48rem,1.7cqw,.80rem)}
.calendar-day-size-large .calendar-live-days{font-size:clamp(.53rem,2cqw,.92rem)}
.calendar-day-size-extra-large .calendar-live-days{font-size:clamp(.58rem,2.3cqw,1.04rem)}
.calendar-day-size-giant .calendar-live-days{font-size:clamp(.64rem,2.7cqw,1.18rem)}

/* A calendar grid is a complete lattice. Empty leading/trailing dates still
   participate so lines and boxes do not disappear around the month edges. */
.calendar-live-style-lines .calendar-live-days span{
    border-bottom:1px solid var(--calendar-line);
}
.calendar-live-style-cells .calendar-live-days span{
    border-right:var(--calendar-line-width,1px) solid var(--calendar-line);
    border-bottom:1px solid var(--calendar-line);
}
.calendar-live-style-cells .calendar-live-days span:nth-child(7n+1){
    border-left:1px solid var(--calendar-line);
}
.calendar-live-style-cells .calendar-live-days span:nth-child(-n+7){
    border-top:1px solid var(--calendar-line);
}

/* Template-choice previews use the same semantic relative sizes. */
.calendar-design-grid-preview{container-type:size}
.calendar-design-grid-preview.calendar-title-size-extra-small>strong{font-size:clamp(.40rem,2.5cqw,.58rem)}
.calendar-design-grid-preview.calendar-title-size-small>strong{font-size:clamp(.44rem,3cqw,.66rem)}
.calendar-design-grid-preview.calendar-title-size-normal>strong{font-size:clamp(.48rem,3.6cqw,.76rem)}
.calendar-design-grid-preview.calendar-title-size-large>strong{font-size:clamp(.54rem,4.2cqw,.88rem)}
.calendar-design-grid-preview.calendar-title-size-extra-large>strong{font-size:clamp(.58rem,4.8cqw,.98rem)}
.calendar-design-grid-preview.calendar-title-size-giant>strong{font-size:clamp(.64rem,5.6cqw,1.12rem)}
.calendar-design-grid-preview.calendar-day-size-extra-small .calendar-design-week,
.calendar-design-grid-preview.calendar-day-size-extra-small .calendar-design-days{font-size:.28rem}
.calendar-design-grid-preview.calendar-day-size-small .calendar-design-week,
.calendar-design-grid-preview.calendar-day-size-small .calendar-design-days{font-size:.32rem}
.calendar-design-grid-preview.calendar-day-size-normal .calendar-design-week,
.calendar-design-grid-preview.calendar-day-size-normal .calendar-design-days{font-size:.38rem}
.calendar-design-grid-preview.calendar-day-size-large .calendar-design-week,
.calendar-design-grid-preview.calendar-day-size-large .calendar-design-days{font-size:.44rem}
.calendar-design-grid-preview.calendar-day-size-extra-large .calendar-design-week,
.calendar-design-grid-preview.calendar-day-size-extra-large .calendar-design-days{font-size:.50rem}
.calendar-design-grid-preview.calendar-day-size-giant .calendar-design-week,
.calendar-design-grid-preview.calendar-day-size-giant .calendar-design-days{font-size:.57rem}

.calendar-preview-lines .calendar-design-days span{border-bottom:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}
.calendar-preview-cells .calendar-design-days span{border-right:1px solid var(--cal-line,#d0d5dd);border-bottom:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}
.calendar-preview-cells .calendar-design-days span:nth-child(7n+1){border-left:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}
.calendar-preview-cells .calendar-design-days span:nth-child(-n+7){border-top:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}

/* Calendar date labels + footer notes 0.3.301 */
.calendar-live-days span{
    gap:2px;
    align-content:flex-start;
    padding:6% 8% 4%;
}
.calendar-live-days.compact span{
    padding:6% 8% 4%;
}
.calendar-day-head{
    display:flex;
    align-items:center;
    justify-content:var(--calendar-day-justify);
    gap:.18em;
    width:100%;
    min-width:0;
    line-height:1;
}
.calendar-day-dot{
    width:.5em;
    height:.5em;
    border-radius:999px;
    display:inline-block;
    flex:0 0 auto;
}
.calendar-day-dot.holiday-dot{background:var(--calendar-holiday)}
.calendar-day-dot.note-dot{background:#315b4b}
.calendar-day-entry{
    display:flex;
    align-items:flex-start;
    gap:.28em;
    width:100%;
    min-width:0;
    color:#5b6761;
    font-size:.68em;
    line-height:1.15;
    text-align:left;
}
.calendar-day-entry>span{
    display:block;
    padding:0;
    min-height:0;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    background:none!important;
    border:none!important;
}
.calendar-inline-note-icon{font-style:normal;color:#315b4b;line-height:1}
.calendar-live-days.compact .calendar-day-entry{display:none}
.calendar-live-notes,
.calendar-live-holidays{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:3%;
    font-size:.56rem;
    color:#6a746e;
}
.calendar-live-notes span,
.calendar-live-holidays span{
    padding:2px 6px;
    border-radius:999px;
    background:rgba(21,28,25,.05);
}
.calendar-live-notes b,
.calendar-live-holidays b{margin-right:3px;color:var(--calendar-title)}
.calendar-live-notes.compact,
.calendar-live-holidays.compact{gap:2px;font-size:.22rem;margin-top:1.5%}
.calendar-live-notes.compact span,
.calendar-live-holidays.compact span{padding:1px 3px}
.calendar-grid-preset-writing .calendar-day-entry{font-size:.72em;line-height:1.1}
.calendar-grid-preset-writing .calendar-live-days span{padding-top:4px}
.calendar-grid-preset-compact .calendar-day-entry{font-size:.6em}
.calendar-preview-root.month.composition-overlay .calendar-preview-calendar-surface{background-clip:padding-box}
.calendar-design-sheet.overlay-composition.transition-fade.grid-bottom .calendar-design-grid-preview::before{mask-image:linear-gradient(to bottom,transparent 0,#000 56%,#000 100%)}
.calendar-design-sheet.overlay-composition.transition-fade.grid-top .calendar-design-grid-preview::before{mask-image:linear-gradient(to top,transparent 0,#000 56%,#000 100%)}
.calendar-design-sheet.overlay-composition.transition-gradient.grid-bottom .calendar-design-grid-preview::before{mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.4) 24%,#000 62%,#000 100%)}
.calendar-design-sheet.overlay-composition.transition-gradient.grid-top .calendar-design-grid-preview::before{mask-image:linear-gradient(to top,transparent 0,rgba(0,0,0,.4) 24%,#000 62%,#000 100%)}
.calendar-live-days>span{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    min-height:24px;
    position:relative;
    box-sizing:border-box;
    text-align:inherit;
}
.calendar-live-days>span.calendar-adjacent-day{
    opacity:.48;
}
.calendar-live-days>span.calendar-adjacent-day .calendar-day-head>b{
    font-weight:500;
}
.calendar-live-days.compact>span{min-height:12px}
.calendar-day-head{
    position:static!important;
    display:flex!important;
    flex-direction:row!important;
    min-height:0!important;
    padding:0!important;
    box-sizing:border-box;
    justify-items:normal!important;
}
.calendar-day-dot{
    position:static!important;
    right:auto!important;
    top:auto!important;
    margin:0!important;
}
.calendar-day-entry>span{
    position:static!important;
    min-height:0!important;
    justify-items:normal!important;
    align-items:initial!important;
    padding:0!important;
}

/* Calendar preview fidelity + stronger typography 0.3.302 */
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar{
    --calendar-transition-overlap:15%;
}
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-fade::before,
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-gradient::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    z-index:0;
    pointer-events:none;
}
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-fade::before{
    background:linear-gradient(to bottom,transparent 0%,var(--calendar-plate-soft) 18%,var(--calendar-plate-solid) 56%,var(--calendar-plate-solid) 100%);
}
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-gradient::before{
    background:linear-gradient(to bottom,transparent 0%,var(--calendar-plate-soft) 26%,var(--calendar-plate-solid) 62%,var(--calendar-plate-solid) 100%);
}
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-fade:not([style*="top:0"] )::before,
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-gradient:not([style*="top:0"] )::before{
    top:calc(-1 * var(--calendar-transition-overlap));
    bottom:0;
}
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-fade[style*="top:0"]::before,
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-gradient[style*="top:0"]::before{
    top:0;
    bottom:calc(-1 * var(--calendar-transition-overlap));
    transform:rotate(180deg);
}
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-fade .calendar-preview-calendar-surface,
.calendar-preview-root.month.composition-overlay>.calendar-preview-calendar.transition-gradient .calendar-preview-calendar-surface{
    position:relative;
    z-index:1;
    background:transparent!important;
}

/* Template cards use the same approximately 115% transition zone. */
.calendar-design-sheet.overlay-composition .calendar-design-image{
    filter:brightness(var(--cal-art-brightness,1)) saturate(var(--cal-art-saturation,1)) blur(var(--cal-art-blur,0px));
}
.calendar-design-sheet.overlay-composition.transition-fade.grid-bottom .calendar-design-grid-preview::before,
.calendar-design-sheet.overlay-composition.transition-gradient.grid-bottom .calendar-design-grid-preview::before{
    top:-15%;bottom:0;
}
.calendar-design-sheet.overlay-composition.transition-fade.grid-top .calendar-design-grid-preview::before,
.calendar-design-sheet.overlay-composition.transition-gradient.grid-top .calendar-design-grid-preview::before{
    top:0;bottom:-15%;
}
.calendar-design-sheet.overlay-composition.transition-fade.grid-bottom .calendar-design-grid-preview::before{mask-image:linear-gradient(to bottom,transparent 0,#000 56%,#000 100%)}
.calendar-design-sheet.overlay-composition.transition-fade.grid-top .calendar-design-grid-preview::before{mask-image:linear-gradient(to top,transparent 0,#000 56%,#000 100%)}
.calendar-design-sheet.overlay-composition.transition-gradient.grid-bottom .calendar-design-grid-preview::before{mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.42) 26%,#000 62%,#000 100%)}
.calendar-design-sheet.overlay-composition.transition-gradient.grid-top .calendar-design-grid-preview::before{mask-image:linear-gradient(to top,transparent 0,rgba(0,0,0,.42) 26%,#000 62%,#000 100%)}

/* Only the actual day cell owns grid borders. Nested labels may never draw a second frame. */
.calendar-live-style-lines .calendar-live-days>span{border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line)}
.calendar-live-style-cells .calendar-live-days>span{border-right:var(--calendar-line-width,1px) solid var(--calendar-line);border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line)}
.calendar-live-style-cells .calendar-live-days>span:nth-child(7n+1){border-left:var(--calendar-line-width,1px) solid var(--calendar-line)}
.calendar-live-style-cells .calendar-live-days>span:nth-child(-n+7){border-top:var(--calendar-line-width,1px) solid var(--calendar-line)}
.calendar-live-style-lines .calendar-live-days>span>* ,
.calendar-live-style-cells .calendar-live-days>span>* ,
.calendar-live-style-circles .calendar-live-days>span>*{border:none!important;outline:none!important;box-shadow:none!important}

/* Semantic sizes should be visibly different. Giant dates approach the height of a day cell. */
.calendar-day-size-extra-small .calendar-live-days{font-size:clamp(.34rem,2.4cqh,.62rem)}
.calendar-day-size-small .calendar-live-days{font-size:clamp(.42rem,3.2cqh,.78rem)}
.calendar-day-size-normal .calendar-live-days{font-size:clamp(.52rem,4.4cqh,1rem)}
.calendar-day-size-large .calendar-live-days{font-size:clamp(.66rem,6.5cqh,1.45rem)}
.calendar-day-size-extra-large .calendar-live-days{font-size:clamp(.82rem,9.5cqh,2rem)}
.calendar-day-size-giant .calendar-live-days{font-size:clamp(1rem,14cqh,3rem)}
.calendar-day-size-extra-small .calendar-live-weekdays{font-size:clamp(.34rem,1.8cqh,.56rem)}
.calendar-day-size-small .calendar-live-weekdays{font-size:clamp(.40rem,2.2cqh,.64rem)}
.calendar-day-size-normal .calendar-live-weekdays{font-size:clamp(.46rem,2.7cqh,.74rem)}
.calendar-day-size-large .calendar-live-weekdays{font-size:clamp(.52rem,3.2cqh,.86rem)}
.calendar-day-size-extra-large .calendar-live-weekdays{font-size:clamp(.58rem,3.8cqh,1rem)}
.calendar-day-size-giant .calendar-live-weekdays{font-size:clamp(.64rem,4.4cqh,1.15rem)}
.calendar-title-size-extra-small .calendar-preview-calendar-surface>h2{font-size:clamp(.62rem,3cqh,1rem)}
.calendar-title-size-small .calendar-preview-calendar-surface>h2{font-size:clamp(.72rem,4cqh,1.25rem)}
.calendar-title-size-normal .calendar-preview-calendar-surface>h2{font-size:clamp(.85rem,5.2cqh,1.65rem)}
.calendar-title-size-large .calendar-preview-calendar-surface>h2{font-size:clamp(1rem,6.5cqh,2.1rem)}
.calendar-title-size-extra-large .calendar-preview-calendar-surface>h2{font-size:clamp(1.15rem,8cqh,2.6rem)}
.calendar-title-size-giant .calendar-preview-calendar-surface>h2{font-size:clamp(1.35rem,10cqh,3.2rem)}

/* Storefront template previews follow the same stronger semantic scale. */
.calendar-design-grid-preview.calendar-day-size-extra-small .calendar-design-days{font-size:.24rem}
.calendar-design-grid-preview.calendar-day-size-small .calendar-design-days{font-size:.32rem}
.calendar-design-grid-preview.calendar-day-size-normal .calendar-design-days{font-size:.42rem}
.calendar-design-grid-preview.calendar-day-size-large .calendar-design-days{font-size:.56rem}
.calendar-design-grid-preview.calendar-day-size-extra-large .calendar-design-days{font-size:.72rem}
.calendar-design-grid-preview.calendar-day-size-giant .calendar-design-days{font-size:.92rem}
.calendar-design-grid-preview.calendar-title-size-extra-large>strong{font-size:.9rem}
.calendar-design-grid-preview.calendar-title-size-giant>strong{font-size:1.08rem}

/* CAL-C preview/note stabilization 0.3.303 */
/* Note/holiday labels deliberately do not inherit giant day-number sizing. */
.calendar-day-entry{
    font-size:clamp(.30rem,1.45cqh,.56rem)!important;
    line-height:1.12;
}
.calendar-grid-preset-writing .calendar-day-entry{
    font-size:clamp(.32rem,1.65cqh,.62rem)!important;
}
.calendar-day-dot{
    width:clamp(3px,.30em,8px)!important;
    height:clamp(3px,.30em,8px)!important;
}
.calendar-live-notes,
.calendar-live-holidays{
    font-size:clamp(.34rem,1.45cqh,.62rem)!important;
}
.calendar-preview-root.compact .calendar-live-notes,
.calendar-preview-root.compact .calendar-live-holidays{
    font-size:.22rem!important;
}
/* On large/XL/giant date settings, inline labels are never allowed to compete
   with the large numeral; runtime also resolves their placement to footer. */
.calendar-day-size-large .calendar-day-entry,
.calendar-day-size-extra-large .calendar-day-entry,
.calendar-day-size-giant .calendar-day-entry{display:none!important}

/* Generated calendar sales previews 0.3.305 */
.calendar-design-preview{position:relative}
.calendar-generated-template-preview{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    z-index:20;
    opacity:0;
    transition:opacity .15s ease;
    background:transparent;
    pointer-events:none;
}
.calendar-design-preview.has-generated-preview .calendar-generated-template-preview{opacity:1}
.calendar-design-preview.has-generated-preview>.calendar-design-sheet{visibility:hidden}


/* CAL-C 0.3.309 – content-aware note footer + dedicated circle geometry */
/* Circle is a date treatment inside the day cell, not the day cell itself. */
.calendar-live-style-circles .calendar-live-weekdays>span:not(.calendar-week-number-heading){
    justify-content:center!important;
    padding-right:0!important;
    text-align:center!important;
}
.calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day){
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    justify-self:stretch!important;
    border:0!important;
    border-radius:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    container-type:size;
}
.calendar-live-style-circles .calendar-live-days>span>.calendar-day-head{
    width:min(72cqw,72cqh)!important;
    height:min(72cqw,72cqh)!important;
    min-width:0!important;
    min-height:0!important;
    aspect-ratio:1;
    box-sizing:border-box;
    border:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
    border-radius:50%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    position:relative!important;
}
.calendar-live-style-circles .calendar-live-days>span>.calendar-day-head>b{
    line-height:1!important;
    text-align:center!important;
    font-size:min(.88em,42cqh)!important;
}
.calendar-live-style-circles .calendar-day-dot{
    position:absolute!important;
    top:7%!important;
    right:7%!important;
}
.calendar-live-style-circles .calendar-live-days.compact>span>.calendar-day-head{
    width:min(76cqw,76cqh)!important;
    height:min(76cqw,76cqh)!important;
}
/* Footer chips are allowed to wrap naturally. The JS adds exactly the rendered
   personal-note height to the configured calendar percentage. */
.calendar-preview-root:not(.compact) .calendar-live-notes{
    flex:0 0 auto;
    max-height:none!important;
    overflow:visible!important;
    align-content:flex-start;
}

/* CAL-C 0.3.312 – stable month geometry */
/* Holiday footer space is reserved on every month when footer placement is active,
   so months with/without holidays keep the same date-grid height. */
.calendar-preview-root:not(.compact) .calendar-live-holidays{
    flex:0 0 2.2em;
    height:2.2em;
    min-height:2.2em;
    max-height:2.2em!important;
    overflow:hidden!important;
    align-content:flex-start;
}

/* CAL-C2 0.3.413 – vertical date-number placement for all non-circle month grids.
   Circle designs keep their own centered geometry. */
.calendar-preview-calendar:not(.calendar-live-style-circles).calendar-day-v-top .calendar-live-days>span{
    justify-content:flex-start;
}
.calendar-preview-calendar:not(.calendar-live-style-circles).calendar-day-v-center .calendar-live-days>span{
    justify-content:center;
}
.calendar-preview-calendar:not(.calendar-live-style-circles).calendar-day-v-bottom .calendar-live-days>span{
    justify-content:flex-end;
    padding-bottom:4px;
}
.calendar-preview-calendar:not(.calendar-live-style-circles).calendar-day-v-bottom .calendar-live-days.compact>span{padding-bottom:1px}

.calendar-design-grid-preview:not(.calendar-style-circles).calendar-day-v-top .calendar-design-days span{align-items:flex-start}
.calendar-design-grid-preview:not(.calendar-style-circles).calendar-day-v-center .calendar-design-days span{align-items:center}
.calendar-design-grid-preview:not(.calendar-style-circles).calendar-day-v-bottom .calendar-design-days span{align-items:flex-end}


/* CAL-C 0.3.315 – stable date alignment + non-layout marker overlays */
.calendar-day-head{
    overflow:visible!important;
}
.calendar-day-number{
    position:relative;
    display:inline-block;
    line-height:1;
    min-width:0;
}
.calendar-day-marker{
    position:absolute!important;
    z-index:3;
    pointer-events:none;
    margin:0!important;
    padding:0!important;
    flex:none!important;
}
.calendar-holiday-marker{
    width:.20em!important;
    height:.20em!important;
    border-radius:999px;
    background:var(--calendar-holiday);
    left:-.10em;
    top:-.06em;
}
.calendar-note-icon-marker{
    right:-.32em;
    top:-.34em;
    width:auto!important;
    height:auto!important;
    color:#315b4b;
    background:none!important;
    font-size:.42em!important;
    line-height:1!important;
    font-style:normal;
    font-weight:700;
    text-align:center;
}
.calendar-note-dot-marker{
    right:-.13em;
    top:-.06em;
    width:.20em!important;
    height:.20em!important;
    border-radius:999px;
    background:#315b4b;
}
.calendar-day-size-large .calendar-note-icon-marker,
.calendar-day-size-extra-large .calendar-note-icon-marker,
.calendar-day-size-giant .calendar-note-icon-marker{
    right:-.22em;
    top:-.22em;
    font-size:.34em!important;
}
.calendar-live-days.compact .calendar-note-icon-marker{
    right:-.18em;
    top:-.18em;
    font-size:.36em!important;
}
.calendar-live-style-circles .calendar-day-number{
    position:relative;
}
.calendar-live-style-circles .calendar-holiday-marker{
    left:-.18em;
    top:-.12em;
}
.calendar-live-style-circles .calendar-note-icon-marker{
    right:-.24em;
    top:-.24em;
}

/* CAL-C 0.3.317 – horizontal month strip preset */
.calendar-grid-preset-strip .calendar-preview-calendar-surface{
    justify-content:flex-end;
}
.calendar-live-strip{
    position:relative;
    display:grid;
    grid-template-columns:repeat(var(--calendar-strip-days,31),minmax(0,1fr));
    align-items:end;
    gap:0;
    width:100%;
    min-height:0;
    flex:0 0 auto;
    border-top:var(--calendar-line-width,1px) solid var(--calendar-line);
    border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line);
}
.calendar-live-strip>span{
    position:relative;
    min-width:0;
    min-height:2.8em;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.08em;
    border-right:var(--calendar-line-width,1px) solid color-mix(in srgb,var(--calendar-line) 65%,transparent);
    color:inherit;
    box-sizing:border-box;
}
.calendar-live-strip>span:first-child{
    border-left:var(--calendar-line-width,1px) solid color-mix(in srgb,var(--calendar-line) 65%,transparent);
}
.calendar-live-strip>span.weekend,
.calendar-live-strip>span.holiday{
    color:var(--calendar-weekend);
}
.calendar-live-strip small{
    font-size:clamp(.26rem,.72cqh,.48rem);
    line-height:1;
    opacity:.72;
    font-weight:700;
}
.calendar-live-strip b{
    font-size:clamp(.42rem,2.1cqh,.9rem);
    line-height:1;
    font-weight:700;
}
.calendar-day-size-small .calendar-live-strip b{font-size:clamp(.38rem,1.8cqh,.76rem)}
.calendar-day-size-normal .calendar-live-strip b{font-size:clamp(.42rem,2.1cqh,.9rem)}
.calendar-day-size-large .calendar-live-strip b{font-size:clamp(.48rem,2.5cqh,1.02rem)}
.calendar-day-size-extra-large .calendar-live-strip b{font-size:clamp(.54rem,2.9cqh,1.12rem)}
.calendar-day-size-giant .calendar-live-strip b{font-size:clamp(.60rem,3.3cqh,1.24rem)}
.calendar-live-strip.compact>span{min-height:1.8em}
.calendar-live-strip.compact small{font-size:.18rem}
.calendar-live-strip.compact b{font-size:.26rem}
.calendar-strip-note-icon{
    position:absolute;
    top:-.35em;
    right:50%;
    transform:translateX(50%);
    font-style:normal;
    font-size:.65em;
    line-height:1;
    color:#315b4b;
    pointer-events:none;
}
.calendar-design-strip{
    display:grid;
    grid-template-columns:repeat(31,minmax(0,1fr));
    width:100%;
    margin-top:auto;
    border-top:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd);
    border-bottom:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd);
}
.calendar-design-strip span{
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:1px;
    min-height:18px;
    border-right:var(--cal-line-width,1px) solid color-mix(in srgb,var(--cal-line,#d0d5dd) 65%,transparent);
    font-size:.28rem;
    line-height:1;
}
.calendar-design-strip small{font-size:.16rem;opacity:.7}
.calendar-design-strip .weekend{color:var(--cal-weekend,#d92d20)}


/* CAL-C 0.3.327 – isolate large-builder month strip and restore circle scale.
   These rules are intentionally preset-specific and must not affect classic/minimal grids. */
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-rows:max-content!important;
    align-content:end!important;
    justify-content:stretch!important;
    min-height:0!important;
    overflow:hidden!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface>h2{
    grid-column:1!important;
    margin:0 0 4%!important;
    min-height:1em!important;
    flex:none!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip{
    grid-column:1!important;
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    height:auto!important;
    max-height:none!important;
    flex:none!important;
    align-self:end!important;
    visibility:visible!important;
    opacity:1!important;
    overflow:visible!important;
    position:relative!important;
    z-index:2!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip>span{
    min-height:48px!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-holidays,
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-notes{
    grid-column:1!important;
    flex:none!important;
    margin-top:6px!important;
}

/* Circle dates remain tied to the stable row geometry, but the ring itself should
   use almost the full available day cell instead of looking like a tiny marker. */
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head{
    width:min(92cqw,92cqh)!important;
    height:min(92cqw,92cqh)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head>b{
    font-size:min(.98em,68cqh)!important;
}


/* CAL-C 0.3.328 – builder-only preset sizing parity */
/* Strip: keep title and dates inside the larger render area selected by JS. */
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    overflow:hidden!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface>h2{
    flex:0 0 auto!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    margin:0 0 3%!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip{
    flex:0 0 auto!important;
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    min-height:3.2em!important;
    height:auto!important;
    overflow:visible!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip>span{
    min-height:3.2em!important;
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip small,
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip b{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
}

/* Circle: semantic date size drives the ring as well as the numeral. The old
   cqh/min combination made extra-large circles look like tiny markers. */
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-small .calendar-live-days{font-size:clamp(.70rem,2.0cqw,1.05rem)!important}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-normal .calendar-live-days{font-size:clamp(.82rem,2.5cqw,1.25rem)!important}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-large .calendar-live-days{font-size:clamp(.95rem,3.0cqw,1.50rem)!important}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-extra-large .calendar-live-days{font-size:clamp(1.08rem,3.5cqw,1.80rem)!important}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-giant .calendar-live-days{font-size:clamp(1.22rem,4.0cqw,2.05rem)!important}
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head{
    width:1.95em!important;
    height:1.95em!important;
    max-width:92%!important;
    max-height:92%!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head>b{
    font-size:1em!important;
    line-height:1!important;
}


/* CAL-C 0.3.329 – authoritative storefront-builder parity for strip + circles.
   Keep these rules last so previous experimental overrides cannot distort geometry. */
.calendar-preview-root:not(.compact) .calendar-live-grid{
    align-content:stretch!important;
    grid-template-rows:minmax(0,1fr)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-grid>.calendar-live-days,
.calendar-preview-root:not(.compact) .calendar-live-grid>.calendar-live-weeknums{
    min-height:0!important;
    height:100%!important;
}

/* A circle is always a square contained by the day cell. Size follows the
   semantic day-size setting but may never exceed the cell's shortest side. */
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day){
    container-type:size!important;
    overflow:visible!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head{
    width:min(var(--calendar-circle-size,76cqh),88cqw)!important;
    height:auto!important;
    aspect-ratio:1 / 1!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;
    flex:0 0 auto!important;
    border-radius:50%!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-extra-small{--calendar-circle-size:48cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-small{--calendar-circle-size:58cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-normal{--calendar-circle-size:68cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-large{--calendar-circle-size:76cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-extra-large{--calendar-circle-size:84cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-giant{--calendar-circle-size:90cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head>b{
    font-size:min(.88em,58cqh,58cqw)!important;
    line-height:1!important;
}

/* Month strip style parity. Base strip has no decoration; the selected calendar
   style decides what gets drawn. */
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip{
    border:0!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip>span{
    border:0!important;
    min-height:var(--calendar-strip-cell-height,3.2em)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-lines.calendar-grid-preset-strip .calendar-live-strip{
    border-top:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
    border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip .calendar-live-strip{
    border-top:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
    border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
    border-left:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip .calendar-live-strip>span{
    border-right:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-grid-preset-strip .calendar-live-strip>span{
    position:relative!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-grid-preset-strip .calendar-live-strip>span>b{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:1.65em!important;
    height:1.65em!important;
    aspect-ratio:1!important;
    border:var(--calendar-line-width,1px) solid var(--calendar-line)!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
}

/* Semantic strip sizes must be visibly different in the large builder. */
.calendar-preview-root:not(.compact) .calendar-day-size-extra-small.calendar-grid-preset-strip{--calendar-strip-cell-height:2.2em}
.calendar-preview-root:not(.compact) .calendar-day-size-small.calendar-grid-preset-strip{--calendar-strip-cell-height:2.6em}
.calendar-preview-root:not(.compact) .calendar-day-size-normal.calendar-grid-preset-strip{--calendar-strip-cell-height:3.0em}
.calendar-preview-root:not(.compact) .calendar-day-size-large.calendar-grid-preset-strip{--calendar-strip-cell-height:3.5em}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-large.calendar-grid-preset-strip{--calendar-strip-cell-height:4.1em}
.calendar-preview-root:not(.compact) .calendar-day-size-giant.calendar-grid-preset-strip{--calendar-strip-cell-height:4.8em}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-small.calendar-grid-preset-strip .calendar-live-strip b{font-size:.48rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-small.calendar-grid-preset-strip .calendar-live-strip b{font-size:.58rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-normal.calendar-grid-preset-strip .calendar-live-strip b{font-size:.72rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-large.calendar-grid-preset-strip .calendar-live-strip b{font-size:.88rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-large.calendar-grid-preset-strip .calendar-live-strip b{font-size:1.04rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-giant.calendar-grid-preset-strip .calendar-live-strip b{font-size:1.22rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-small.calendar-grid-preset-strip .calendar-live-strip small{font-size:.28rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-small.calendar-grid-preset-strip .calendar-live-strip small{font-size:.31rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-normal.calendar-grid-preset-strip .calendar-live-strip small{font-size:.34rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-large.calendar-grid-preset-strip .calendar-live-strip small{font-size:.38rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-large.calendar-grid-preset-strip .calendar-live-strip small{font-size:.42rem!important}
.calendar-preview-root:not(.compact) .calendar-day-size-giant.calendar-grid-preset-strip .calendar-live-strip small{font-size:.46rem!important}


/* CAL-C 0.3.330 – month-strip title + width-safe typography.
   Strip-only rules: do not affect classic/writing/compact/circle month grids. */
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto auto auto!important;
    align-content:end!important;
    justify-content:stretch!important;
    overflow:visible!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface>h2{
    display:block!important;
    position:relative!important;
    visibility:visible!important;
    opacity:1!important;
    margin:0 0 3%!important;
    min-height:1.05em!important;
    line-height:1.05!important;
    z-index:3!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip{
    width:100%!important;
    min-width:0!important;
    align-self:end!important;
    overflow:visible!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip>span{
    min-width:0!important;
    overflow:visible!important;
    container-type:inline-size!important;
    padding-inline:1px!important;
}
/* A 31-column strip is width-limited. Semantic sizes remain visibly different,
   but two-digit dates are capped by the actual cell width so they never collide. */
.calendar-preview-root:not(.compact) .calendar-day-size-extra-small.calendar-grid-preset-strip .calendar-live-strip b{font-size:min(.62rem,44cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-small.calendar-grid-preset-strip .calendar-live-strip b{font-size:min(.74rem,50cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-normal.calendar-grid-preset-strip .calendar-live-strip b{font-size:min(.88rem,56cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-large.calendar-grid-preset-strip .calendar-live-strip b{font-size:min(1.02rem,62cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-large.calendar-grid-preset-strip .calendar-live-strip b{font-size:min(1.16rem,68cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-giant.calendar-grid-preset-strip .calendar-live-strip b{font-size:min(1.32rem,72cqw)!important}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip b{
    line-height:1!important;
    white-space:nowrap!important;
    max-width:100%!important;
}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-small.calendar-grid-preset-strip .calendar-live-strip small{font-size:min(.30rem,25cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-small.calendar-grid-preset-strip .calendar-live-strip small{font-size:min(.33rem,27cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-normal.calendar-grid-preset-strip .calendar-live-strip small{font-size:min(.36rem,29cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-large.calendar-grid-preset-strip .calendar-live-strip small{font-size:min(.40rem,31cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-extra-large.calendar-grid-preset-strip .calendar-live-strip small{font-size:min(.44rem,33cqw)!important}
.calendar-preview-root:not(.compact) .calendar-day-size-giant.calendar-grid-preset-strip .calendar-live-strip small{font-size:min(.48rem,35cqw)!important}

/* CAL-C 0.3.331 – final strip spacing + circle spread tuning */
/* Circles: use more of the available calendar width while staying perfectly round. */
.calendar-preview-root:not(.compact) .calendar-live-style-circles .calendar-live-days>span:not(.calendar-empty-day)>.calendar-day-head{
    width:min(var(--calendar-circle-size,82cqh),96cqw)!important;
}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-extra-small{--calendar-circle-size:54cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-small{--calendar-circle-size:64cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-normal{--calendar-circle-size:74cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-large{--calendar-circle-size:82cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-extra-large{--calendar-circle-size:90cqh}
.calendar-preview-root:not(.compact) .calendar-live-style-circles.calendar-day-size-giant{--calendar-circle-size:94cqh}

/* Strip: make the internal order explicit so the title can never share the line row. */
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-preview-calendar-surface>h2{
    grid-row:1!important;
    align-self:end!important;
    margin:0 0 .55em!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-strip{
    grid-row:2!important;
    margin-top:0!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-holidays{
    grid-row:3!important;
}
.calendar-preview-root:not(.compact) .calendar-grid-preset-strip .calendar-live-notes{
    grid-row:4!important;
}
/* A line-style strip should read as a thin ruled strip, not a line behind the title. */
.calendar-preview-root:not(.compact) .calendar-live-style-lines.calendar-grid-preset-strip .calendar-live-strip{
    margin-top:.25em!important;
}

/* Field-style strip cells should stay compact even when the numeral size is large. */
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip.calendar-day-size-extra-small{--calendar-strip-cell-height:1.85em}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip.calendar-day-size-small{--calendar-strip-cell-height:2.00em}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip.calendar-day-size-normal{--calendar-strip-cell-height:2.15em}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip.calendar-day-size-large{--calendar-strip-cell-height:2.35em}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip.calendar-day-size-extra-large{--calendar-strip-cell-height:2.55em}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip.calendar-day-size-giant{--calendar-strip-cell-height:2.80em}
.calendar-preview-root:not(.compact) .calendar-live-style-cells.calendar-grid-preset-strip .calendar-live-strip>span{
    justify-content:center!important;
    padding-block:.12em!important;
}


/* Collage right rail polish 0.3.321 */
@media(min-width:761px){
    .creative-summary{overflow:hidden}
    .creative-accordion{
        flex:1 1 auto;
        min-height:0;
        display:flex;
        flex-direction:column;
        overflow:hidden;
    }
    .creative-accordion-item{
        display:flex;
        flex-direction:column;
        min-height:auto;
    }
    .creative-accordion-item.open{
        flex:1 1 auto;
        min-height:0;
    }
    .creative-accordion-item.open>.creative-accordion-body{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
        overscroll-behavior:contain;
        scrollbar-gutter:stable;
        padding-right:8px;
        max-height:none;
    }
}

.creative-product-options{display:grid;gap:13px;min-width:0}
.creative-option-group{display:grid;gap:7px;min-width:0}
.creative-option-group+.creative-option-group{border-top:1px solid #ece7df;padding-top:12px}
.creative-option-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.creative-option-group-head>div{display:flex;align-items:center;gap:8px;min-width:0}
.creative-option-group-head strong{font-size:.9rem;color:#23312d;line-height:1.15}
.creative-option-group-head>small{flex:0 0 auto;color:#78827e;font-size:.68rem;font-weight:750}
.creative-option-choices{display:grid;gap:6px}
.creative-option-choice-row{position:relative;display:block}
.creative-option-choice,
.creative-option-choices>button{
    position:relative;
    min-height:52px;
    width:100%;
    border:1px solid #dcd7cf;
    border-radius:9px;
    background:#fff;
    color:#27342f;
    padding:8px 84px 8px 10px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    cursor:pointer;
    text-align:left;
    font:inherit;
    transition:border-color .12s ease,background .12s ease,box-shadow .12s ease;
}
.creative-option-choice.has-inline-info{padding-right:84px}
.creative-option-choice:hover,
.creative-option-choices>button:hover{border-color:#aeb8b3;background:#fbfaf7}
.creative-option-choice>span,
.creative-option-choices>button>span{
    display:flex;
    align-items:center;
    min-width:0;
    max-width:100%;
    font-size:.79rem;
    font-weight:780;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.creative-option-choice>small,
.creative-option-choices>button>small{
    position:absolute;
    right:10px;
    top:8px;
    display:block;
    color:#6d7873;
    font-size:.7rem;
    font-weight:750;
    white-space:nowrap;
    text-align:right;
}
.creative-option-choice.active,
.creative-option-choices>button.active{
    border-color:var(--brand);
    background:#edf4f1;
    box-shadow:0 0 0 1px var(--brand);
    padding-right:84px;
}
.creative-option-choice.has-inline-info.active{padding-right:84px}
.creative-option-choice.active::after,
.creative-option-choices>button.active::after{
    content:'✓';
    position:absolute;
    right:38px;
    bottom:8px;
    width:17px;
    height:17px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--brand);
    color:#fff;
    font-size:.65rem;
    font-weight:900;
}
.creative-option-choice:not(.has-inline-info).active::after,
.creative-option-choices>button.active::after{right:10px}
.creative-option-choice.active>small,
.creative-option-choices>button.active>small{color:#355148}
.creative-option-info,
.creative-option-choice-info{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:20px;
    height:20px;
    min-height:20px;
    border:1px solid #aeb7b3;
    border-radius:50%;
    background:#fff;
    color:#52605b;
    font-size:.7rem;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    padding:0;
}
.creative-option-choice-info{
    position:absolute;
    right:10px;
    bottom:8px;
    z-index:2;
    width:22px;
    height:22px;
    min-height:22px;
    border-color:#c8d0cb;
    background:#f9faf8;
}
.creative-option-info:hover,
.creative-option-choice-info:hover{border-color:var(--brand);color:var(--brand);background:#f5f9f7}
.creative-option-info-text,
.creative-option-choice-info-panel{display:none!important}

.creative-option-popover{
    position:fixed;
    z-index:10050;
    display:grid;
    gap:7px;
    padding:12px 34px 12px 12px;
    border:1px solid #d9d4cc;
    border-radius:12px;
    background:#fff;
    box-shadow:0 14px 38px rgba(28,43,37,.18);
    color:#34423d;
    font-size:.77rem;
    line-height:1.45;
}
.creative-option-popover strong{font-size:.83rem;color:#21302b;padding-right:4px}
.creative-option-popover p{margin:0}
.creative-option-popover img{display:block;width:100%;max-height:190px;object-fit:contain;object-position:center;border-radius:8px;background:#f6f3ec;padding:8px;box-sizing:border-box}
.creative-option-popover-close{
    position:absolute;
    right:7px;
    top:6px;
    width:24px;
    height:24px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#66726d;
    font-size:1.05rem;
    line-height:1;
    cursor:pointer;
}
.creative-option-popover-close:hover{background:#f1efea;color:#25332e}

@media(max-width:760px){
    .creative-summary{overflow:auto}
    .creative-accordion{display:block;overflow:visible}
    .creative-accordion-item{display:block}
    .creative-accordion-item.open>.creative-accordion-body{max-height:none;overflow:visible}
}

/* UP-02 shared upload manager – Classic Prints local-first state */
.photo-upload-state-slot{display:contents}
.photo-upload-state{
    position:absolute;
    left:10px;
    bottom:10px;
    z-index:4;
    display:inline-flex;
    align-items:center;
    gap:5px;
    max-width:calc(100% - 20px);
    padding:5px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    box-shadow:0 2px 10px rgba(20,35,30,.14);
    color:#5f6d67;
    font-size:9px;
    font-weight:800;
    line-height:1;
    backdrop-filter:blur(4px);
}
.photo-upload-state{
    min-width:64px;
    justify-content:center;
}
.photo-upload-state.uploading{color:#315f50}
.photo-upload-state.failed{background:#fff1ee;color:#a13f2d;min-width:auto}

/* UP-03 persistent upload / checkout handoff 0.3.333 */
.checkout-upload-gate{
    display:grid;
    gap:6px;
    margin:12px 0;
    padding:11px 12px;
    border:1px solid #ddd7cd;
    border-radius:11px;
    background:#f8f6f1;
    color:#43514c;
}
.checkout-upload-gate.hidden{display:none}
.checkout-upload-gate strong{font-size:.78rem}
.checkout-upload-gate span{font-size:.72rem;line-height:1.4;color:#66736e}
.checkout-upload-gate>div{height:5px;overflow:hidden;border-radius:999px;background:#e5e1d9}
.checkout-upload-gate>div>i{display:block;height:100%;width:0;border-radius:inherit;background:var(--brand);transition:width .2s ease}

/* UP-03 0.3.335 – explicit draft/image cleanup for testing and restart */
.photo-workspace-footer{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.photo-workspace-footer .reset-order-link.danger{color:#914a43;text-decoration-color:rgba(145,74,67,.45)}
.photo-workspace-footer .reset-order-link.danger:hover{color:#733832;text-decoration-color:currentColor}
.photo-workspace-footer .reset-order-link:disabled{opacity:.55;cursor:wait}


/* UP-05 global storefront upload status */
.global-upload-status{position:fixed;right:20px;bottom:20px;z-index:95;width:min(340px,calc(100vw - 28px));filter:drop-shadow(0 12px 30px rgba(20,36,31,.16))}
.global-upload-status.hidden{display:none}
.global-upload-status-compact{margin-left:auto;min-height:52px;max-width:100%;border:1px solid rgba(23,52,47,.13);border-radius:18px;background:rgba(255,253,249,.97);backdrop-filter:blur(14px);display:flex;align-items:center;gap:10px;padding:8px 11px 8px 9px;color:var(--ink);cursor:pointer;box-shadow:0 8px 22px rgba(20,36,31,.08)}
.global-upload-status-icon{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--brand);color:white;font-weight:900;font-size:16px;flex:none}
.global-upload-status-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.15}
.global-upload-status-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.global-upload-status-copy small{margin-top:4px;color:var(--muted);font-size:10px}
.global-upload-status-chevron{font-size:12px;color:var(--muted);transition:transform .16s ease}
.global-upload-status.expanded .global-upload-status-chevron{transform:rotate(180deg)}
.global-upload-status.complete .global-upload-status-icon{background:#477763}
.global-upload-status.has-failures .global-upload-status-icon{background:#a34b3a}
.global-upload-status-panel{margin-top:8px;padding:16px;border:1px solid rgba(23,52,47,.12);border-radius:18px;background:rgba(255,253,249,.985);box-shadow:0 16px 40px rgba(20,36,31,.14)}
.global-upload-status-panel.hidden{display:none}
.global-upload-status-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.global-upload-status-heading>div{display:flex;flex-direction:column;gap:3px}
.global-upload-status-heading strong{font-size:13px}
.global-upload-status-heading small{font-size:10px;color:var(--muted)}
.global-upload-status-heading button{border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 2px}
.global-upload-status-track{height:7px;border-radius:999px;background:#e7e6e0;overflow:hidden;margin:14px 0}
.global-upload-status-track span{display:block;height:100%;width:0;background:var(--brand);border-radius:inherit;transition:width .22s ease}
.global-upload-status.has-failures .global-upload-status-track span{background:#a34b3a}
.global-upload-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.global-upload-status-grid span{display:flex;min-width:0;flex-direction:column;gap:3px;padding:8px 5px;border-radius:10px;background:#f4f2ed;text-align:center;font-size:9px;color:var(--muted)}
.global-upload-status-grid b{font-size:13px;color:var(--ink)}
.global-upload-status-grid .global-upload-failed-stat.active{background:#fff0ed;color:#9b4434}
.global-upload-status-grid .global-upload-failed-stat.active b{color:#9b4434}
.global-upload-status-remaining{display:block;margin-top:11px;font-size:10px;color:var(--muted);line-height:1.35}
@media(max-width:600px){.global-upload-status{right:14px;bottom:14px;width:min(330px,calc(100vw - 28px))}.global-upload-status-copy strong{max-width:210px}}

.global-upload-status-actions{display:flex;gap:8px;margin-top:12px}
.global-upload-status-actions.hidden{display:none}
.global-upload-status-actions button,.global-upload-status-actions a{flex:1;min-height:34px;border-radius:10px;border:1px solid rgba(23,52,47,.13);padding:7px 10px;font:inherit;font-size:10px;font-weight:800;text-align:center;text-decoration:none;cursor:pointer}
.global-upload-status-actions button{background:var(--brand);color:white}
.global-upload-status-actions a{background:#f4f2ed;color:var(--ink);display:grid;place-items:center}
.photo-upload-state.photo-upload-retry{border:0;cursor:pointer;font:inherit}
.photo-upload-state.photo-upload-retry:hover{filter:brightness(.97)}

.classic-upload-progress-hint{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:11px;
    line-height:1.35;
}

/* UP-06 final checkout upload gate */
.checkout-upload-gate{margin:12px 0;padding:13px;border:1px solid rgba(183,132,33,.24);border-radius:14px;background:#fffaf0}
.checkout-upload-gate.hidden{display:none}
.checkout-upload-gate-head{display:flex;align-items:flex-start;gap:10px}
.checkout-upload-gate-icon{width:30px;height:30px;border-radius:10px;background:#f2d17d;display:grid;place-items:center;font-weight:900;flex:none}
.checkout-upload-gate-head>div{display:flex;flex-direction:column;gap:3px}
.checkout-upload-gate-head strong{font-size:12px}
.checkout-upload-gate-head>div>span{font-size:10px;line-height:1.35;color:var(--muted)}
.checkout-upload-gate-track{height:6px;margin-top:11px;border-radius:999px;background:#e9e5da;overflow:hidden}
.checkout-upload-gate-track i{display:block;height:100%;width:0;background:var(--brand);border-radius:inherit;transition:width .2s ease}
.checkout-upload-gate-actions{display:flex;gap:7px;margin-top:10px}
.checkout-upload-gate-actions.hidden{display:none}
.checkout-upload-gate-actions button,.checkout-upload-gate-actions a{flex:1;min-height:34px;border-radius:10px;padding:7px 10px;border:1px solid rgba(23,52,47,.13);font:inherit;font-size:10px;font-weight:800;text-align:center;text-decoration:none}
.checkout-upload-gate-actions button{background:var(--brand);color:#fff;cursor:pointer}
.checkout-upload-gate-actions a{display:grid;place-items:center;background:#fff;color:var(--ink)}

/* 0.3.348 – checkout upload gate visual cleanup */
.checkout-upload-gate{
    width:100%;
    box-sizing:border-box;
    overflow:visible;
    margin:14px 0 16px;
    padding:14px 15px 13px;
    border:1px solid rgba(183,132,33,.28);
    border-radius:14px;
    background:#fffaf0;
}
.checkout-upload-gate-head{
    display:grid;
    grid-template-columns:30px minmax(0,1fr);
    align-items:start;
    gap:10px;
    min-width:0;
}
.checkout-upload-gate-head>div{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:4px;
}
.checkout-upload-gate-head strong{
    display:block;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    font-size:12px;
    line-height:1.3;
}
.checkout-upload-gate-head>div>span{
    display:block;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    font-size:10px;
    line-height:1.4;
    color:var(--muted);
}
.checkout-upload-gate-track{
    width:100%;
    min-width:0;
    height:6px;
    margin:12px 0 0;
    border-radius:999px;
    background:#e9e5da;
    overflow:hidden;
}
.checkout-upload-gate-track i{
    display:block;
    height:100%;
    min-width:0;
    border-radius:999px;
    background:var(--brand);
}
.checkout-upload-gate-actions{
    width:100%;
    min-width:0;
}
.checkout-layout button[type="submit"][disabled]{
    cursor:wait;
}

/* 0.3.349 – prevent generic cart-summary direct-child flex rule from squeezing checkout upload gate */
.cart-summary > .checkout-upload-gate{
    display:block !important;
    justify-content:initial !important;
    font-size:inherit;
    margin:14px 0 16px;
}

/* Ready-time live refresh */
#normalReadyTimeNotices{display:contents}
#normalReadyTimeNotices>span{font-size:10px;color:#6f7d78;max-width:620px;line-height:1.4}


/* 0.3.356 order-page header cleanup */
.order-page{padding:18px 0 90px}
.order-topline{margin-bottom:18px}
.order-heading-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;margin:0 0 18px}
.order-heading-main{min-width:0;display:grid;gap:8px}
.order-heading-compact h1{margin:0;font-size:38px;line-height:1.02}
.order-heading-compact .eyebrow{margin-bottom:0}
.product-lead.compact{max-width:760px;margin:0;color:#66736f;font-size:14px;line-height:1.55}
.product-info-actions.compact{margin-top:2px}
.ready-time-stack-compact{justify-content:flex-end;align-self:start;margin:0;max-width:420px}
.ready-time-stack-compact .ready-time-banner{min-width:170px}
.ready-time-stack-compact .ready-time-banner small{font-size:10px}
.ready-time-stack-compact .ready-time-banner strong{font-size:14px}
.price-list-product-note{display:grid;gap:12px;background:#f7f4ed;border:1px solid #e2ddd3;border-radius:16px;padding:14px 16px;margin:4px 0 18px}
.price-list-note-block{display:grid;gap:5px}
.price-list-note-block span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6f7a76}
.price-list-note-block strong{font-size:16px;color:var(--ink)}
.price-list-note-block p{margin:0;color:#5f6b67;font-size:12px;line-height:1.55}
.print-row{grid-template-columns:minmax(0,1fr) 28px auto auto auto 24px;align-items:center}
.print-row.no-surface{grid-template-columns:minmax(0,1fr) 28px auto auto 24px}
.print-info-btn{width:28px;height:28px;border:1px solid #d7d3ca;border-radius:999px;background:#fff;color:var(--brand);font-size:12px;font-weight:800;cursor:pointer;display:grid;place-items:center;padding:0}
.print-info-btn:hover{border-color:#9aada6;background:#f4f8f6}
.preview-format{display:grid;gap:2px}
.preview-format small{display:block;color:var(--muted);font-size:9px;margin-top:0}
.workspace-toolbar{padding:12px 16px}
@media(max-width:1080px){
  .order-heading-compact{grid-template-columns:1fr}
  .ready-time-stack-compact{justify-content:flex-start;max-width:none}
}
@media(max-width:600px){
  .order-page{padding-top:12px}
  .order-topline{margin-bottom:14px}
  .order-heading-compact h1{font-size:34px}
  .ready-time-stack-compact{display:grid;gap:9px}
  .product-lead.compact{font-size:13px}
  .print-row,.print-row.no-surface{grid-template-columns:minmax(0,1fr) 28px auto 24px;row-gap:7px}
  .print-row .surface-select,.print-row .qty,.print-row .edit-photo{grid-column:auto}
}

/* 0.3.357 order-page polish and price-list info cleanup */
.order-topline{justify-content:flex-end;margin-bottom:12px}
.order-heading-compact{margin:0 0 14px;grid-template-columns:minmax(0,1fr) auto;gap:22px}
.order-heading-main{gap:12px}
.order-heading-compact h1{font-size:42px;line-height:1}
.product-info-actions.compact{margin-top:0}
.price-list-button-large{display:inline-flex;align-items:center;justify-content:center;min-height:62px;padding:14px 18px;border-radius:16px;font-size:15px;font-weight:800;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.price-list-button-large:hover{background:#f6f8f6}
.ready-time-stack-compact{gap:10px}
.ready-time-stack-compact .ready-time-banner,.price-list-button-large{min-width:190px}
.price-list-product-note{display:block;background:transparent;border:0;border-radius:0;padding:0;margin:0 0 16px}
.price-list-product-detail{display:grid;gap:8px}
.price-list-product-detail h3{margin:0;font-size:16px}
.price-list-product-detail p{margin:0;color:#5f6b67;font-size:13px;line-height:1.6}
.price-list-category{gap:12px}
.price-list-category-head{display:grid;gap:6px}
.price-list-category-head h3{margin:0;padding-bottom:7px;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.price-list-category-head p{margin:0;color:#5f6b67;font-size:12px;line-height:1.6}
.price-list-block{padding:13px 14px;display:grid;gap:8px}
.price-list-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.price-list-block h3{margin:0;font-size:12px}
.price-list-inline-info{width:26px;height:26px;border:1px solid #d7d3ca;border-radius:999px;background:#fff;color:var(--brand);font-size:12px;font-weight:800;cursor:pointer;display:grid;place-items:center;padding:0;flex:0 0 auto}
.price-list-inline-info:hover,.price-list-inline-info.active{border-color:#9aada6;background:#f4f8f6}
.price-list-inline-description{display:grid;gap:6px;padding:8px 10px;border:1px solid #ebe6da;border-radius:10px;background:#faf8f2}
.price-list-inline-description p{margin:0;color:#5f6b67;font-size:12px;line-height:1.55}
.print-row{grid-template-columns:minmax(0,1fr) 28px minmax(84px,112px) 86px auto 20px;gap:8px;padding:7px 10px}
.print-row.no-surface{grid-template-columns:minmax(0,1fr) 28px 86px auto 20px}
.print-row .edit-photo{white-space:nowrap}
.print-row .remove-print{font-size:16px}
.print-info-btn{align-self:center}
.preview-format span{font-size:11px}
.preview-format small{font-size:9px}
@media(max-width:1080px){
  .order-heading-compact{grid-template-columns:1fr}
  .ready-time-stack-compact{justify-content:flex-start}
}
@media(max-width:760px){
  .order-topline{margin-bottom:10px}
  .order-heading-compact h1{font-size:34px}
  .price-list-button-large,.ready-time-stack-compact .ready-time-banner{min-width:0;width:100%}
  .ready-time-stack-compact{grid-template-columns:1fr}
  .print-row,.print-row.no-surface{grid-template-columns:minmax(0,1fr) 28px 86px 20px;row-gap:8px}
  .print-row .surface-select{grid-column:1/3;grid-row:2}
  .print-row .qty{grid-column:3;grid-row:1/3}
  .print-row .edit-photo{grid-column:1/3;grid-row:3;justify-self:start}
  .print-row .remove-print{grid-column:4;grid-row:1/3;align-self:center}
  .print-row.no-surface .qty{grid-column:3;grid-row:1/3}
  .print-row.no-surface .edit-photo{grid-column:1/3;grid-row:2}
  .print-row.no-surface .remove-print{grid-column:4;grid-row:1/3}
}


/* 0.3.358 classic order header, one-line print rows and price-list descriptions */
.order-heading-compact{grid-template-columns:minmax(0,1fr) auto;align-items:start;margin:16px 0 20px}
.order-heading-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.order-heading-actions .price-list-button-large{min-height:auto;min-width:180px;height:auto;padding:12px 16px}
.order-heading-actions .ready-time-stack-compact{margin:0;max-width:none;flex-wrap:nowrap}
.order-heading-actions .ready-time-banner{min-width:180px}
.price-list-category>.price-list-category-head{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}
.price-list-category>.price-list-category-head h3{display:block;width:100%;margin:0;padding:0 0 7px;border-bottom:1px solid var(--line)}
.price-list-category>.price-list-category-head p{display:block;width:100%;margin:0;color:#5f6b67;font-size:12px;line-height:1.55}
.price-list-category>.price-list-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.price-list-product-note{margin:0 0 14px;padding:0;border:0;background:transparent}
.price-list-product-detail p{margin:0;color:#5f6b67;font-size:13px;line-height:1.55}
.price-list-inline-description{margin-top:2px}
.print-row,.print-row.has-surface{grid-template-columns:minmax(58px,1fr) 24px minmax(68px,78px) 68px 38px 16px!important;gap:4px!important;padding:6px!important;padding-right:6px!important;overflow:hidden!important;align-items:center!important}
.print-row.no-surface{grid-template-columns:minmax(58px,1fr) 24px 68px 38px 16px!important}
.print-row .surface-select{min-width:0!important;width:100%!important;max-width:78px!important;padding:6px 18px 6px 6px!important;font-size:9px!important;border-radius:8px!important}
.print-row .qty{width:68px!important;min-width:68px!important}
.print-row .qty button{width:20px!important;height:26px!important;padding:0!important}
.print-row .qty input{width:28px!important;height:26px!important;padding:0!important;font-size:10px!important}
.print-row .edit-photo{position:static!important;grid-column:auto!important;grid-row:auto!important;justify-self:center!important;width:38px!important;min-width:38px!important;padding:0!important;font-size:9px!important;line-height:1!important;text-align:center!important}
.print-row .remove-print{position:static!important;grid-column:auto!important;grid-row:auto!important;right:auto!important;top:auto!important;transform:none!important;width:16px!important;height:24px!important;justify-self:center!important;align-self:center!important;padding:0!important;font-size:15px!important;line-height:1!important}
.print-info-btn{width:24px;height:24px;font-size:10px}
.preview-format span{font-size:10px}
.preview-format small{font-size:8px}
@media(max-width:1080px){
  .order-heading-compact{grid-template-columns:1fr}
  .order-heading-actions{justify-content:flex-start}
  .order-heading-actions .ready-time-stack-compact{flex-wrap:wrap}
}
@media(max-width:760px){
  .order-heading-actions{display:grid;grid-template-columns:1fr}
  .order-heading-actions .price-list-button-large,.order-heading-actions .ready-time-banner{width:100%;min-width:0}
  .print-row,.print-row.has-surface{grid-template-columns:minmax(58px,1fr) 24px minmax(64px,74px) 66px 36px 16px!important}
  .print-row.no-surface{grid-template-columns:minmax(58px,1fr) 24px 66px 36px 16px!important}
  .print-row .surface-select,.print-row .qty,.print-row .edit-photo,.print-row .remove-print{grid-column:auto!important;grid-row:auto!important}
}


/* 0.3.359 classic order toolbar polish */
.workspace-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}
.workspace-primary-actions{display:flex!important;align-items:center;gap:10px!important;min-width:0!important;white-space:nowrap}
.workspace-primary-actions .photo-sort-controls{display:flex;align-items:center;gap:5px!important;margin:0!important;width:auto!important}
.select-all-button{min-height:31px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--brand);font-size:11px;font-weight:800;padding:0 11px;cursor:pointer;white-space:nowrap}
.select-all-button:hover{border-color:#91a59e;background:#eff4f1}
.workspace-primary-actions #selectedInfo{min-width:72px;margin-left:2px}
.sort-icon-btn.sort-upload{font-size:15px}
@media(max-width:980px){
  .workspace-toolbar{grid-template-columns:1fr}
  .bulk-actions{width:100%;justify-content:flex-start}
}
@media(max-width:620px){
  .workspace-primary-actions{flex-wrap:wrap;white-space:normal}
  .workspace-primary-actions .photo-sort-controls{order:2}
  .workspace-primary-actions #addMorePhotos{order:1}
  .select-all-button{order:3}
  .workspace-primary-actions #selectedInfo{order:4}
}


/* 0.3.360 print-row quantity control alignment fix */
.print-row,.print-row.has-surface{
  grid-template-columns:minmax(54px,1fr) 24px minmax(62px,72px) 74px 34px 16px!important;
  gap:4px!important;
  align-items:center!important;
}
.print-row.no-surface{
  grid-template-columns:minmax(54px,1fr) 24px 74px 34px 16px!important;
}
.print-row .surface-select{
  max-width:72px!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.print-row .qty{
  display:grid!important;
  grid-template-columns:22px 30px 22px!important;
  width:74px!important;
  min-width:74px!important;
  max-width:74px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.print-row .qty button,
.print-row .qty input{
  box-sizing:border-box!important;
  min-width:0!important;
  margin:0!important;
}
.print-row .qty button{
  width:22px!important;
  height:28px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  font-size:12px!important;
  line-height:1!important;
}
.print-row .qty input{
  width:30px!important;
  height:28px!important;
  padding:0!important;
  text-align:center!important;
  font-size:10px!important;
}
.print-row .edit-photo{
  width:34px!important;
  min-width:34px!important;
  font-size:8px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}
.print-row .remove-print{
  width:16px!important;
  min-width:16px!important;
}
@media(max-width:760px){
  .print-row,.print-row.has-surface{
    grid-template-columns:minmax(52px,1fr) 24px minmax(58px,68px) 74px 32px 16px!important;
  }
  .print-row.no-surface{
    grid-template-columns:minmax(52px,1fr) 24px 74px 32px 16px!important;
  }
  .print-row .surface-select{max-width:68px!important}
  .print-row .edit-photo{width:32px!important;min-width:32px!important;font-size:8px!important}
}


/* 0.3.361 quantity hint banner polish */
.quantity-hint-toggle:hover,.quantity-hint-dismiss:hover{border-color:#bba56e;background:#fff2cc}

/* 0.3.362 quantity hint collapsed-state + spacing fix */
.quantity-hint-lines .quantity-hint-more{margin:0;padding:0}

/* 0.3.364 cart progressive loading + summary wording */
.cart-loading-state{min-height:220px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted)}
.cart-loading-state>div{display:grid;gap:3px}.cart-loading-state strong{font-size:13px;color:var(--ink)}.cart-loading-state small{font-size:10px}.cart-loading-state .spinner{width:20px;height:20px;border-width:2px}
.cart-charge-summary{display:grid!important;gap:0!important;margin:0!important}.cart-charge-summary.hidden{display:none!important}.cart-summary-charge{display:flex!important;justify-content:space-between!important;gap:12px!important;font-size:12px;margin:12px 0!important}.cart-summary-charge b{white-space:nowrap}
.cart-hint .quantity-hint-copy{display:grid;gap:4px}.cart-hint .quantity-hint-copy>strong{display:block}.cart-hint .quantity-hint-lines{display:grid;gap:5px}.cart-hint .quantity-hint-lines>span{display:block}


/* 0.3.365 storefront spacing + cart summary alignment */
.cart-page{padding-top:38px}
.cart-heading{margin-bottom:24px}
.cart-summary-charge{width:100%!important}
.cart-summary-charge b{margin-left:auto!important;text-align:right}
.cart-summary>small{line-height:1.5}

/* Keep internal storefront pages closer to the main navigation. */
.cms-category-page{padding-top:48px}
.confirmation-page{padding-top:44px}

@media(max-width:600px){
  .cart-page{padding-top:26px}
  .cms-category-page{padding-top:34px}
  .confirmation-page{padding-top:32px}
}


/* 0.3.366 storefront branding foundation */
.brand-logo-image{display:block;max-width:210px;max-height:52px;width:auto;height:auto;object-fit:contain}
.footer-logo-image{max-width:180px;max-height:58px}
button,input,select,textarea{font-family:inherit}

/* 0.3.366 cart summary follow-up */
.cart-charge-summary{width:100%!important}
.cart-summary-charge{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;width:100%!important}
.cart-summary-charge b{margin-left:0!important;justify-self:end!important;text-align:right!important}

/* 0.3.368 BR-03 — semantic storefront theme consistency
   Brand/theme colors drive neutral UI surfaces. Status colors deliberately remain semantic. */

/* Shared shell + navigation */
body{background:var(--paper);color:var(--ink)}
.site-header{background:color-mix(in srgb,var(--paper) 94%,transparent);border-bottom-color:var(--line)}
.main-nav a{color:var(--muted)}
.main-nav a:hover,.creative-top a,.creative-gallery-head>a,.link-button{color:var(--brand)}
.cart-button,.store-location-picker>summary{background:var(--surface-card);border-color:var(--line);color:var(--ink)}
.store-location-menu,.cms-mobile-menu-panel{background:var(--surface-card);border-color:var(--line)}
.site-footer{background:var(--surface-soft);border-top-color:var(--line)}
.footer-grid p,.footer-grid a{color:var(--muted)}

/* Buttons + generic form controls */
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--primary-hover)}
.btn-light,.small-btn,.price-list-button{background:var(--surface-card);color:var(--brand);border-color:var(--line)}
.small-btn:hover,.price-list-button:hover{background:var(--surface-muted)}
select,input,textarea{color:var(--ink)}
select,.checkout-card input,.checkout-card textarea,.cart-discount-input input,.creative-toolbar select,.creative-toolbar input,.creative-text-controls select,.creative-text-controls input{background:var(--surface-card);border-color:var(--line);color:var(--ink)}

/* Homepage/catalog/CMS storefront surfaces */
.quick-order,.product-card,.catalog-product-card,.cms-category-card,.cms-content-card{background:var(--surface-card);border-color:var(--line)}
.catalog-product-card:hover,.product-card:hover{border-color:color-mix(in srgb,var(--brand) 28%,var(--line));box-shadow:0 14px 30px color-mix(in srgb,var(--brand) 10%,transparent)}
.catalog-product-visual{background:var(--surface-muted)}
.cms-category-page,.section{color:var(--ink)}
.round-arrow,.benefit-icon{border-color:var(--line)}
.pill{background:var(--surface-card);color:var(--ink)}

/* Classic ordering */
.order-page{background:var(--surface-soft)}
.upload-zone,.workspace-toolbar,.photo-card,.print-row,.add-format-row select{background:var(--surface-card);border-color:var(--line)}
.upload-zone.dragging{background:var(--surface-card);border-color:var(--brand)}
.small-btn,.sort-icon-btn,.select-link.toolbar-select-toggle{border-color:var(--line)}
.print-row.active{border-color:color-mix(in srgb,var(--brand) 42%,var(--line));background:color-mix(in srgb,var(--brand) 6%,var(--surface-card))}
.no-print{border-color:var(--line)}
.photo-meta small,.workspace-toolbar span,.bulk-actions label,.product-lead,.product-description{color:var(--muted)}
.sticky-summary{background:var(--brand);color:#fff;box-shadow:0 20px 50px color-mix(in srgb,var(--brand) 24%,transparent)}
.sticky-summary .btn{background:var(--accent);color:var(--ink)}

/* Quantity/price helpers use accent, not primary brand status */
.quantity-hint-banner{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--ink)}
.quantity-hint-icon{background:color-mix(in srgb,var(--accent) 62%,var(--paper));color:var(--ink)}
.quantity-hint-toggle,.quantity-hint-dismiss{background:color-mix(in srgb,var(--accent) 12%,var(--surface-card));border-color:color-mix(in srgb,var(--accent) 48%,var(--line));color:var(--ink)}
.quantity-hint-toggle:hover,.quantity-hint-dismiss:hover{background:color-mix(in srgb,var(--accent) 22%,var(--surface-card))}

/* Cart */
.cart-page{background:var(--paper)}
.cart-order-card,.cart-product,.cart-location-panel,.cart-ready-card,.cart-ready-row{background:var(--surface-card);border-color:var(--line)}
.cart-summary{background:var(--surface-soft);color:var(--ink)}
.cart-summary hr,.cart-discount-code{border-color:var(--line)}
.cart-summary .cart-summary-charge{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:baseline!important;width:100%!important}
.cart-summary .cart-summary-charge b{justify-self:end!important;margin-left:0!important;text-align:right!important}
.cart-express-upgrade{background:var(--surface-card);border-color:var(--line)}
.cart-express-upgrade.selected{border-color:color-mix(in srgb,var(--status-express) 48%,var(--line));background:var(--status-express-soft)}
.cart-express-comparison>div,.cart-express-group{background:var(--surface-muted);border-color:var(--line)}
.cart-express-comparison>.express{background:var(--status-express-soft);border-color:color-mix(in srgb,var(--status-express) 38%,var(--line))}
.cart-express-line-price,.cart-express-times .express b,.cart-summary-detail b,.checkout-summary-detail b{color:var(--status-warning)}

/* Checkout + confirmation */
.checkout-page{background:var(--paper)}
.checkout-card,.checkout-summary,.checkout-ready-card,.checkout-option,.checkout-delivery-option,.checkout-payment-option{background:var(--surface-card);border-color:var(--line)}
.checkout-summary{background:var(--surface-soft)}
.checkout-option:hover,.checkout-delivery-option:hover,.checkout-payment-option:hover{border-color:color-mix(in srgb,var(--brand) 34%,var(--line))}
.checkout-option input,.checkout-delivery-option input,.checkout-payment-option input{accent-color:var(--brand)}
.confirmation-card{background:var(--surface-card);border-color:var(--line)}
.confirmation-total{border-color:var(--line)}

/* CMS rendered pages */
.cms-page,.cms-page-section,.cms-page-card,.cms-richtext-card,.cms-hero-card{color:var(--ink)}
.cms-page-card,.cms-richtext-card{background:var(--surface-card);border-color:var(--line)}
.cms-system-page,.cms-content-shell{background:var(--paper)}

/* Creative product chrome — keep printable/editor canvases neutral/white */
.creative-page{background:var(--paper)}
.creative-toolbar,.creative-assets,.creative-stage-panel,.creative-summary,.creative-template-card,.creative-accordion-item,.creative-product-options{background:var(--surface-card);border-color:var(--line)}
.creative-canvas-wrap,.creative-background-photo-preview-panel,.creative-production-preview-stage{background:var(--surface-muted)}
.creative-asset-filter button,.creative-gallery-filters .segmented{background:var(--surface-muted)}
.creative-asset-filter button.active{background:var(--brand);color:#fff}
.creative-template-card:hover{border-color:var(--brand);box-shadow:0 10px 30px color-mix(in srgb,var(--brand) 10%,transparent)}
.creative-toolbar label,.creative-text-controls label,.creative-background-control,.creative-hint,.creative-save-state,.creative-assets-head small{color:var(--muted)}

/* Modals / overlays */
.source-dialog,.price-list-dialog,.qr-dialog,.creative-text-dialog,.creative-background-photo-dialog,.creative-production-preview-dialog{background:var(--surface-card);color:var(--ink)}
.price-list-block,.price-list-inline-description{background:var(--surface-card);border-color:var(--line)}
.price-list-inline-description{background:var(--surface-muted)}
.price-list-category-head h3,.price-tier-row{border-color:var(--line)}

/* Upload/status chrome */
.global-upload-status-compact,.global-upload-status-panel{background:var(--surface-card);border-color:var(--line);color:var(--ink)}
.global-upload-status-track{background:var(--surface-muted)}
.global-upload-status-track>span{background:var(--brand)}

/* Semantic status colors deliberately do not follow tenant theme. */
.validation-banner,.cart-discount-status.error{background:var(--status-danger-soft);color:var(--status-danger);border-color:color-mix(in srgb,var(--status-danger) 32%,transparent)}
.cart-discount-status.success,.confirmation-icon{background:var(--status-success-soft);color:var(--status-success)}
.cart-line-campaign-badge,.catalog-campaign-badge,.cms-campaign-badge,.creative-campaign-badge{background:var(--status-success-soft);color:var(--status-success)}
.cart-line-campaign-price,.campaign-priced .cart-line-actions>strong,.catalog-campaign-price>strong,.cms-campaign-price>strong{color:var(--status-success)}
.frame-margin-warning,.creative-production-preview-warning{background:var(--status-warning-soft);color:var(--status-warning);border-color:color-mix(in srgb,var(--status-warning) 32%,transparent)}

/* Respect theme colors while preserving sufficient contrast for the curated presets. */
.eyebrow{color:var(--brand)}
.text-link{border-color:var(--line)}
.price-list-inline-info,.print-info-btn{color:var(--brand);border-color:var(--line);background:var(--surface-card)}
.price-list-inline-info:hover,.price-list-inline-info.active,.print-info-btn:hover{background:var(--surface-muted);border-color:color-mix(in srgb,var(--brand) 32%,var(--line))}


/* 0.3.371 – cart theme consistency, Express emphasis and header cart icon */
.cart-icon{width:18px;height:18px;display:grid;place-items:center;transform:none!important;font-size:0}
.cart-icon svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* General cart information surfaces follow the active tenant theme rather than a fixed beige/green palette. */
.quantity-hint-banner{
  background:var(--brand-soft)!important;
  border-color:color-mix(in srgb,var(--brand) 26%,var(--line))!important;
  color:var(--ink)!important;
}
.quantity-hint-icon{
  background:var(--brand-soft-strong)!important;
  color:var(--brand)!important;
}
.quantity-hint-toggle,.quantity-hint-dismiss{
  background:color-mix(in srgb,var(--brand) 7%,var(--surface-card))!important;
  border-color:color-mix(in srgb,var(--brand) 24%,var(--line))!important;
  color:var(--brand)!important;
}
.quantity-hint-toggle:hover,.quantity-hint-dismiss:hover{background:var(--brand-soft-strong)!important}

.cart-location-choice{
  background:var(--brand-soft)!important;
  border-color:color-mix(in srgb,var(--brand) 20%,var(--line))!important;
}
.cart-location-choice h3{font-family:var(--font-heading,Georgia,serif)!important}
.cart-ready-overall{
  background:var(--brand-soft)!important;
  border-color:color-mix(in srgb,var(--brand) 20%,var(--line))!important;
}
.cart-ready-icon{background:var(--brand-soft-strong)!important;color:var(--brand)!important}
.cart-ready-overall small,.cart-ready-overall strong,.cart-ready-group>span{color:var(--brand)!important}
.cart-ready-groups{background:var(--surface-card)!important;border-color:var(--line)!important}
.cart-ready-group{border-color:var(--line)!important}

/* Express stays a strong semantic sales highlight regardless of the selected storefront theme. */
.cart-express-upgrade{
  overflow:hidden;
  padding-top:0!important;
  border-color:color-mix(in srgb,var(--status-express) 34%,var(--line))!important;
}
.cart-express-heading{
  margin:0 -15px 13px!important;
  padding:14px 15px 13px!important;
  background:var(--status-express-soft)!important;
  border-bottom:1px solid color-mix(in srgb,var(--status-express) 28%,var(--line));
}
.cart-express-heading .eyebrow,.cart-express-heading h3,.cart-express-price strong{color:var(--status-express)!important}
.cart-express-toggle{
  background:var(--status-express)!important;
  color:#fff!important;
  border-color:var(--status-express)!important;
  font-weight:800;
}
.cart-express-toggle:hover{filter:brightness(.94)}
.cart-express-upgrade.selected .cart-express-toggle{
  background:var(--surface-muted)!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
}

/* Keep generated checkout charge rows aligned exactly like the static subtotal row. */
.cart-summary>.cart-charge-summary{
  display:grid!important;
  width:100%!important;
  justify-content:stretch!important;
  align-items:stretch!important;
  gap:0!important;
}
.cart-summary>.cart-charge-summary>.cart-summary-charge{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  width:100%!important;
  justify-content:stretch!important;
  align-items:baseline!important;
  column-gap:14px!important;
}
.cart-summary>.cart-charge-summary>.cart-summary-charge>b{
  justify-self:end!important;
  margin:0!important;
  text-align:right!important;
  white-space:nowrap!important;
}

/* 0.3.372 – clearer store context in header and cart */
.store-location-picker>summary{padding-right:9px}
.store-location-pin{width:18px;height:18px;display:grid;place-items:center;font-size:0;color:var(--brand)}
.store-location-pin svg{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.store-location-chevron{width:17px;height:17px;display:grid!important;place-items:center!important;margin-left:auto;color:var(--muted);transition:transform .18s ease}
.store-location-chevron svg{width:14px;height:14px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.store-location-picker[open] .store-location-chevron{transform:rotate(180deg)}
.store-location-picker>summary:hover{border-color:color-mix(in srgb,var(--brand) 28%,var(--line));background:var(--brand-soft)}
.cart-location-choice p{max-width:610px}

@media(max-width:900px){
  .store-location-picker>summary>.store-location-chevron{display:grid!important}
}


/* 0.3.373 – checkout polish */
.store-location-picker>summary{min-width:180px}
.store-location-copy{display:grid!important;grid-template-columns:1fr!important;gap:3px!important;line-height:1.05}
.store-location-copy small,.store-location-copy strong{display:block;margin:0!important}
.store-location-copy small{font-size:8px!important}
.store-location-copy strong{font-size:11px!important}

.checkout-page{padding-top:34px}
.checkout-page .cart-heading{margin-bottom:20px}
.checkout-layout{grid-template-columns:minmax(0,1fr) 340px;gap:24px}
.checkout-card{border-radius:20px;padding:30px 32px;box-shadow:0 10px 34px rgba(20,32,28,.035)}
.checkout-card>h2{font-family:var(--font-heading);font-size:1.42rem;font-weight:600;margin-bottom:14px}
.checkout-card>h2:not(:first-child){margin-top:34px;padding-top:4px}
.checkout-option-list,.checkout-delivery-list,.checkout-payment-list,.location-options{display:grid;gap:10px}
.checkout-option,.checkout-delivery-option,.checkout-payment-option,.location-option{position:relative;border:1px solid var(--line);border-radius:15px;background:var(--surface-card);transition:border-color .15s,box-shadow .15s,background .15s,transform .15s}
.checkout-option:hover,.checkout-delivery-option:hover,.checkout-payment-option:hover,.location-option:hover{border-color:color-mix(in srgb,var(--brand) 34%,var(--line));box-shadow:0 8px 22px rgba(25,40,35,.055)}
.checkout-option:has(input:checked),.checkout-delivery-option:has(input:checked),.checkout-payment-option:has(input:checked),.location-option:has(input:checked){border-color:color-mix(in srgb,var(--brand) 58%,var(--line));background:var(--brand-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 16%,transparent)}
.checkout-option{grid-template-columns:auto 54px minmax(0,1fr) auto;padding:13px 15px;gap:13px}
.checkout-option>input{align-self:center}
.checkout-option-visual{width:54px;height:54px;border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--brand) 10%,var(--surface-soft));display:grid!important;place-items:center!important;color:var(--brand)}
.checkout-option-visual img{width:100%;height:100%;display:block;object-fit:cover}
.checkout-option-icon{width:25px!important;height:25px!important;display:block!important;object-fit:contain!important}
.checkout-option-copy{align-self:center;display:grid!important;gap:4px!important}.checkout-option-copy strong{font-size:12px}.checkout-option-copy small{font-size:10px;line-height:1.4;color:var(--muted)}
.checkout-option>b{align-self:center;font-size:12px}
.checkout-delivery-option,.checkout-payment-option,.location-option{padding:14px 16px}
.checkout-delivery-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.checkout-delivery-option input,.checkout-payment-option input,.location-option input{width:18px;height:18px;accent-color:var(--brand)}
.checkout-delivery-option>b{font-size:12px}
.checkout-payment-option{grid-template-columns:auto minmax(0,1fr);align-items:center}
.location-option{align-items:center!important}
.checkout-summary{border-radius:20px;padding:25px 24px;box-shadow:0 10px 34px rgba(20,32,28,.04)}
.checkout-ready-card{padding:0!important;overflow:hidden;border-radius:14px;background:var(--surface-card)!important}
.checkout-ready-overall{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px;padding:13px 14px}
.checkout-ready-overall>span{display:grid;gap:3px}.checkout-ready-overall small{font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.checkout-ready-overall strong{font-size:11px;text-align:left}
.checkout-ready-toggle{border:0;background:transparent;color:var(--brand);display:inline-flex;align-items:center;gap:5px;padding:5px;font:inherit;font-size:9px;font-weight:800;cursor:pointer}
.checkout-ready-toggle b{font-size:14px;line-height:1;transition:transform .15s}.checkout-ready-toggle[aria-expanded="true"] b{transform:rotate(180deg)}
.checkout-ready-details{border-top:1px solid var(--line);padding:0 14px}.checkout-ready-details.hidden{display:none!important}
.checkout-ready-row{display:flex!important;justify-content:space-between!important;gap:12px;padding:9px 0!important;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important}.checkout-ready-row:first-child{border-top:0!important}.checkout-ready-row small{font-size:9px}.checkout-ready-row strong{font-size:10px}
.checkout-summary>.checkout-upload-gate.hidden{display:none!important}
.checkout-summary .btn.full{min-height:48px;border-radius:14px;font-size:12px}
@media(max-width:850px){.checkout-layout{grid-template-columns:1fr}.checkout-summary{position:static}.checkout-card{padding:22px}.checkout-option{grid-template-columns:auto 48px minmax(0,1fr) auto}.checkout-option-visual{width:48px;height:48px}}


/* 0.3.377 – checkout option and delivery promise polish */
.checkout-card .checkout-option{
  display:grid!important;
  grid-template-columns:62px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:16px!important;
  padding:15px 16px!important;
  border-radius:17px!important;
  cursor:pointer;
  overflow:hidden;
}
.checkout-card .checkout-option>input{position:absolute!important;opacity:0!important;pointer-events:none!important}
.checkout-option-visual{width:62px;height:62px;border-radius:15px;background:color-mix(in srgb,var(--brand) 11%,var(--surface-soft));border:1px solid color-mix(in srgb,var(--brand) 10%,var(--line))}
.checkout-option-copy{display:grid!important;gap:5px!important;min-width:0}
.checkout-option-copy strong{font-size:14px!important;line-height:1.2}
.checkout-option-copy small{font-size:11px!important;line-height:1.45!important;max-width:560px}
.checkout-option-end{display:grid!important;grid-template-columns:auto 28px;align-items:center;gap:12px!important;justify-content:end}
.checkout-option-end>b{font-size:13px;white-space:nowrap}
.checkout-option-check{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--surface-card);display:grid!important;place-items:center!important;color:transparent;font-size:13px;font-weight:900;transition:.15s}
.checkout-option:has(input:checked) .checkout-option-check{background:var(--brand);border-color:var(--brand);color:#fff}
.checkout-option:hover .checkout-option-visual{background:color-mix(in srgb,var(--brand) 16%,var(--surface-soft))}

.checkout-card .checkout-delivery-option{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  padding:16px 18px!important;
  min-height:78px;
}
.checkout-card .checkout-delivery-option>input{margin:0!important;padding:0!important}
.checkout-delivery-copy{display:grid!important;gap:4px!important;min-width:0}
.checkout-delivery-copy>strong{font-size:14px;line-height:1.2}
.checkout-delivery-copy>small:not(.delivery-promise){font-size:10px;color:var(--muted);font-weight:500}
.checkout-delivery-price{font-size:13px;font-weight:800;white-space:nowrap;color:var(--text)}
.checkout-delivery-option .delivery-promise{display:block;margin-top:4px;font-size:10px;line-height:1.35;font-weight:700}
.checkout-delivery-option .delivery-promise.arrival{color:var(--brand)}
.checkout-delivery-option .delivery-promise.dispatch{color:var(--muted);font-weight:500}
.checkout-delivery-option:has(input:checked) .checkout-delivery-price{color:var(--brand)}

.checkout-card .checkout-payment-option{
  display:grid!important;
  grid-template-columns:22px minmax(0,1fr)!important;
  align-items:center!important;
  gap:14px!important;
  padding:15px 18px!important;
  min-height:62px;
}

@media(max-width:650px){
  .checkout-card .checkout-option{grid-template-columns:52px minmax(0,1fr)!important;gap:12px!important}
  .checkout-option-visual{width:52px;height:52px}
  .checkout-option-end{grid-column:2;justify-content:start;grid-template-columns:auto 28px}
  .checkout-card .checkout-delivery-option{grid-template-columns:20px minmax(0,1fr)!important}
  .checkout-delivery-price{grid-column:2}
}


/* 0.3.386 Shipmondo service-point checkout */
.delivery-service-point-section{margin:18px 0 24px;padding:20px;border:1px solid var(--theme-border);border-radius:16px;background:var(--theme-surface-soft)}
.service-point-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.service-point-heading h3{margin:0 0 4px;font-family:var(--font-heading);font-size:18px}
.service-point-heading p{margin:0;color:var(--theme-text-muted);font-size:13px}
.service-point-status{min-height:20px;margin:4px 0 10px;color:var(--theme-text-muted);font-size:13px}
.service-point-list{display:grid;gap:9px}
.service-point-option{display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center;gap:13px;padding:13px 15px!important;border:1px solid var(--theme-border);border-radius:12px;background:var(--theme-surface);cursor:pointer;transition:.16s ease}
.service-point-option:hover{border-color:var(--brand-primary)}
.service-point-option.selected{border-color:var(--brand-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 15%,transparent);background:color-mix(in srgb,var(--brand-primary) 5%,var(--theme-surface))}
.service-point-option input{margin:0}
.service-point-option span{display:grid;gap:2px;min-width:0}
.service-point-option strong{font-size:14px}
.service-point-option small{display:block;color:var(--theme-text-muted);font-size:12px}
.service-point-option b{font-size:12px;color:var(--brand-primary)}
.btn.compact{padding:8px 12px;font-size:12px}
@media(max-width:650px){.service-point-heading{display:grid}.service-point-heading .btn{justify-self:start}.service-point-option{grid-template-columns:auto 1fr!important}.service-point-option>b{display:none}}


/* 0.3.387 service-point list hierarchy and compactness */
.checkout-delivery-list>.delivery-service-point-section{
  margin:-11px 0 10px;
  padding:18px 16px 16px 58px;
  border:1px solid color-mix(in srgb,var(--brand) 58%,var(--line));
  border-top:0;
  border-radius:0 0 15px 15px;
  background:color-mix(in srgb,var(--brand) 6%,var(--surface-card));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 10%,transparent);
}
.checkout-delivery-list>.checkout-delivery-option:has(input:checked)+.delivery-service-point-section{
  position:relative;
}
.checkout-delivery-list>.checkout-delivery-option:has(input:checked):has(+.delivery-service-point-section){
  border-radius:15px 15px 0 0;
  border-bottom-color:color-mix(in srgb,var(--brand) 24%,var(--line));
}
.service-point-list:not(.expanded) .service-point-option.extra{display:none!important}
.service-point-option{
  grid-template-columns:22px minmax(0,1fr)!important;
  padding:12px 14px!important;
}
.service-point-option input[type="radio"]{
  appearance:none;
  -webkit-appearance:none;
  width:20px!important;
  height:20px!important;
  margin:0!important;
  border:2px solid color-mix(in srgb,var(--brand) 55%,#8b96a3);
  border-radius:50%;
  background:var(--surface-card);
  display:grid;
  place-items:center;
  cursor:pointer;
}
.service-point-option input[type="radio"]::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  transform:scale(0);
  transition:transform .12s ease;
  background:var(--brand);
}
.service-point-option input[type="radio"]:checked{
  border-color:var(--brand);
}
.service-point-option input[type="radio"]:checked::before{
  transform:scale(1);
}
.service-point-more{
  display:block;
  margin:10px auto 0;
  padding:8px 14px;
  border:1px solid var(--theme-border);
  border-radius:999px;
  background:var(--theme-surface);
  color:var(--brand);
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.service-point-more:hover{
  border-color:var(--brand);
  background:color-mix(in srgb,var(--brand) 5%,var(--theme-surface));
}
.service-point-more.hidden{display:none!important}

@media(max-width:650px){
  .checkout-delivery-list>.delivery-service-point-section{
    padding:16px 12px;
  }
}

/* 0.3.388 service-point radio alignment */
.service-point-option input[type="radio"]{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  min-height:16px!important;
  border-width:1.5px!important;
  align-self:center;
}
.service-point-option input[type="radio"]::before{
  width:8px!important;
  height:8px!important;
}

/* 0.3.389 make service-point radios identical to delivery radios */
.service-point-option input[type="radio"]{
  appearance:auto!important;
  -webkit-appearance:radio!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  display:block!important;
  place-items:unset!important;
  align-self:center!important;
  accent-color:var(--brand)!important;
}
.service-point-option input[type="radio"]::before{content:none!important;display:none!important}

.checkout-payment-notice{display:grid;gap:3px;margin:14px 0;padding:13px 15px;border-radius:12px;border:1px solid var(--theme-border);background:var(--theme-surface-soft)}
.checkout-payment-notice.warning{border-color:rgba(183,132,33,.34);background:#fffaf0}
.checkout-payment-notice span{font-size:12px;color:var(--theme-text-muted)}


/* 0.3.391 richer confirmation experience */
.confirmation-order-number{margin-bottom:18px}
.confirmation-progress{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin:20px 0 18px;
  padding:18px 20px;
  text-align:left;
  border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line));
  border-radius:16px;
  background:color-mix(in srgb,var(--brand) 6%,var(--surface-card));
}
.confirmation-progress>div:first-child{display:grid;gap:5px}
.confirmation-progress>div:first-child>strong{font-size:1rem;line-height:1.45}
.confirmation-countdown{
  flex:0 0 auto;
  min-width:150px;
  display:grid;
  gap:2px;
  text-align:right;
}
.confirmation-countdown small{color:var(--theme-muted-text);font-size:.75rem}
.confirmation-countdown strong{font-size:1.25rem;color:var(--brand)}
.confirmation-summary{
  margin:22px 0 0;
  border:1px solid var(--theme-border);
  border-radius:16px;
  overflow:hidden;
  text-align:left;
}
.confirmation-summary-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  padding:15px 17px;
  background:var(--theme-surface-soft);
}
.confirmation-summary-heading strong{font-size:.86rem}
.confirmation-summary-lines{display:grid}
.confirmation-summary-line{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:14px;
  align-items:center;
  padding:14px 17px;
  border-top:1px solid var(--theme-border);
}
.confirmation-summary-line:first-child{border-top:0}
.confirmation-summary-line>span:first-child{display:grid;gap:2px}
.confirmation-summary-line small{color:var(--theme-muted-text);font-size:.78rem}
.confirmation-summary-qty{color:var(--theme-muted-text);font-weight:700;white-space:nowrap}
@media(max-width:650px){
  .confirmation-progress{align-items:flex-start;flex-direction:column}
  .confirmation-countdown{text-align:left;min-width:0}
  .confirmation-summary-line{grid-template-columns:minmax(0,1fr) auto}
  .confirmation-summary-line>strong{grid-column:2}
  .confirmation-summary-qty{grid-column:2;grid-row:1}
}

/* 0.3.402 CAL-R01/R02 – authoritative calendar page geometry.
   The configured calendar margin is applied by .calendar-preview-calendar.
   Do NOT add another hidden inset inside the surface: that was the main reason
   the customer product looked materially more compact than template previews. */
.calendar-preview-root:not(.compact) .calendar-preview-calendar-surface{
  padding:0!important;
}

/* Artwork outer whitespace is controlled only by calendarArtworkMargin*.
   Slot spacing is internal and must never create an extra border around a
   single hero image. cqmin keeps vertical and horizontal compositions aligned
   with the server renderer's shortest-side based gap. */
.calendar-preview-root:not(.compact) .calendar-preview-photo-grid{
  container-type:size;
  gap:var(--calendar-artwork-gap,1.6cqmin)!important;
}
.calendar-preview-root:not(.compact) .calendar-preview-photo-grid.layout-single,
.calendar-preview-root:not(.compact) .calendar-preview-photo-grid.layout-cover-1{
  gap:0!important;
}

/* In split mode the calendar region itself owns the configured page inset.
   Surface/background may fill the region, while title/grid use all remaining
   content width. */
.calendar-preview-root:not(.compact) .calendar-preview-calendar{
  min-width:0;
}
.calendar-preview-root:not(.compact) .calendar-preview-calendar-surface{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* Keep compact thumbnails intentionally compact; their special preview padding
   remains untouched so long lists stay readable. */


/* 0.3.406 – CAL-R05 shared Creative Engine upload status */
.calendar-asset-card .calendar-asset-upload-state{
    left:6px;
    right:auto;
    bottom:6px;
    min-width:22px;
    text-align:center;
    font-weight:800;
}

/* 0.3.407 – Calendar Builder UI polish, theme alignment and shared ordering UX */
.calendar-editor-v4{
    --calendar-theme:var(--brand);
    --calendar-theme-soft:var(--brand-soft,color-mix(in srgb,var(--brand) 9%,var(--paper)));
    --calendar-theme-strong:var(--brand-soft-strong,color-mix(in srgb,var(--brand) 16%,var(--paper)));
}
.calendar-editor-v4 .calendar-assets-panel,
.calendar-editor-v4 .calendar-editor-sidebar{
    border-color:var(--line);
    background:var(--surface-card,#fff);
}
.calendar-editor-v4 .calendar-save-state.saved{
    background:var(--calendar-theme-soft);
    color:var(--calendar-theme);
}
.calendar-editor-v4 .calendar-panel-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}
.calendar-editor-v4 .calendar-panel-tab{
    min-height:38px;
    padding:7px 8px;
    border-color:var(--line);
    background:var(--surface-soft,#f7f4ed);
    color:var(--ink);
    font-size:.76rem;
    font-weight:650;
}
.calendar-editor-v4 .calendar-panel-tab.active{
    border-color:var(--calendar-theme);
    background:var(--calendar-theme-soft);
    color:var(--calendar-theme);
    box-shadow:0 0 0 1px var(--calendar-theme) inset;
}
.calendar-editor-v4 .calendar-panel-heading strong,
.calendar-editor-v4 .calendar-sidebar-intro strong,
.calendar-editor-v4 .creative-accordion-head,
.calendar-editor-v4 .calendar-order-summary strong{
    font-weight:650;
}
.calendar-editor-v4 .calendar-panel-heading small,
.calendar-editor-v4 .calendar-setting-help,
.calendar-editor-v4 .calendar-editor-bottom-state,
.calendar-editor-v4 .calendar-sidebar-intro small{
    font-weight:400;
    line-height:1.35;
}
.calendar-editor-v4 .small-btn{
    background:var(--calendar-theme-soft);
    color:var(--calendar-theme);
    font-weight:650;
}
.calendar-editor-v4 #calendarAutoFill,
.calendar-editor-v4 .calendar-add-cart-button{
    background:var(--calendar-theme);
    color:#fff;
}
.calendar-editor-v4 #calendarAutoFill:hover,
.calendar-editor-v4 .calendar-add-cart-button:hover{
    background:var(--primary-hover,var(--calendar-theme));
}
.calendar-editor-v4 .creative-media-filters button{
    background:var(--surface-soft,#eee9e0);
    color:var(--ink);
    font-weight:650;
}
.calendar-editor-v4 .creative-media-filters button.active{
    background:var(--calendar-theme);
    color:#fff;
}
.calendar-editor-v4 .calendar-media-toolbar{
    display:grid;
    gap:10px;
    align-items:start;
}
.calendar-editor-v4 .calendar-sort-controls{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.calendar-editor-v4 .calendar-sort-controls>span{
    color:var(--muted);
    font-size:.68rem;
    font-weight:600;
    margin-right:2px;
}
.calendar-editor-v4 .calendar-sort-controls .sort-icon-btn{
    flex:0 0 34px;
    height:32px;
    min-width:34px;
    border-color:var(--line);
    background:var(--surface-card,#fff);
    color:var(--ink);
}
.calendar-editor-v4 .calendar-sort-controls .sort-icon-btn.active{
    border-color:var(--calendar-theme);
    background:var(--calendar-theme-soft);
    color:var(--calendar-theme);
    box-shadow:0 0 0 1px var(--calendar-theme) inset;
}
.calendar-editor-v4 .calendar-sort-controls .sort-icon-btn.direction{
    margin-left:2px;
    background:var(--calendar-theme);
    color:#fff;
    border-color:var(--calendar-theme);
}
.calendar-assets-panel .calendar-asset-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:max-content;
    gap:10px;
    align-items:start;
    align-content:start;
    overflow-x:hidden;
    padding:1px 5px 4px 1px;
}
.calendar-assets-panel .calendar-asset-card{
    display:block;
    width:100%;
    min-width:0;
    aspect-ratio:1/1;
    align-self:start;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--surface-soft,#f3f2ef);
}
.calendar-assets-panel .calendar-asset-card.used{
    border-color:color-mix(in srgb,var(--calendar-theme) 55%,var(--line));
    box-shadow:0 0 0 1px color-mix(in srgb,var(--calendar-theme) 35%,transparent);
}
.calendar-assets-panel .calendar-asset-card img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.calendar-editor-v4 .creative-used-check{
    background:var(--calendar-theme)!important;
    box-shadow:0 2px 8px color-mix(in srgb,var(--calendar-theme) 26%,transparent);
}
.calendar-editor-v4 .calendar-live-edit{
    background:color-mix(in srgb,var(--calendar-theme) 90%,black 10%);
    font-weight:650;
}
.calendar-editor-v4 .creative-accordion-head{
    color:var(--ink);
}
.calendar-editor-v4 .creative-accordion-head:hover,
.calendar-editor-v4 .creative-accordion-head[aria-expanded="true"]{
    color:var(--calendar-theme);
}
.calendar-editor-v4 .calendar-page-arrow:focus-visible,
.calendar-editor-v4 button:focus-visible,
#calendarCropModal button:focus-visible{
    outline:2px solid var(--calendar-theme);
    outline-offset:2px;
}
.calendar-editor-v4 .calendar-add-cart-button{
    min-height:50px;
    font-size:.92rem;
    font-weight:700;
    flex-shrink:0;
}
.calendar-editor-v4 .calendar-editor-cart-actions{
    padding-top:12px;
    gap:7px;
}
.calendar-editor-v4 .calendar-cancel-design{
    font-size:.75rem;
    font-weight:600;
    padding:5px 8px;
}
.calendar-editor-v4 .calendar-editor-sidebar{
    padding-bottom:12px;
}
.calendar-editor-v4 .calendar-order-summary{
    font-size:.76rem;
}

/* Calendar image quality – same visual language as ordinary photo ordering. */
.calendar-slot-quality.quality{
    left:8px!important;
    right:auto!important;
    top:8px!important;
    bottom:auto!important;
    z-index:9;
    min-width:28px;
    min-height:28px;
    padding:5px 7px!important;
    display:flex;
    align-items:center;
    gap:5px;
}
.calendar-slot-quality .quality-symbol{margin:0}
.calendar-quality-badge.quality{
    left:auto!important;
    right:22px!important;
    top:20px!important;
    bottom:auto!important;
}

/* Calendar crop editor follows the standard photo-order crop dialog. */
#calendarCropModal .calendar-crop-dialog{
    width:min(1000px,100%);
    grid-template-columns:1.25fr .75fr;
    border-radius:25px;
    background:var(--paper,#f7f4ed);
    box-shadow:0 30px 100px rgba(0,0,0,.4);
}
#calendarCropModal .calendar-crop-preview-wrap{
    position:relative;
    min-height:580px;
    padding:45px;
    background:#24302d;
}
#calendarCropModal .calendar-crop-stage{
    width:100%;
    max-width:650px;
    height:auto;
    background:#1c2724;
}
#calendarCropModal .calendar-crop-frame{
    border:2px solid #fff;
    box-shadow:0 0 0 999px rgba(0,0,0,.28);
}
#calendarCropModal .crop-controls{
    padding:55px 35px 35px;
}
#calendarCropModal .crop-controls h2{
    font-size:33px;
    font-weight:400;
    margin:8px 0;
}
#calendarCropModal .crop-controls>p{
    font-size:12px;
    line-height:1.5;
    color:var(--muted);
    margin:0 0 18px;
}
#calendarCropModal .range-with-value{
    margin:20px 0;
    font-size:11px;
    font-weight:700;
}
#calendarCropModal .calendar-grayscale-row{
    margin:18px 0;
    font-size:12px;
    font-weight:400;
}
#calendarCropModal .calendar-crop-action{
    width:100%;
    margin:0 0 10px;
    text-align:left;
}
#calendarCropModal .calendar-crop-action strong{font-weight:650}
#calendarCropModal #calendarCropDone{
    margin-top:4px;
    background:var(--calendar-theme,var(--brand));
}
#calendarCropModal #calendarCropDone:hover{background:var(--primary-hover,var(--brand))}

@media(max-width:1500px){
    .calendar-editor-v4 .calendar-editor-workspace{grid-template-columns:240px minmax(560px,1fr) 290px}
    .calendar-editor-v4 .calendar-assets-panel,
    .calendar-editor-v4 .calendar-editor-sidebar{padding:12px}
    .calendar-editor-v4 .calendar-panel-tab{font-size:.72rem;padding-inline:5px}
}
@media(max-width:1180px){
    .calendar-editor-v4 .calendar-panel-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
    #calendarCropModal .calendar-crop-dialog{grid-template-columns:1fr;max-height:94vh;overflow:auto}
}
.calendar-editor-v4 .calendar-product-submit,
.calendar-editor-v4 .calendar-layout-card.active,
.calendar-editor-v4 .calendar-date-picker-grid button.active,
.calendar-editor-v4 .calendar-date-icons button.active{
    border-color:var(--calendar-theme);
    background:var(--calendar-theme);
    color:#fff;
}
.calendar-editor-v4 .calendar-layout-card.active{
    box-shadow:0 0 0 1px var(--calendar-theme) inset;
}
.calendar-editor-v4 .calendar-switch>span{
    color:var(--ink);
    font-weight:600;
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]:checked{
    background:var(--calendar-theme);
    border-color:var(--calendar-theme);
}
.calendar-editor-v4 .calendar-switch>input[type="checkbox"]:focus-visible{
    outline-color:color-mix(in srgb,var(--calendar-theme) 45%,transparent);
}
.calendar-editor-v4 .calendar-background-swatch.active,
.calendar-editor-v4 .calendar-custom-background.active{
    border-color:var(--calendar-theme);
    box-shadow:0 0 0 1px var(--calendar-theme);
}
.calendar-slot-quality-text{font-size:.62rem;font-weight:700;line-height:1}
.calendar-preview-photo-grid.layout-double .calendar-slot-quality-text,
.calendar-preview-photo-grid.layout-trio .calendar-slot-quality-text{display:none}

/* 0.3.408 – Calendar builder theme fixes & shared image controls */
/* Shared black/white toggle used by ordinary photo ordering and Creative Engine. */
.image-bw-switch{
    display:inline-flex;
    align-items:center;
    gap:10px;
    width:max-content;
    margin:18px 0;
    color:var(--ink);
    font-size:12px;
    font-weight:500;
    cursor:pointer;
    user-select:none;
}
.image-bw-switch>input{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0 0 0 0);
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
}
.image-bw-switch-track{
    position:relative;
    flex:0 0 38px;
    width:38px;
    height:22px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#dedfdc;
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.image-bw-switch-track::after{
    content:"";
    position:absolute;
    top:2px;
    left:2px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.22);
    transition:transform .16s ease;
}
.image-bw-switch>input:checked + .image-bw-switch-track{
    border-color:var(--brand);
    background:var(--brand);
}
.image-bw-switch>input:checked + .image-bw-switch-track::after{
    transform:translateX(16px);
}
.image-bw-switch>input:focus-visible + .image-bw-switch-track{
    outline:2px solid color-mix(in srgb,var(--brand) 45%,transparent);
    outline-offset:2px;
}

/* Calendar crop: give the control side enough room to match the ordinary ordering editor. */
#calendarCropModal .calendar-crop-dialog{
    width:min(1180px,calc(100vw - 48px));
    grid-template-columns:minmax(0,1fr) 420px;
}
#calendarCropModal .crop-controls{
    min-width:0;
    padding:52px 34px 32px;
}
#calendarCropModal .calendar-crop-action{
    min-height:68px;
    padding:11px 14px;
}
#calendarCropModal .calendar-crop-action>span:last-child{
    min-width:0;
}
#calendarCropModal .calendar-crop-action strong{
    display:block;
    line-height:1.25;
}
#calendarCropModal .calendar-crop-action small{
    line-height:1.32;
}
#calendarCropModal .calendar-grayscale-row{
    margin:16px 0 20px;
    font-size:12px;
    font-weight:500;
}

/* Active layout must stay readable on every storefront theme. */
.calendar-editor-v4 .calendar-layout-card.active .calendar-layout-copy strong,
.calendar-editor-v4 .calendar-layout-card.active .calendar-layout-copy small{
    color:#fff;
}
.calendar-editor-v4 .calendar-layout-card.active .calendar-layout-visual{
    background:rgba(255,255,255,.92);
    border-color:rgba(255,255,255,.78);
}

/* Date-note states follow the selected storefront theme instead of the old green palette. */
.calendar-editor-v4 .calendar-date-picker-day.has-note{
    border-color:color-mix(in srgb,var(--calendar-theme) 50%,var(--line));
    background:var(--calendar-theme-soft);
}
.calendar-editor-v4 .calendar-date-picker-day.has-note>span{
    color:var(--calendar-theme);
}
.calendar-editor-v4 .calendar-date-picker-day.has-note.active{
    border-color:var(--calendar-theme);
    background:var(--calendar-theme);
    color:#fff;
}
.calendar-editor-v4 .calendar-date-picker-day.has-note.active>span{
    color:#fff;
}

/* Keep the product update CTA on one line. */
.calendar-editor-v4 .calendar-product-submit{
    gap:8px;
    padding-inline:13px;
    white-space:nowrap;
    font-size:.78rem;
}
.calendar-editor-v4 .calendar-product-submit>span:first-child{
    min-width:0;
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-product-submit>span:last-child{
    flex:0 0 auto;
}

/* Extra-month helper box uses the active theme rather than legacy green. */
.calendar-editor-v4 .calendar-period-rule{
    border:1px solid color-mix(in srgb,var(--calendar-theme) 16%,var(--line));
    background:var(--calendar-theme-soft);
    color:var(--ink);
}
.calendar-editor-v4 .calendar-period-rule strong{
    color:var(--calendar-theme);
}
.calendar-editor-v4 .calendar-stepper-button{
    color:var(--calendar-theme);
}
.calendar-editor-v4 .calendar-stepper-button:hover:not(:disabled){
    border-color:var(--calendar-theme);
    background:var(--calendar-theme-soft);
}

@media(max-width:1180px){
    #calendarCropModal .calendar-crop-dialog{
        width:min(760px,calc(100vw - 24px));
        grid-template-columns:1fr;
    }
}

/* 0.3.410 CAL-C2 typography controls */
.calendar-title-align-left .calendar-preview-calendar-surface>h2,.calendar-title-align-left.calendar-design-grid-preview>strong{text-align:left}
.calendar-title-align-center .calendar-preview-calendar-surface>h2,.calendar-title-align-center.calendar-design-grid-preview>strong{text-align:center}
.calendar-title-align-right .calendar-preview-calendar-surface>h2,.calendar-title-align-right.calendar-design-grid-preview>strong{text-align:right}
.calendar-weekday-size-extra-small .calendar-live-weekdays{font-size:clamp(.34rem,1.8cqh,.56rem)}
.calendar-weekday-size-small .calendar-live-weekdays{font-size:clamp(.40rem,2.2cqh,.64rem)}
.calendar-weekday-size-normal .calendar-live-weekdays{font-size:clamp(.46rem,2.7cqh,.74rem)}
.calendar-weekday-size-large .calendar-live-weekdays{font-size:clamp(.54rem,3.4cqh,.90rem)}
.calendar-weekday-size-extra-large .calendar-live-weekdays{font-size:clamp(.62rem,4.2cqh,1.08rem)}
.calendar-weekday-size-giant .calendar-live-weekdays{font-size:clamp(.72rem,5.2cqh,1.28rem)}
.calendar-design-grid-preview.calendar-title-align-left>strong{text-align:left}.calendar-design-grid-preview.calendar-title-align-center>strong{text-align:center}.calendar-design-grid-preview.calendar-title-align-right>strong{text-align:right}
.calendar-design-grid-preview.calendar-weekday-size-extra-small .calendar-design-week{font-size:.28rem}.calendar-design-grid-preview.calendar-weekday-size-small .calendar-design-week{font-size:.32rem}.calendar-design-grid-preview.calendar-weekday-size-normal .calendar-design-week{font-size:.38rem}.calendar-design-grid-preview.calendar-weekday-size-large .calendar-design-week{font-size:.44rem}.calendar-design-grid-preview.calendar-weekday-size-extra-large .calendar-design-week{font-size:.50rem}.calendar-design-grid-preview.calendar-weekday-size-giant .calendar-design-week{font-size:.57rem}

/* CAL-C2 0.3.411 – independent calendar typography weights */
.calendar-title-weight-normal .calendar-preview-calendar-surface>h2,
.calendar-design-grid-preview.calendar-title-weight-normal>strong{font-weight:400}
.calendar-title-weight-medium .calendar-preview-calendar-surface>h2,
.calendar-design-grid-preview.calendar-title-weight-medium>strong{font-weight:600}
.calendar-title-weight-bold .calendar-preview-calendar-surface>h2,
.calendar-design-grid-preview.calendar-title-weight-bold>strong{font-weight:700}
.calendar-weekday-weight-normal .calendar-live-weekdays,
.calendar-design-grid-preview.calendar-weekday-weight-normal .calendar-design-week{font-weight:400}
.calendar-weekday-weight-medium .calendar-live-weekdays,
.calendar-design-grid-preview.calendar-weekday-weight-medium .calendar-design-week{font-weight:600}
.calendar-weekday-weight-bold .calendar-live-weekdays,
.calendar-design-grid-preview.calendar-weekday-weight-bold .calendar-design-week{font-weight:700}
.calendar-day-weight-normal .calendar-day-number,
.calendar-design-grid-preview.calendar-day-weight-normal .calendar-design-days{font-weight:400}
.calendar-day-weight-medium .calendar-day-number,
.calendar-design-grid-preview.calendar-day-weight-medium .calendar-design-days{font-weight:600}
.calendar-day-weight-bold .calendar-day-number,
.calendar-design-grid-preview.calendar-day-weight-bold .calendar-design-days{font-weight:700}


/* CAL-C2 0.3.412 – semantic date-cell inner spacing */
.calendar-cell-padding-tight .calendar-live-days>span{padding-inline:clamp(1px,.35cqw,3px)}
.calendar-cell-padding-normal .calendar-live-days>span{padding-inline:clamp(2px,.65cqw,6px)}
.calendar-cell-padding-roomy .calendar-live-days>span{padding-inline:clamp(4px,1.05cqw,10px)}
.calendar-grid-preset-writing.calendar-cell-padding-tight .calendar-live-days>span{padding-top:clamp(1px,.25cqh,3px)}
.calendar-grid-preset-writing.calendar-cell-padding-normal .calendar-live-days>span{padding-top:clamp(2px,.55cqh,6px)}
.calendar-grid-preset-writing.calendar-cell-padding-roomy .calendar-live-days>span{padding-top:clamp(4px,.95cqh,10px)}
.calendar-design-grid-preview.calendar-cell-padding-tight .calendar-design-days>span{padding-inline:1px}
.calendar-design-grid-preview.calendar-cell-padding-normal .calendar-design-days>span{padding-inline:2px}
.calendar-design-grid-preview.calendar-cell-padding-roomy .calendar-design-days>span{padding-inline:3px}


/* CAL-C2 0.3.414 – optional outer frame for Cells style. */
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-days>span:nth-child(7n+1),
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-days>span:nth-child(7n+1){border-left:0!important}
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-days>span:nth-child(-n+7),
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-days>span:nth-child(-n+7){border-top:0!important}
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-days>span:nth-child(7n),
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-days>span:nth-child(7n){border-right:0!important}
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-days>span:nth-last-child(-n+7),
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-days>span:nth-last-child(-n+7){border-bottom:0!important}
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-strip,
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-strip{border-top:0!important;border-bottom:0!important}
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-strip span:first-child,
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-strip span:first-child{border-left:0!important}
.calendar-preview-calendar.calendar-live-style-cells.calendar-outer-frame-off .calendar-live-strip span:last-child,
.calendar-design-grid-preview.calendar-preview-cells.calendar-outer-frame-off .calendar-design-strip span:last-child{border-right:0!important}


/* CAL-C3 0.3.415 – template-controlled personal event presentation */
.calendar-live-days span.calendar-event-highlight{
    background:color-mix(in srgb,var(--brand-primary,#315b4b) 14%,transparent);
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-primary,#315b4b) 28%,transparent);
}
.calendar-event-presentation-marker .calendar-day-entry.note-entry,
.calendar-event-presentation-highlight-footer .calendar-day-entry.note-entry{display:none;}

/* 0.3.417 CAL-D2 – finish validation / quality gate */
.calendar-validation-summary{
  margin:12px 0 0;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.calendar-validation-summary-head{display:flex;align-items:center;gap:9px;min-width:0}
.calendar-validation-summary-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.calendar-validation-summary strong{font-size:.76rem;font-weight:750;line-height:1.15}
.calendar-validation-summary span:not(.calendar-validation-icon){font-size:.67rem;line-height:1.3;color:var(--muted)}
.calendar-validation-icon{width:24px;height:24px;flex:0 0 24px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:900}
.calendar-validation-summary.ready{border-color:color-mix(in srgb,var(--brand) 26%,var(--line));background:color-mix(in srgb,var(--brand) 7%,white)}
.calendar-validation-summary.ready .calendar-validation-icon{background:var(--brand);color:#fff}
.calendar-validation-summary.warning{border-color:#e5c47c;background:#fff8e8}
.calendar-validation-summary.warning .calendar-validation-icon{background:#d99b2b;color:#fff}
.calendar-validation-summary.error{border-color:#e1aaa5;background:#fff0ee}
.calendar-validation-summary.error .calendar-validation-icon{background:#c84f45;color:#fff}
.calendar-validation-details{border:0;background:none;padding:4px 0;color:var(--brand);font:inherit;font-size:.67rem;font-weight:750;white-space:nowrap;cursor:pointer}
.calendar-validation-details:hover{text-decoration:underline}


/* CAL-E3 – smart autofill + finishing UX */
.calendar-editor-v4 .calendar-autofill-help{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:.72rem;
    line-height:1.35;
}
.calendar-editor-v4 .calendar-validation-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px 10px;
    margin-top:8px;
}
.calendar-editor-v4 .calendar-image-progress{
    margin-right:auto;
    color:var(--muted);
    font-size:.72rem;
    font-weight:600;
}
.calendar-editor-v4 .calendar-validation-fix,
.calendar-editor-v4 .calendar-validation-details{
    border:0;
    background:transparent;
    padding:2px 0;
    color:var(--calendar-theme);
    font:inherit;
    font-size:.72rem;
    font-weight:650;
    cursor:pointer;
}
@media (max-width: 900px){
    .calendar-editor-v4 .calendar-validation-actions{align-items:flex-start;}
    .calendar-editor-v4 .calendar-image-progress{flex:1 0 100%;}
}

/* 0.3.422 CAL-F1 – family calendar columns */
.calendar-editor-v4 .calendar-family-help{margin:0 0 .75rem;color:var(--muted,#667085);font-size:.84rem;line-height:1.4}
.calendar-editor-v4 .calendar-family-members{display:grid;gap:.45rem;margin-bottom:.65rem}
.calendar-editor-v4 .calendar-family-member-row{display:grid;grid-template-columns:1.8rem minmax(0,1fr) 2rem;gap:.4rem;align-items:center}
.calendar-editor-v4 .calendar-family-member-number{display:grid;place-items:center;width:1.65rem;height:1.65rem;border-radius:50%;background:color-mix(in srgb,var(--theme-primary,#2563eb) 12%,white);color:var(--theme-primary,#2563eb);font-size:.75rem;font-weight:700}
.calendar-editor-v4 .calendar-family-member-row input{min-width:0;width:100%}
.calendar-editor-v4 .calendar-family-remove{border:0;background:transparent;color:#667085;font-size:1.35rem;line-height:1;cursor:pointer;border-radius:.35rem;height:2rem}
.calendar-editor-v4 .calendar-family-remove:hover:not(:disabled){background:#f2f4f7;color:#b42318}
.calendar-editor-v4 .calendar-family-remove:disabled{opacity:.25;cursor:not-allowed}
.calendar-editor-v4 .calendar-family-entry-person{display:grid;gap:.3rem}

.calendar-family-grid{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;font-family:inherit;overflow:hidden}
.calendar-family-grid-head,.calendar-family-grid-row{display:grid;grid-template-columns:minmax(3.8rem,.75fr) repeat(var(--family-column-count),minmax(0,1fr));min-height:0}
.calendar-family-grid-head{flex:0 0 auto;border-bottom:var(--calendar-line-width,1px) solid var(--calendar-line,#d0d5dd);font-size:clamp(.52rem,1.25cqw,.82rem);font-weight:700;letter-spacing:.01em}
.calendar-family-grid-head>span{padding:clamp(2px,.45cqw,6px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:var(--calendar-line-width,1px) solid color-mix(in srgb,var(--calendar-line,#d0d5dd) 75%,transparent)}
.calendar-family-grid-head>span:first-child{text-align:left;border-left:0}
.calendar-family-grid-row{flex:1 1 0;border-bottom:var(--calendar-line-width,1px) solid color-mix(in srgb,var(--calendar-line,#d0d5dd) 78%,transparent);font-size:clamp(.46rem,1.05cqw,.74rem)}
.calendar-family-grid-row:last-child{border-bottom:0}
.calendar-family-grid-row>span{min-width:0;padding:1px clamp(2px,.35cqw,5px);overflow:hidden;border-left:var(--calendar-line-width,1px) solid color-mix(in srgb,var(--calendar-line,#d0d5dd) 70%,transparent);display:flex;align-items:center}
.calendar-family-grid-row>span:first-child{border-left:0}
.calendar-family-date-cell{gap:.28rem;white-space:nowrap}
.calendar-family-date-cell>b{font-size:1.05em}
.calendar-family-date-cell small{min-width:0;overflow:hidden;text-overflow:ellipsis;opacity:.72;font-size:.8em}
.calendar-family-grid-row.weekend .calendar-family-date-cell,.calendar-family-grid-row.holiday .calendar-family-date-cell{color:var(--calendar-weekend,#d92d20)}
.calendar-family-member-cell{white-space:nowrap;text-overflow:ellipsis}
.calendar-family-member-cell.has-note{font-weight:600;background:color-mix(in srgb,var(--theme-primary,#2563eb) 5%,transparent)}
.calendar-preview-root.compact .calendar-family-grid-head,.calendar-preview-root.compact .calendar-family-grid-row{font-size:.38rem}
.calendar-preview-root.compact .calendar-family-date-cell small{display:none}
.calendar-family-member-cell.event-highlight{background:color-mix(in srgb,var(--theme-primary,#2563eb) 12%,transparent)}

/* CAL-F1C · family calendar storefront preview parity */
.calendar-storefront-family-grid{display:flex;flex-direction:column;min-height:0;flex:1;border:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd);overflow:hidden}
.calendar-storefront-family-head,.calendar-storefront-family-row{display:grid;grid-template-columns:minmax(2.8rem,.72fr) repeat(var(--family-column-count),minmax(0,1fr));min-width:0}
.calendar-storefront-family-head{flex:0 0 auto;font-size:.42rem;font-weight:700;border-bottom:var(--cal-line-width,1px) solid var(--cal-line,#d0d5dd)}
.calendar-storefront-family-head>span,.calendar-storefront-family-row>span{min-width:0;padding:1px 2px;border-left:var(--cal-line-width,1px) solid color-mix(in srgb,var(--cal-line,#d0d5dd) 76%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-storefront-family-head>span:first-child,.calendar-storefront-family-row>span:first-child{border-left:0}
.calendar-storefront-family-head>span{text-align:center}
.calendar-storefront-family-head>span:first-child{text-align:left}
.calendar-storefront-family-rows{display:flex;flex-direction:column;min-height:0;flex:1}
.calendar-storefront-family-row{flex:1 1 0;min-height:0;font-size:.32rem;border-bottom:var(--cal-line-width,1px) solid color-mix(in srgb,var(--cal-line,#d0d5dd) 70%,transparent)}
.calendar-storefront-family-row:last-child{border-bottom:0}
.calendar-storefront-family-date{display:flex;align-items:center;gap:2px}
.calendar-storefront-family-date small{opacity:.65;font-size:.82em}
.calendar-storefront-family-row.weekend .calendar-storefront-family-date{color:var(--cal-weekend,#d92d20)}
.calendar-storefront-family-row .has-note{font-weight:700;background:color-mix(in srgb,var(--theme-primary,#315b4b) 10%,transparent)}
.calendar-editor-v4 .calendar-family-count{display:grid;grid-template-columns:minmax(0,1fr) 8rem;gap:.75rem;align-items:center;margin:0 0 .75rem;padding:.7rem .8rem;border:1px solid var(--border,#e4e7ec);border-radius:.8rem;background:var(--surface-soft,#fafafa)}
.calendar-editor-v4 .calendar-family-count>span{font-weight:700;color:var(--text,#101828)}
.calendar-editor-v4 .calendar-family-count select{width:100%;min-width:0}
.calendar-editor-v4 .calendar-family-name-label{margin:0 0 .4rem;font-size:.8rem;font-weight:700;color:var(--muted,#667085)}

/* 0.3.426 calendar builder stability / lightweight thumbnails */
.calendar-editor-v4 .calendar-editor-stage{position:relative}
.calendar-editor-v4 .calendar-editor-loader{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:.75rem;border-radius:18px;background:color-mix(in srgb,var(--surface,#fff) 86%,transparent);backdrop-filter:blur(3px);color:var(--text,#101828)}
.calendar-editor-v4 .calendar-editor-loader.hidden{display:none}
.calendar-editor-v4 .calendar-editor-loader>span:last-child{display:grid;gap:.15rem}
.calendar-editor-v4 .calendar-editor-loader strong{font-size:.95rem}
.calendar-editor-v4 .calendar-editor-loader small{font-size:.78rem;color:var(--muted,#667085)}
.calendar-editor-v4 .calendar-editor-loader .spinner{width:22px;height:22px;border-width:2px}
.calendar-editor-v4 .calendar-date-note-limit{display:block;margin-top:.28rem;color:var(--muted,#667085);font-size:.72rem;font-weight:500}
.calendar-editor-v4 .calendar-page-thumb-preview{overflow:hidden}
.calendar-editor-v4 .calendar-thumb-simple{width:100%;height:100%;display:flex;flex-direction:column;gap:3px;padding:4px;box-sizing:border-box;overflow:hidden}
.calendar-editor-v4 .calendar-thumb-photo{position:relative;flex:1 1 auto;min-height:0;border-radius:3px;overflow:hidden;background:color-mix(in srgb,var(--theme-primary,#315f50) 8%,#eef1f2)}
.calendar-editor-v4 .calendar-thumb-photo img{display:block;width:100%;height:100%;object-fit:cover}
.calendar-editor-v4 .calendar-thumb-photo.empty{display:grid;place-items:center;color:color-mix(in srgb,var(--theme-primary,#315f50) 58%,#667085);font-size:.8rem}
.calendar-editor-v4 .calendar-thumb-simple>strong,.calendar-editor-v4 .calendar-thumb-simple>span{flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.42rem;line-height:1.05;color:var(--calendar-title,var(--text,#101828))}
.calendar-editor-v4 .calendar-thumb-month-grid{flex:0 0 24%;display:grid;grid-template-columns:repeat(4,1fr);gap:1px}
.calendar-editor-v4 .calendar-thumb-month-grid i,.calendar-editor-v4 .calendar-thumb-family-grid i{display:block;border-radius:1px;background:color-mix(in srgb,var(--theme-primary,#315f50) 12%,#e8e8e4)}
.calendar-editor-v4 .calendar-thumb-family-grid{flex:0 0 24%;display:grid;grid-template-columns:repeat(5,1fr);gap:1px}
.calendar-editor-v4 .calendar-family-member-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* CAL-F2 year-at-a-glance */
.calendar-preview-root.year{display:flex;flex-direction:column;position:relative;overflow:hidden}
.calendar-preview-root.year.composition-overlay{display:block!important}
.calendar-preview-root.year.composition-overlay>.calendar-preview-photo-grid{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:1!important;padding:0!important}
.calendar-preview-root.year.composition-overlay>.calendar-preview-calendar{position:absolute!important;z-index:5!important;overflow:hidden}
.calendar-year-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:clamp(3px,.8cqw,10px);height:100%;min-height:0;padding:clamp(2px,.4cqw,6px);box-sizing:border-box}
.calendar-year-overview.compact{gap:2px;padding:1px}
.calendar-year-month{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid color-mix(in srgb,var(--calendar-line,#d0d5dd) 65%,transparent);border-radius:clamp(2px,.4cqw,6px);overflow:hidden;background:color-mix(in srgb,white 88%,transparent)}
.calendar-year-month>strong{display:block;text-align:center;padding:clamp(1px,.28cqw,4px);font-size:clamp(.46rem,1.1cqw,.78rem);color:var(--calendar-title,currentColor);line-height:1.05}
.calendar-year-weekdays,.calendar-year-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}
.calendar-year-weekdays{font-size:clamp(.3rem,.64cqw,.48rem);font-weight:650;opacity:.68;text-align:center}
.calendar-year-days{flex:1;grid-template-rows:repeat(6,minmax(0,1fr));align-items:center;text-align:center;font-size:clamp(.31rem,.7cqw,.54rem);line-height:1}
.calendar-year-days>span{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}
.calendar-year-days>span.holiday{color:var(--calendar-weekend,#d92d20)}
.calendar-year-days>span.has-user-note{font-weight:750}
.calendar-year-days>span.has-user-note i{position:absolute;width:3px;height:3px;border-radius:50%;background:currentColor;bottom:1px}
.calendar-year-empty{visibility:hidden}
@media(max-width:900px){.calendar-year-overview{gap:2px}.calendar-year-month>strong{font-size:.48rem}.calendar-year-days{font-size:.33rem}.calendar-year-weekdays{font-size:.3rem}}
.calendar-storefront-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:3px;height:100%;min-height:0;padding:2px;box-sizing:border-box}
.calendar-storefront-year-month{display:flex;flex-direction:column;min-height:0;border:1px solid color-mix(in srgb,var(--cal-line,#d0d5dd) 70%,transparent);border-radius:3px;overflow:hidden;background:color-mix(in srgb,var(--cal-bg,#fff) 92%,white)}
.calendar-storefront-year-month>strong{text-align:center;color:var(--cal-title,#101828);font-size:clamp(.36rem,.8vw,.62rem);line-height:1.05;padding:2px}
.calendar-storefront-year-weekdays,.calendar-storefront-year-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.calendar-storefront-year-weekdays{font-size:clamp(.24rem,.52vw,.4rem);font-weight:700;opacity:.65}
.calendar-storefront-year-days{flex:1;grid-template-rows:repeat(6,minmax(0,1fr));font-size:clamp(.24rem,.54vw,.42rem);align-items:center;line-height:1}
.calendar-thumb-year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:2px;flex:1;min-height:0}
.calendar-thumb-year-grid i{display:block;border:1px solid color-mix(in srgb,var(--calendar-line,#d0d5dd) 55%,transparent);border-radius:1px;min-height:3px;background:color-mix(in srgb,white 80%,transparent)}

/* 0.3.429 CAL-F2A – year-calendar polish + non-blocking floating quality warnings */
.calendar-editor-v4 .calendar-editor-stage{position:relative}
.calendar-editor-v4 .calendar-validation-summary{
  position:absolute;
  z-index:18;
  top:14px;
  right:14px;
  width:min(360px,calc(100% - 28px));
  margin:0;
  padding:14px 42px 13px 14px;
  box-shadow:0 14px 38px rgba(16,24,40,.17);
  backdrop-filter:blur(8px);
  align-items:flex-start;
  flex-direction:column;
  gap:8px;
  touch-action:none;
}
.calendar-editor-v4 .calendar-validation-summary[hidden]{display:none!important}
.calendar-editor-v4 .calendar-validation-summary-head{padding-right:6px}
.calendar-editor-v4 .calendar-validation-drag-handle{
  position:absolute;
  right:35px;
  top:7px;
  border:0;
  background:transparent;
  color:#8a8174;
  font-size:1rem;
  letter-spacing:-3px;
  cursor:grab;
  padding:4px 6px;
  line-height:1;
}
.calendar-editor-v4 .calendar-validation-drag-handle:active{cursor:grabbing}
.calendar-editor-v4 .calendar-validation-close{
  position:absolute;
  right:8px;
  top:6px;
  width:26px;
  height:26px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.66);
  color:var(--text,#101828);
  font-size:1rem;
  cursor:pointer;
}
.calendar-editor-v4 .calendar-validation-actions{width:100%;margin-top:2px}
.calendar-editor-v4 .calendar-validation-ok{
  border:0;
  border-radius:999px;
  background:var(--theme-primary,var(--brand,#315f50));
  color:#fff;
  padding:6px 13px;
  font-size:.68rem;
  font-weight:750;
  cursor:pointer;
}
.calendar-editor-v4 .calendar-validation-detail-list{
  width:100%;
  margin:2px 0 0;
  padding:8px 0 0;
  border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:7px;
  max-height:210px;
  overflow:auto;
}
.calendar-editor-v4 .calendar-validation-detail-list[hidden]{display:none!important}
.calendar-editor-v4 .calendar-validation-detail-list li{display:grid;grid-template-columns:minmax(70px,auto) 1fr;gap:8px;align-items:start}
.calendar-editor-v4 .calendar-validation-detail-list strong{font-size:.69rem;white-space:nowrap}
.calendar-editor-v4 .calendar-validation-detail-list span{font-size:.67rem!important;line-height:1.3}
.calendar-editor-v4 .calendar-page-thumb-preview{position:relative}
.calendar-editor-v4 .calendar-thumb-warning{
  position:absolute;
  top:5px;
  right:5px;
  z-index:4;
  width:20px;
  height:20px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#d99b2b;
  color:#fff;
  border:2px solid rgba(255,255,255,.95);
  box-shadow:0 2px 8px rgba(0,0,0,.16);
  font-size:.68rem;
  font-weight:900;
}
.calendar-year-days>span.holiday{
  color:var(--calendar-weekend,#d92d20);
  background:color-mix(in srgb,var(--calendar-weekend,#d92d20) 12%,transparent);
  border-radius:999px;
  font-weight:750;
}
.calendar-year-days>span.weekend:not(.holiday){color:color-mix(in srgb,var(--calendar-weekend,#d92d20) 82%,currentColor)}
@media(max-width:900px){
  .calendar-editor-v4 .calendar-validation-summary{top:8px;right:8px;width:min(330px,calc(100% - 16px))}
}

/* 0.3.429 CAL-F2A – year-calendar polish + non-blocking floating quality warnings */
.calendar-editor-v4 .calendar-editor-stage{position:relative}
.calendar-editor-v4 .calendar-validation-summary{
  position:absolute;
  z-index:18;
  top:14px;
  right:14px;
  width:min(360px,calc(100% - 28px));
  margin:0;
  padding:14px 42px 13px 14px;
  box-shadow:0 14px 38px rgba(16,24,40,.17);
  backdrop-filter:blur(8px);
  align-items:flex-start;
  flex-direction:column;
  gap:8px;
  touch-action:none;
}
.calendar-editor-v4 .calendar-validation-summary[hidden]{display:none!important}
.calendar-editor-v4 .calendar-validation-summary-head{padding-right:6px}
.calendar-editor-v4 .calendar-validation-drag-handle{
  position:absolute;right:35px;top:7px;border:0;background:transparent;color:#8a8174;
  font-size:1rem;letter-spacing:-3px;cursor:grab;padding:4px 6px;line-height:1
}
.calendar-editor-v4 .calendar-validation-drag-handle:active{cursor:grabbing}
.calendar-editor-v4 .calendar-validation-close{
  position:absolute;right:8px;top:6px;width:26px;height:26px;border:0;border-radius:50%;
  background:rgba(255,255,255,.66);color:var(--text,#101828);font-size:1rem;cursor:pointer
}
.calendar-editor-v4 .calendar-validation-actions{width:100%;margin-top:2px}
.calendar-editor-v4 .calendar-validation-ok{
  border:0;border-radius:999px;background:var(--theme-primary,var(--brand,#315f50));color:#fff;
  padding:6px 13px;font-size:.68rem;font-weight:750;cursor:pointer
}
.calendar-editor-v4 .calendar-validation-detail-list{
  width:100%;margin:2px 0 0;padding:8px 0 0;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);
  list-style:none;display:flex;flex-direction:column;gap:7px;max-height:210px;overflow:auto
}
.calendar-editor-v4 .calendar-validation-detail-list[hidden]{display:none!important}
.calendar-editor-v4 .calendar-validation-detail-list li{display:grid;grid-template-columns:minmax(70px,auto) 1fr;gap:8px;align-items:start}
.calendar-editor-v4 .calendar-validation-detail-list strong{font-size:.69rem;white-space:nowrap}
.calendar-editor-v4 .calendar-validation-detail-list span{font-size:.67rem!important;line-height:1.3}
.calendar-editor-v4 .calendar-page-thumb-preview{position:relative}
.calendar-editor-v4 .calendar-thumb-warning{
  position:absolute;top:5px;right:5px;z-index:4;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  background:#d99b2b;color:#fff;border:2px solid rgba(255,255,255,.95);box-shadow:0 2px 8px rgba(0,0,0,.16);
  font-size:.68rem;font-weight:900
}
.calendar-year-days>span.holiday{
  color:var(--calendar-weekend,#d92d20);
  background:color-mix(in srgb,var(--calendar-weekend,#d92d20) 12%,transparent);
  border-radius:999px;
  font-weight:750
}
.calendar-year-days>span.weekend:not(.holiday){color:color-mix(in srgb,var(--calendar-weekend,#d92d20) 82%,currentColor)}
@media(max-width:900px){
  .calendar-editor-v4 .calendar-validation-summary{top:8px;right:8px;width:min(330px,calc(100% - 16px))}
}

.calendar-quarter-shell{display:flex;flex-direction:column;height:100%;min-height:0}.calendar-quarter-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(4px,1cqw,14px);flex:1;min-height:0;padding:clamp(2px,.5cqw,7px);box-sizing:border-box}
.calendar-quarter-overview.compact{gap:2px;padding:1px}
.calendar-quarter-overview .calendar-year-month>strong{font-size:clamp(.55rem,1.35cqw,.95rem);padding:clamp(2px,.4cqw,6px)}
.calendar-quarter-overview .calendar-year-days{font-size:clamp(.52rem,1.2cqw,.86rem)}
.calendar-quarter-overview .calendar-year-weekdays{font-size:clamp(.36rem,.8cqw,.58rem)}

.calendar-storefront-quarter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;height:100%;min-height:0;padding:2px;box-sizing:border-box}
.calendar-storefront-quarter-grid .calendar-storefront-year-month>strong{font-size:clamp(.42rem,1vw,.72rem)}
.calendar-storefront-quarter-grid .calendar-storefront-year-days{font-size:clamp(.3rem,.68vw,.52rem)}

.calendar-quarter-events{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;gap:3px 14px;padding:5px 8px 3px;font-size:clamp(.43rem,.82cqw,.7rem);line-height:1.25;color:var(--cal-text,#344054);border-top:1px solid var(--cal-line,#d0d5dd);max-height:28%;overflow:hidden}
.calendar-quarter-event-month{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0}
.calendar-quarter-event-month>strong{font-weight:800;white-space:nowrap}
.calendar-quarter-event-item{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;min-width:0}
.calendar-quarter-event-item:not(:last-child)::after{content:'·';margin-left:3px;color:color-mix(in srgb,currentColor 45%,transparent)}
.calendar-quarter-event-item>b{font-weight:800}.calendar-quarter-event-item>i{font-style:normal;font-size:.85em;line-height:1}.calendar-quarter-event-item>span{overflow:hidden;text-overflow:ellipsis;max-width:18ch}
.calendar-quarter-overview .calendar-year-days>span.has-user-note{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:clamp(1px,.22cqw,3px);font-weight:750}
.calendar-quarter-overview .calendar-year-days>span.has-user-note>i.calendar-quarter-day-icon{position:static;width:auto;height:auto;background:none;border-radius:0;bottom:auto;font-style:normal;font-size:.68em;line-height:1;flex:0 0 auto;transform:translateY(.08em)}
.calendar-quarter-overview .calendar-year-days>span.has-user-note>i.calendar-quarter-day-icon.marker-only{font-size:.6em}
.calendar-quarter-overview .calendar-year-days>span.has-user-note>.calendar-quarter-day-number{line-height:1}
.calendar-quarter-date-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}.calendar-quarter-date-month{min-height:34px;border:1px solid #d9d4ca;border-radius:9px;background:#fff;font:inherit;font-weight:700;cursor:pointer}.calendar-quarter-date-month.active{background:var(--storefront-primary,#304b66);border-color:var(--storefront-primary,#304b66);color:#fff}

/* CUSTOMER-02: storefront customer account */
.account-nav-button{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;color:var(--ink);font-weight:700;white-space:nowrap;padding:.65rem .75rem;border-radius:999px}.account-nav-button:hover{background:var(--surface-muted)}.account-nav-icon{width:1.35rem;height:1.35rem;display:inline-flex}.account-nav-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.account-shell{min-height:65vh;padding:4rem 1.25rem;display:flex;justify-content:center;background:linear-gradient(180deg,var(--brand-soft),transparent 25rem)}.account-card{width:min(100%,34rem);align-self:flex-start;background:var(--surface-card);border:1px solid var(--line);border-radius:1.5rem;padding:2rem;box-shadow:0 18px 55px color-mix(in srgb,var(--ink) 9%,transparent)}.account-card-wide{width:min(100%,42rem)}.account-heading{margin-bottom:1.5rem}.account-heading h1,.account-dashboard-hero h1{margin:.2rem 0 .55rem;font-family:var(--font-heading);font-size:clamp(2rem,5vw,3rem);line-height:1.05}.account-heading p,.account-dashboard-hero p,.account-feature-card p{color:var(--muted);line-height:1.55}.account-kicker{display:block;color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.account-form{display:grid;gap:1rem}.account-form label:not(.account-check){display:grid;gap:.4rem;font-weight:700}.account-form input[type=email],.account-form input[type=password],.account-form input[type=text]{width:100%;padding:.9rem 1rem;border:1px solid var(--line);border-radius:.8rem;background:var(--paper);color:var(--ink);font:inherit}.account-form input:focus{outline:3px solid var(--brand-soft-strong);border-color:var(--brand)}.account-form small{font-weight:400;color:var(--muted)}.account-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.account-check{display:flex;align-items:flex-start;gap:.7rem;color:var(--muted);font-size:.93rem;line-height:1.45}.account-check input{margin-top:.18rem;width:1.05rem;height:1.05rem;accent-color:var(--brand)}.account-primary,.account-secondary{appearance:none;border:0;border-radius:.8rem;padding:.9rem 1.2rem;font:inherit;font-weight:800;cursor:pointer}.account-primary{background:var(--brand);color:white}.account-primary:hover{background:var(--primary-hover)}.account-secondary{background:var(--surface-muted);color:var(--ink)}.account-alert{padding:.85rem 1rem;border-radius:.8rem;margin-bottom:1rem;font-weight:650}.account-alert-error{background:var(--status-danger-soft);color:var(--status-danger)}.account-alert-success{background:color-mix(in srgb,var(--status-success,#198754) 12%,transparent);color:var(--status-success,#198754)}.account-alert-action{margin-top:.55rem;font-size:.92rem}.account-alert-action a{color:inherit;font-weight:800;text-decoration:underline}.account-divider{display:flex;align-items:center;gap:1rem;color:var(--muted);font-size:.85rem;margin:1.35rem 0}.account-divider:before,.account-divider:after{content:"";height:1px;background:var(--line);flex:1}.account-switch{text-align:center;color:var(--muted);margin:1.25rem 0 0}.account-switch a{color:var(--brand);font-weight:800}.account-consent{margin:.2rem 0}
.account-dashboard-shell{padding-top:3rem}.account-dashboard{width:min(100%,72rem)}.account-dashboard-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;margin-bottom:2rem}.account-dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.account-feature-card{background:var(--surface-card);border:1px solid var(--line);border-radius:1.2rem;padding:1.4rem}.account-feature-card h2{font-size:1.15rem;margin:.8rem 0 .35rem}.account-feature-icon{display:flex;width:2.6rem;height:2.6rem;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand);border-radius:.8rem;font-size:1.3rem;font-weight:800}.account-coming{display:inline-block;margin-top:.5rem;font-size:.78rem;font-weight:800;color:var(--brand)}.account-profile-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;margin-top:1rem;background:var(--surface-card);border:1px solid var(--line);border-radius:1.2rem;padding:1.3rem}.account-profile-summary div{display:grid;gap:.2rem}.account-profile-summary small{color:var(--muted)}
@media(max-width:800px){.account-nav-button span:last-child{display:none}.account-nav-button{padding:.55rem}.account-dashboard-grid,.account-profile-summary{grid-template-columns:1fr}.account-dashboard-hero{display:grid}.account-grid-2{grid-template-columns:1fr}.account-shell{padding:2rem .9rem}.account-card{padding:1.35rem}}

/* 0.3.444 customer account pages: align with normal storefront layout */
.account-campaign-banner-stack{margin:0}
.account-shell{min-height:0;padding:clamp(2.5rem,6vw,5rem) 1.25rem;background:transparent}
.account-card{box-shadow:0 12px 38px color-mix(in srgb,var(--ink) 8%,transparent)}
.account-muted{color:var(--muted);line-height:1.55;margin:.25rem 0 1.25rem}
.account-button-link{display:block;text-align:center;text-decoration:none}
@media(max-width:720px){.account-shell{padding:2rem 1rem}.account-card{padding:1.4rem;border-radius:1.15rem}}

/* CUSTOMER-03 account dashboard/profile */
.account-dashboard-stats{margin-bottom:1rem}.account-stat-number,.account-stat-text{display:block;margin:.2rem 0 .3rem;font-family:var(--font-heading);font-size:1.8rem;color:var(--ink)}.account-stat-text{font-size:1.35rem}.account-dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.account-panel{background:var(--surface-card);border:1px solid var(--line);border-radius:1.2rem;padding:1.4rem}.account-panel-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.account-panel-heading h2{margin:.2rem 0 .25rem;font-size:1.35rem}.account-panel-heading p{margin:.25rem 0 0;color:var(--muted);line-height:1.5}.account-list{display:grid;gap:.65rem}.account-list-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:var(--paper)}.account-list-item>div{display:grid;gap:.2rem;min-width:0}.account-list-item span,.account-list-item small{color:var(--muted)}.account-list-item small{font-size:.78rem}.account-inline-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}.account-empty-state{padding:1.1rem;border:1px dashed var(--line);border-radius:.9rem;background:var(--paper)}.account-empty-state p{color:var(--muted);line-height:1.5;margin:.35rem 0 1rem}.account-profile-panel{margin-top:1rem}.account-profile-form select,.account-form input[type=tel],.account-form input[type=date]{width:100%;padding:.9rem 1rem;border:1px solid var(--line);border-radius:.8rem;background:var(--paper);color:var(--ink);font:inherit}.account-profile-form select:focus,.account-form input[type=tel]:focus,.account-form input[type=date]:focus{outline:3px solid var(--brand-soft-strong);border-color:var(--brand)}.account-form-actions{display:flex;justify-content:flex-end;margin-top:.25rem}
@media(max-width:900px){.account-dashboard-columns{grid-template-columns:1fr}}@media(max-width:650px){.account-list-item{align-items:flex-start;flex-direction:column}.account-list-item .account-inline-button{width:100%}.account-form-actions .account-primary{width:100%}}
.customer-library{width:min(100%,78rem)}.customer-album-create{margin-bottom:1rem}.customer-album-create-form{display:flex;gap:.75rem}.customer-album-create-form input,.customer-album-rename-form input,.customer-asset-actions select,.customer-asset-add-form select{min-width:0;padding:.72rem .85rem;border:1px solid var(--line);border-radius:.75rem;background:var(--paper);color:var(--ink);font:inherit}.customer-album-create-form input{flex:1}.customer-album-list{display:grid;gap:1rem}.customer-album-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.customer-album-rename-form{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1}.customer-album-rename-form input{font-weight:800;font-size:1.15rem;max-width:28rem}.customer-album-meta{display:flex;align-items:center;gap:.9rem;color:var(--muted);font-size:.9rem}.customer-album-meta form,.customer-asset-actions form{margin:0}.customer-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem}.customer-asset-card{min-width:0;border:1px solid var(--line);border-radius:1rem;background:var(--paper);overflow:hidden}.customer-asset-card>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--surface-muted)}.customer-asset-info{display:grid;gap:.15rem;padding:.75rem .8rem}.customer-asset-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.customer-asset-info small{color:var(--muted)}.customer-asset-actions,.customer-asset-add-form{display:grid;gap:.45rem;padding:0 .8rem .8rem}.customer-asset-actions form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem;align-items:center}.customer-asset-actions form:last-child{display:block}.customer-asset-add-form{grid-template-columns:minmax(0,1fr) auto}.customer-text-button{border:0;background:none;color:var(--brand);font:inherit;font-weight:800;padding:.25rem 0;cursor:pointer}.customer-danger{color:var(--status-danger,#b42318)}.customer-unassigned-panel{margin-top:1rem}.customer-library-empty{margin-top:1rem}@media(max-width:700px){.customer-album-create-form,.customer-album-heading,.customer-album-rename-form{display:grid}.customer-album-meta{justify-content:space-between}.customer-album-rename-form input{max-width:none}.customer-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-asset-add-form{grid-template-columns:1fr}.customer-asset-actions form{grid-template-columns:1fr}.customer-album-create-form .account-primary{width:100%}}@media(max-width:430px){.customer-asset-grid{grid-template-columns:1fr}}

@media(min-width:801px){.account-dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* CUSTOMER-06b: customer library picker inside photo ordering. */
.customer-library-dialog{width:min(980px,100%);max-height:min(82vh,820px);display:flex;flex-direction:column;overflow:hidden}
.customer-library-dialog>p{margin-top:4px;color:#68736f}
.customer-library-albums{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 12px}
.customer-library-albums button{border:1px solid #ddd7cf;background:var(--surface-card,#fff);border-radius:999px;padding:8px 12px;cursor:pointer;font:inherit;color:inherit}
.customer-library-albums button.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}
.customer-library-albums span{opacity:.65;margin-left:4px}
.customer-library-status{padding:26px 8px;text-align:center;color:#68736f}.customer-library-status.hidden{display:none}
.customer-library-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;overflow:auto;padding:4px 4px 14px;min-height:120px}
.customer-library-card{position:relative;border:1px solid #ddd7cf;border-radius:14px;background:#fff;padding:0;overflow:hidden;text-align:left;cursor:pointer;min-width:0}
.customer-library-card.selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.customer-library-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#f1f1ef}
.customer-library-card-copy{display:grid;gap:2px;padding:9px 10px}.customer-library-card-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.customer-library-card-copy small{color:#68736f}
.customer-library-check{position:absolute;right:8px;top:8px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);border:1px solid #d8d4cc;font-weight:800;z-index:1}.customer-library-card.selected .customer-library-check{background:var(--brand);color:#fff;border-color:var(--brand)}
.customer-library-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #e5e1da;padding-top:14px;margin-top:auto}
@media(max-width:900px){.customer-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.customer-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-library-footer{align-items:stretch;flex-direction:column}.customer-library-footer .btn{width:100%}}

/* CUSTOMER-07 guest album sharing */
.customer-album-share{margin:1rem 0 1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-card)}
.customer-album-share>summary{cursor:pointer;padding:1rem 1.1rem;font-weight:800;list-style:none}
.customer-album-share>summary::-webkit-details-marker{display:none}
.customer-album-share-body{padding:0 1.1rem 1.1rem;display:grid;gap:1rem}
.customer-share-link-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center}
.customer-share-link-row{display:flex;gap:.6rem;min-width:0}.customer-share-link-row input{min-width:0;flex:1}
.customer-share-qr{width:112px;height:112px;border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:.35rem}
.customer-share-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}
.customer-share-settings>label{display:flex;align-items:center;gap:.5rem}.customer-share-settings>label:last-of-type{grid-column:1/-1;display:grid;gap:.35rem}
.customer-share-settings input[type="date"]{max-width:16rem}.customer-share-actions{grid-column:1/-1}
.customer-share-secondary-actions{display:flex;gap:1rem;flex-wrap:wrap}.guest-album-page form[enctype]{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.customer-share-link-wrap{grid-template-columns:1fr}.customer-share-qr{width:96px;height:96px}.customer-share-settings{grid-template-columns:1fr}.customer-share-settings>label:last-of-type,.customer-share-actions{grid-column:auto}.customer-share-link-row{flex-direction:column}}

/* CUSTOMER-07b: guest-album sharing UX and upload source flow. */
.customer-share-settings .switch-row{position:relative;display:inline-flex;align-items:center;gap:11px;cursor:pointer;color:var(--ink);min-height:46px;padding:.75rem .85rem;border:1px solid var(--line);border-radius:.85rem;background:var(--paper)}
.customer-share-settings .switch-row>input[type=checkbox]{position:absolute;left:.85rem;top:50%;width:44px;height:24px;margin:0;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:2}
.customer-share-settings .switch-track{width:44px;height:24px;flex:0 0 44px;border-radius:999px;background:#cbd2cf;padding:3px;transition:background .18s ease}
.customer-share-settings .switch-track i{display:block;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(24,39,34,.2);transition:transform .18s ease}
.customer-share-settings .switch-row>input[type=checkbox]:checked~.switch-track{background:var(--brand)}
.customer-share-settings .switch-row>input[type=checkbox]:checked~.switch-track i{transform:translateX(20px)}
.customer-share-settings .switch-row>input[type=checkbox]:focus-visible~.switch-track{box-shadow:0 0 0 3px var(--brand-soft-strong)}
.customer-share-settings .switch-row>span:last-child{display:grid;gap:2px}.customer-share-settings .switch-row>span:last-child strong{font-size:.9rem}
.customer-share-settings>.customer-share-expiry{grid-column:1/-1;display:grid;gap:.35rem;font-weight:700}
.guest-album-page .guest-upload-panel form[enctype]{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.guest-upload-source-hint{color:var(--muted)}
.guest-album-upload-progress{position:static;width:100%;margin-top:1rem;transform:none;left:auto;top:auto}.guest-album-upload-progress.has-failures .classic-upload-progress-track>span{background:var(--status-danger,#b42318)}
.guest-upload-source-dialog{width:min(620px,calc(100vw - 28px))}.guest-upload-qr-view{display:grid;justify-items:center;text-align:center;gap:1rem;padding:.5rem 0 1rem}.guest-upload-qr-view.hidden{display:none}.guest-upload-qr-copy{max-width:29rem}.guest-upload-qr-copy h3{font-size:1.5rem;margin:.25rem 0 .4rem}.guest-upload-qr-copy p{margin:0;color:var(--muted);line-height:1.5}.guest-upload-qr{width:min(260px,65vw);aspect-ratio:1;border:1px solid var(--line);border-radius:1rem;background:#fff;padding:.65rem}.guest-upload-back{justify-self:start}.guest-upload-source-dialog .source-choice-grid.hidden{display:none}
@media(max-width:700px){.customer-share-settings>.customer-share-expiry{grid-column:auto}.guest-album-page .guest-upload-panel form[enctype]{align-items:stretch;flex-direction:column}.guest-album-page .guest-upload-panel .account-primary{width:100%}.guest-upload-source-hint{text-align:center}}

/* CUSTOMER-09: account creation inside checkout */
.checkout-account-card{margin:1.4rem 0;padding:1.1rem 1.15rem;border:1px solid var(--line);border-radius:1rem;background:var(--paper)}
.checkout-account-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.checkout-account-heading h2{margin:.1rem 0 .35rem}.checkout-account-heading p{margin:0;max-width:680px;color:var(--muted)}.checkout-account-heading>a{white-space:nowrap;font-weight:700}
.checkout-account-toggle,.checkout-account-marketing{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer}.checkout-account-toggle{font-weight:700;padding:.8rem 0}.checkout-account-toggle input,.checkout-account-marketing input{margin-top:.2rem}
.checkout-account-fields{display:grid;gap:.85rem;padding-top:.85rem;border-top:1px solid var(--line)}.checkout-account-fields.hidden{display:none}.checkout-account-marketing{font-size:.92rem}
@media(max-width:760px){.checkout-account-heading{display:grid}.checkout-account-heading>a{white-space:normal}}

/* Storefront top announcement banner (0.3.524) */
.storefront-top-banner{width:100%;background:var(--top-banner-bg,#EAF3FF);color:var(--top-banner-fg,#234D78);position:relative;z-index:90;font-family:var(--font-body);box-shadow:inset 0 -1px 0 rgba(0,0,0,.06)}
.storefront-top-banner[hidden]{display:none!important}
.storefront-top-banner-inner{min-height:44px;max-width:1440px;margin:0 auto;padding:9px 54px 9px 24px;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;text-align:center;font-size:14px;line-height:1.35;font-weight:650}
.storefront-top-banner-icon{width:22px;height:22px;border:1px solid currentColor;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:13px;font-weight:800;line-height:1}
.storefront-top-banner-text{white-space:pre-line}
.storefront-top-banner-close{appearance:none;border:0;background:transparent;color:inherit;width:34px;height:34px;border-radius:999px;position:absolute;right:14px;top:50%;transform:translateY(-50%);font:400 24px/1 Arial,sans-serif;cursor:pointer;opacity:.75}
.storefront-top-banner-close:hover,.storefront-top-banner-close:focus-visible{background:rgba(0,0,0,.08);opacity:1;outline:none}
@media(max-width:700px){.storefront-top-banner-inner{justify-content:flex-start;text-align:left;padding:10px 48px 10px 14px;font-size:13px}.storefront-top-banner-icon{align-self:flex-start;margin-top:1px}.storefront-top-banner-close{right:8px}}

/* 0.3.525 - top banner can reuse the checkout/option icon catalogue */
.storefront-top-banner-icon-asset i{display:block;width:13px;height:13px;background:currentColor;-webkit-mask:var(--top-banner-icon-url) center/contain no-repeat;mask:var(--top-banner-icon-url) center/contain no-repeat}


/* SURF-05b: choose an inherited/product surface while adding a size to one photo. */
.add-format-row:has(.add-surface:not(.hidden)){grid-template-columns:minmax(0,1fr) minmax(72px,.72fr) auto}
.add-format-row .add-surface{min-width:0}
@media(max-width:600px){
  .add-format-row:has(.add-surface:not(.hidden)){grid-template-columns:1fr 1fr}
  .add-format-row:has(.add-surface:not(.hidden)) .add-format-btn{grid-column:1/-1}
}


/* Collage gallery card normalization 0.3.556 */
.creative-gallery-filter-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 20px;flex-wrap:wrap}
.creative-gallery-filter-row .creative-gallery-filters{margin:0}
.creative-template-count{align-self:center;color:var(--muted);font-size:.78rem;font-weight:750;white-space:nowrap;padding:7px 2px}
.creative-template-gallery{align-items:start;overflow:visible!important;max-height:none!important}
.creative-template-card{
    min-height:0!important;
    height:214px;
    grid-template-rows:126px auto auto;
    align-content:start;
    justify-items:stretch;
    overflow:hidden;
}
.creative-template-card>strong{
    display:block;
    width:100%;
    text-align:center;
    line-height:1.18;
    min-height:2.35em;
    max-height:2.35em;
    overflow:hidden;
}
.creative-template-card>small{display:block;width:100%;text-align:center;line-height:1.2}
.creative-template-mini,
.creative-template-mini.portrait,
.creative-template-mini.landscape,
.creative-template-mini.square{
    width:100%!important;
    height:126px!important;
    aspect-ratio:auto!important;
    margin:0!important;
    display:grid!important;
    place-items:center;
    padding:7px;
    box-sizing:border-box;
    overflow:hidden;
}
.creative-template-mini .mini-rect-layout{
    flex:none!important;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:100%;
    box-sizing:border-box;
}
.creative-template-mini.landscape .mini-rect-layout{width:100%;aspect-ratio:3/2}
.creative-template-mini.portrait .mini-rect-layout{height:100%;aspect-ratio:2/3}
.creative-template-mini.square .mini-rect-layout{height:100%;aspect-ratio:1/1}
.creative-template-mini>em{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:5;padding:1px 4px;border-radius:4px;background:rgba(255,255,255,.86)}
.creative-template-mini>em.top{top:8px;bottom:auto}
@media(max-width:760px){
    .creative-gallery-filter-row{display:grid;grid-template-columns:1fr}
    .creative-template-count{justify-self:start}
    .creative-template-card{height:204px;grid-template-rows:118px auto auto}
    .creative-template-mini,.creative-template-mini.portrait,.creative-template-mini.landscape,.creative-template-mini.square{height:118px!important}
}


/* FIX-010 / 0.3.557 – collage gallery full-page flow + rectangular preview stage */
.creative-page.gallery-mode{
    height:auto!important;
    min-height:calc(100vh - 88px)!important;
    overflow:visible!important;
    padding:24px 0 80px!important;
}
.creative-page.gallery-mode .creative-shell{
    height:auto!important;
    min-height:0;
    display:block;
}
.creative-page.gallery-mode #creativeGalleryView{
    display:block;
    overflow:visible;
}
.creative-page.gallery-mode .creative-template-gallery{
    overflow:visible!important;
    max-height:none!important;
}
.creative-template-card{
    height:194px;
    grid-template-rows:104px auto auto;
}
.creative-template-mini,
.creative-template-mini.portrait,
.creative-template-mini.landscape,
.creative-template-mini.square{
    width:100%!important;
    height:104px!important;
    aspect-ratio:auto!important;
    margin:0!important;
    display:grid!important;
    place-items:center;
    padding:7px;
    box-sizing:border-box;
    overflow:hidden;
    position:relative;
    border:1px solid #e3dfd8;
    border-radius:10px;
    background:#faf9f7;
}
.creative-template-mini.landscape .mini-rect-layout{width:100%;height:auto;aspect-ratio:3/2}
.creative-template-mini.portrait .mini-rect-layout{height:100%;width:auto;aspect-ratio:2/3}
.creative-template-mini.square .mini-rect-layout{height:100%;width:auto;aspect-ratio:1/1}
@media(max-width:760px){
    .creative-page.gallery-mode{padding:18px 0 60px!important}
    .creative-template-card{height:188px;grid-template-rows:100px auto auto}
    .creative-template-mini,.creative-template-mini.portrait,.creative-template-mini.landscape,.creative-template-mini.square{height:100px!important}
}

/* CTL-06: product/size first creative storefront flow */
.creative-product-first-step,.calendar-size-first-step{margin:18px 0 22px;padding:16px;border:1px solid #dfe6e2;border-radius:16px;background:#fff}
.creative-step-heading{display:flex;align-items:center;gap:10px;margin:4px 0 12px;color:#24312d}
.creative-step-heading>span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#24312d;color:#fff;font-weight:800;font-size:.82rem;flex:0 0 auto}
.creative-step-heading strong{display:block}.creative-step-heading small{display:block;margin-top:2px;color:#6b756f;font-size:.78rem;font-weight:500}
.creative-design-step,.calendar-design-step{margin-top:18px}
.creative-size-choice-row{display:flex;flex-wrap:wrap;gap:9px}
.creative-size-choice{appearance:none;border:1px solid #d5ddd9;border-radius:12px;background:#fff;padding:10px 14px;min-width:138px;text-align:left;cursor:pointer;color:#24312d}
.creative-size-choice strong,.creative-size-choice span{display:block}.creative-size-choice span{margin-top:2px;font-size:.76rem;color:#6b756f}
.creative-size-choice:hover{border-color:#8fa49b}.creative-size-choice.active{border-color:#385b4f;background:#f0f6f3;box-shadow:0 0 0 1px #385b4f}
.calendar-variant-choice-grid-compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:0}
.calendar-size-link{text-decoration:none;color:inherit}
.calendar-size-link.selected{border-color:#385b4f;background:#f0f6f3;box-shadow:0 0 0 1px #385b4f}
@media(max-width:760px){.creative-size-choice{flex:1 1 140px}.calendar-variant-choice-grid-compact{grid-template-columns:1fr}}

/* Collage category-size family + pricing 0.3.570 */
.storefront-category-link{color:inherit;text-decoration:none}.storefront-category-link:hover{text-decoration:underline;text-underline-offset:3px}
.creative-size-choice-row-rich{align-items:stretch}
.creative-size-choice-wrap{position:relative;display:flex;align-items:stretch;min-width:170px}
.creative-size-choice-wrap>.creative-size-choice{padding-right:52px;min-width:170px;flex:1}
.creative-size-choice .creative-size-price{font-size:.86rem;color:#263b34;font-weight:700;margin-top:5px}
.creative-size-choice .creative-size-before{text-decoration:line-through;color:#8a938f;font-size:.72rem}
.creative-size-choice-tools{position:absolute;right:8px;top:8px;display:flex;gap:5px;align-items:center;z-index:3}
.creative-size-info,.creative-size-express{width:25px;height:25px;border-radius:999px;display:grid;place-items:center;font-size:.76rem;font-weight:800}
.creative-size-info{border:1px solid #cdd8d3;background:#fff;color:#385b4f;cursor:pointer}.creative-size-info:hover{background:#edf5f1}
.creative-size-express{background:#fff4d7;color:#8b6500;border:1px solid #ead59d}
.creative-size-price-popover{position:absolute;z-index:12;top:calc(100% + 7px);left:0;min-width:230px;max-width:300px;background:#fff;border:1px solid #d7dfdb;border-radius:12px;box-shadow:0 12px 30px rgba(31,48,42,.16);padding:12px}
.creative-size-price-popover>strong{display:block;margin-bottom:7px}.creative-size-price-popover>span{display:flex;justify-content:space-between;gap:16px;padding:5px 0;border-top:1px solid #edf0ee;font-size:.8rem}.creative-size-price-popover>span:first-of-type{border-top:0}.creative-size-price-popover b{font-weight:600}.creative-size-price-popover em{font-style:normal;white-space:nowrap}.creative-size-price-popover small{display:block;margin-top:8px;color:#766117}
@media(max-width:760px){.creative-size-choice-wrap{flex:1 1 155px}.creative-size-choice-wrap>.creative-size-choice{min-width:0;width:100%}.creative-size-price-popover{right:0;left:auto}}

/* 0.3.571 – campaign context on creative size cards */
.creative-size-choice .creative-size-campaign-badge{
    display:inline-flex;
    width:max-content;
    max-width:150px;
    margin-top:6px;
    padding:3px 7px;
    border-radius:999px;
    background:var(--status-success-soft,#e6f5eb);
    color:var(--status-success,#26704c);
    font-size:.62rem;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.035em;
    text-transform:uppercase;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* CAL-NAV 0.3.572 */
.calendar-type-choice-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:18px;
    margin:24px 0 40px;
}
.calendar-type-choice{
    display:flex;
    align-items:center;
    gap:16px;
    padding:22px;
    border:1px solid rgba(30,48,44,.13);
    border-radius:18px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(20,40,36,.04);
}
.calendar-type-choice:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(20,40,36,.08)}
.calendar-type-choice-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(36,92,77,.08);font-size:22px}
.calendar-type-choice div{flex:1;min-width:0}
.calendar-type-choice strong{display:block;font-size:1.08rem}
.calendar-type-choice p{margin:.3rem 0;color:var(--muted,#6f7773)}
.calendar-type-choice small{color:var(--muted,#6f7773)}
.calendar-design-card.disabled{cursor:default;opacity:.86}
.calendar-design-card.disabled:hover{transform:none}
.calendar-design-select-size-note{display:inline-block;margin-top:.35rem;font-weight:700;color:var(--muted,#6f7773)}
.category-type-grid .category-type-card small{display:block;margin-top:.6rem;color:var(--muted,#6f7773)}


/* ============================================================
   RESP-01 / RESP-02 – 0.3.573
   Shared responsive foundation + creative storefront sizing.
   Width adapts fluidly, while creative editors also react to
   viewport height (important for 16:9 / ultrawide screens).
   ============================================================ */
:root{
    --portal-shell-max:1680px;
    --creative-shell-max:1900px;
    --portal-gutter:clamp(12px,2vw,32px);
    --responsive-card-gap:clamp(10px,1.15vw,18px);
}

/* Keep ordinary reading pages controlled, but let visual/catalog pages
   use more of 2.7K / 4K / ultrawide screens. */
.creative-page .creative-shell,
.calendar-storefront-page.shell{
    width:min(var(--creative-shell-max),calc(100% - (var(--portal-gutter) * 2)));
    max-width:none;
}

.creative-page.gallery-mode .creative-gallery-head,
.calendar-storefront-head{
    margin-bottom:clamp(16px,2vh,28px);
}

/* Storefront cards scale by available space rather than by one fixed
   desktop column count. */
.creative-page.gallery-mode .creative-template-gallery{
    grid-template-columns:repeat(auto-fit,minmax(clamp(148px,10vw,190px),1fr));
    gap:var(--responsive-card-gap);
}
.calendar-design-grid{
    grid-template-columns:repeat(auto-fit,minmax(clamp(180px,14vw,235px),1fr));
    gap:var(--responsive-card-gap);
}
.calendar-type-choice-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
    gap:var(--responsive-card-gap);
}
.creative-size-choice-row-rich{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));
    gap:10px;
}
.creative-size-choice-row-rich .creative-size-choice-wrap{
    width:100%;
    min-width:0;
}

/* -------- Creative editor: height-aware 3-column workspace -------- */
@media (min-width:1201px){
    .creative-page:not(.gallery-mode){
        height:calc(100dvh - 76px);
        min-height:560px;
        overflow:hidden;
    }
    .creative-page:not(.gallery-mode) .creative-shell{
        height:100%;
        display:flex;
        flex-direction:column;
        min-height:0;
    }
    .creative-page:not(.gallery-mode) #creativeEditorView:not(.hidden){
        flex:1 1 auto;
        min-height:0;
        display:flex;
        flex-direction:column;
    }
    .creative-page:not(.gallery-mode) .creative-top{
        flex:0 0 auto;
    }
    .creative-page:not(.gallery-mode) .creative-workspace{
        flex:1 1 auto;
        min-height:0;
        height:auto;
        align-items:stretch;
        grid-template-columns:clamp(220px,15vw,290px) minmax(0,1fr) clamp(250px,17vw,320px);
    }
    .creative-page:not(.gallery-mode) .creative-assets,
    .creative-page:not(.gallery-mode) .creative-stage-panel,
    .creative-page:not(.gallery-mode) .creative-summary{
        height:100%;
        min-height:0;
    }
    .creative-page:not(.gallery-mode) .creative-assets,
    .creative-page:not(.gallery-mode) .creative-summary{
        overflow-y:auto;
        overscroll-behavior:contain;
        scrollbar-width:thin;
    }
    .creative-page:not(.gallery-mode) .creative-stage-panel{
        display:flex;
        min-width:0;
    }
    .creative-page:not(.gallery-mode) .creative-canvas-wrap{
        flex:1 1 auto;
        min-height:0;
        height:100%;
    }
    .creative-page:not(.gallery-mode) .creative-canvas{
        max-height:100%;
    }
}

/* Normal Full HD: retain three columns, but spend less vertical space on
   chrome and closed controls. */
@media (min-width:1201px) and (max-height:900px){
    .creative-page:not(.gallery-mode){padding-top:5px;padding-bottom:6px}
    .creative-page:not(.gallery-mode) .creative-top{margin-bottom:4px}
    .creative-page:not(.gallery-mode) .creative-top h1{font-size:1.55rem}
    .creative-page:not(.gallery-mode) .creative-top p{font-size:.78rem;margin:.2rem 0}
    .creative-page:not(.gallery-mode) .creative-assets,
    .creative-page:not(.gallery-mode) .creative-summary{padding:8px}
    .creative-page:not(.gallery-mode) .creative-accordion-head{padding:8px 9px;font-size:.78rem}
    .creative-page:not(.gallery-mode) .creative-accordion-body{padding:0 9px 9px;gap:8px}
    .creative-page:not(.gallery-mode) .creative-hint{margin:2px 0;font-size:.67rem}
    .creative-page:not(.gallery-mode) .creative-save-state{margin:4px 0}
    .creative-page:not(.gallery-mode) #creativeSave{min-height:40px}
    .creative-page:not(.gallery-mode) .creative-asset-filter{margin:7px 0}
}

/* Very low-height laptops: canvas gets priority. */
@media (min-width:1201px) and (max-height:760px){
    .creative-page:not(.gallery-mode) .creative-top p,
    .creative-page:not(.gallery-mode) .creative-hint{display:none}
    .creative-page:not(.gallery-mode) .creative-top h1{font-size:1.35rem}
    .creative-page:not(.gallery-mode) .creative-order-head .eyebrow{display:none}
    .creative-page:not(.gallery-mode) .creative-accordion-head{padding:6px 8px}
    .creative-page:not(.gallery-mode) .creative-missing{padding:5px 7px}
    .creative-page:not(.gallery-mode) .creative-summary{gap:5px}
}

/* Calendar editor already owns the viewport; compact its side chrome as
   viewport height falls instead of collapsing the three-column layout early. */
@media (min-width:1181px) and (max-height:900px){
    .calendar-editor-page.shell.calendar-editor-v4{height:calc(100dvh - 72px);min-height:560px;padding-top:4px}
    .calendar-editor-v4 .calendar-editor-topbar{min-height:40px;margin-bottom:4px}
    .calendar-editor-v4 .calendar-editor-topbar h1{font-size:1.15rem}
    .calendar-editor-v4 .calendar-assets-panel,
    .calendar-editor-v4 .calendar-editor-sidebar{padding:10px}
    .calendar-editor-v4 .calendar-panel-tab{min-height:32px;padding:5px 6px}
    .calendar-editor-v4 .creative-accordion-head{padding:7px 8px;font-size:.76rem}
    .calendar-editor-v4 .creative-accordion-body{padding:0 8px 8px;gap:7px}
    .calendar-editor-v4 .calendar-editor-sidebar{gap:6px}
    .calendar-editor-v4 .calendar-main-editor{grid-template-rows:38px minmax(0,1fr) 132px;gap:5px}
    .calendar-editor-v4 .calendar-pages-panel{height:132px;padding:6px 8px}
    .calendar-editor-v4 .calendar-page-strip{height:91px;grid-auto-columns:74px}
    .calendar-editor-v4 .calendar-page-thumb{height:86px}
    .calendar-editor-v4 .calendar-page-thumb-preview{height:64px}
}
@media (min-width:1181px) and (max-height:760px){
    .calendar-editor-v4 .calendar-editor-topbar .text-link{font-size:.72rem}
    .calendar-editor-v4 .calendar-page-help{display:none}
    .calendar-editor-v4 .calendar-main-editor{grid-template-rows:34px minmax(0,1fr) 110px}
    .calendar-editor-v4 .calendar-pages-panel{height:110px}
    .calendar-editor-v4 .calendar-pages-heading{height:22px;margin-bottom:3px}
    .calendar-editor-v4 .calendar-page-strip{height:76px;grid-auto-columns:62px}
    .calendar-editor-v4 .calendar-page-thumb{height:72px;padding:3px}
    .calendar-editor-v4 .calendar-page-thumb-preview{height:52px}
}

/* Tablet: two useful columns in galleries. Editors may stack, but controls
   stay compact and touch-friendly. */
@media (max-width:900px){
    .creative-page .creative-shell,
    .calendar-storefront-page.shell{width:calc(100% - 24px)}
    .creative-page.gallery-mode .creative-gallery-head{grid-template-columns:1fr;gap:8px}
    .creative-page.gallery-mode .creative-gallery-head h1,
    .calendar-storefront-head h1{font-size:clamp(1.8rem,7vw,2.7rem)}
    .creative-template-gallery,
    .calendar-design-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .creative-size-choice-row-rich{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Mobile: preserve usable tap targets while reducing wasted vertical space. */
@media (max-width:600px){
    .creative-page .creative-shell,
    .calendar-storefront-page.shell{width:calc(100% - 20px)}
    .creative-page.gallery-mode{padding-top:12px!important}
    .creative-gallery-filters{gap:7px}
    .creative-gallery-filters .segmented{max-width:100%;overflow-x:auto;scrollbar-width:none}
    .creative-gallery-filters .segmented::-webkit-scrollbar{display:none}
    .creative-gallery-filters button{padding:7px 10px;white-space:nowrap}
    .creative-template-gallery,
    .calendar-design-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px}
    .creative-template-card{padding:8px;border-radius:14px}
    .calendar-design-card{border-radius:14px}
    .creative-size-choice-row-rich{grid-template-columns:1fr}
    .calendar-type-choice-grid{grid-template-columns:1fr;margin-top:16px}
    .calendar-type-choice{padding:15px}
}

@media (max-width:390px){
    .creative-template-gallery,
    .calendar-design-grid{grid-template-columns:1fr!important}
}

/* ============================================================
   RESP-03 — Collage builder: height-aware panel tabs + mobile sheets
   ============================================================ */
.creative-panel-tabs,
.creative-mobile-dock,
.creative-mobile-sheet-head,
.creative-mobile-sheet-backdrop{display:none}

@media (min-width:1201px){
    .creative-page:not(.gallery-mode) .creative-summary{
        display:flex;
        flex-direction:column;
        overflow:hidden;
    }
    .creative-page:not(.gallery-mode) .creative-order-head,
    .creative-page:not(.gallery-mode) .creative-missing{
        flex:0 0 auto;
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs{
        flex:0 0 auto;
        display:grid;
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:3px;
        padding:3px;
        margin:2px 0 7px;
        border:1px solid var(--line,#e5e0d7);
        border-radius:11px;
        background:var(--surface-muted,#f6f4ef);
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs button{
        min-width:0;
        min-height:48px;
        padding:5px 3px 4px;
        border:0;
        border-radius:8px;
        background:transparent;
        color:var(--muted,#667085);
        cursor:pointer;
        display:grid;
        place-items:center;
        align-content:center;
        gap:1px;
        font:inherit;
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs button>span{
        font-size:1rem;
        line-height:1;
        font-weight:800;
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs button>small{
        font-size:.61rem;
        font-weight:800;
        line-height:1.1;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        max-width:100%;
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs button.active{
        background:var(--surface-card,#fff);
        color:var(--theme-primary,#315f50);
        box-shadow:0 1px 4px rgba(19,36,31,.09);
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs button.hidden{display:none}
    .creative-page:not(.gallery-mode) .creative-accordion{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
        overscroll-behavior:contain;
        border:0;
        border-radius:0;
        background:transparent;
        scrollbar-width:thin;
    }
    .creative-page:not(.gallery-mode) .creative-accordion-item{
        display:none;
        border:0!important;
        background:transparent;
    }
    .creative-page:not(.gallery-mode) .creative-accordion-item.open{display:block}
    .creative-page:not(.gallery-mode) .creative-accordion-head{display:none}
    .creative-page:not(.gallery-mode) .creative-accordion-body,
    .creative-page:not(.gallery-mode) .creative-accordion-item.open>.creative-accordion-body{
        display:grid;
        padding:3px 2px 8px;
        gap:9px;
        max-height:none;
        overflow:visible;
    }
    .creative-page:not(.gallery-mode) .creative-hint,
    .creative-page:not(.gallery-mode) .creative-save-state,
    .creative-page:not(.gallery-mode) #creativeSave,
    .creative-page:not(.gallery-mode) #creativeProductionPreview,
    .creative-page:not(.gallery-mode) .creative-cancel-design{
        flex:0 0 auto;
    }
}

@media (min-width:1201px) and (max-height:900px){
    .creative-page:not(.gallery-mode) .creative-panel-tabs{margin-bottom:5px}
    .creative-page:not(.gallery-mode) .creative-panel-tabs button{min-height:40px;padding:3px 2px}
    .creative-page:not(.gallery-mode) .creative-panel-tabs button>span{font-size:.9rem}
    .creative-page:not(.gallery-mode) .creative-panel-tabs button>small{font-size:.57rem}
    .creative-page:not(.gallery-mode) .creative-order-head{padding-bottom:5px}
    .creative-page:not(.gallery-mode) .creative-missing{margin:3px 0 5px}
}

@media (min-width:1201px) and (max-height:760px){
    .creative-page:not(.gallery-mode) .creative-panel-tabs button{min-height:34px;grid-auto-flow:column;justify-content:center;gap:4px}
    .creative-page:not(.gallery-mode) .creative-panel-tabs button>span{font-size:.78rem}
    .creative-page:not(.gallery-mode) .creative-panel-tabs button>small{font-size:.54rem}
    .creative-page:not(.gallery-mode) .creative-order-head h3{font-size:.88rem}
    .creative-page:not(.gallery-mode) .creative-price-wrap strong{font-size:.92rem}
    .creative-page:not(.gallery-mode) #creativeProductionPreview,
    .creative-page:not(.gallery-mode) .creative-cancel-design{display:none}
}

/* Canvas-first mobile/tablet editor. Panels are opened as bottom sheets instead
   of stacking the desktop sidebars above/below the canvas. */
@media (max-width:900px){
    body.creative-mobile-sheet-open{overflow:hidden}
    .creative-page:not(.gallery-mode){
        padding-bottom:74px;
    }
    .creative-page:not(.gallery-mode) .creative-top{
        margin-bottom:7px;
    }
    .creative-page:not(.gallery-mode) .creative-top>div p{display:none}
    .creative-page:not(.gallery-mode) .creative-workspace{
        display:block;
    }
    .creative-page:not(.gallery-mode) .creative-stage-panel{
        min-height:0;
        height:calc(100dvh - 230px);
        max-height:none;
        padding:8px;
    }
    .creative-page:not(.gallery-mode) .creative-canvas-wrap{
        height:100%;
        min-height:0;
    }
    .creative-page:not(.gallery-mode) .creative-assets,
    .creative-page:not(.gallery-mode) .creative-summary{
        position:fixed;
        z-index:121;
        left:0;
        right:0;
        bottom:0;
        width:100%;
        height:min(72dvh,620px);
        max-height:calc(100dvh - 64px);
        min-height:0;
        margin:0;
        padding:12px 14px calc(16px + env(safe-area-inset-bottom));
        border-radius:20px 20px 0 0;
        border:1px solid var(--line,#e5e0d7);
        background:var(--surface-card,#fff);
        box-shadow:0 -18px 60px rgba(16,24,20,.22);
        transform:translateY(105%);
        transition:transform .2s ease;
        overflow-y:auto;
        overscroll-behavior:contain;
        visibility:hidden;
    }
    .creative-page:not(.gallery-mode) .creative-assets.mobile-sheet-open,
    .creative-page:not(.gallery-mode) .creative-summary.mobile-sheet-open{
        transform:translateY(0);
        visibility:visible;
    }
    .creative-mobile-sheet-head{
        display:flex;
        position:sticky;
        top:-12px;
        z-index:3;
        align-items:center;
        justify-content:space-between;
        min-height:40px;
        margin:-12px -14px 8px;
        padding:8px 12px;
        border-bottom:1px solid var(--line,#e5e0d7);
        background:var(--surface-card,#fff);
    }
    .creative-mobile-sheet-close{
        width:32px;
        height:32px;
        border:0;
        border-radius:50%;
        background:var(--surface-muted,#f4f3ef);
        font-size:1.3rem;
        line-height:1;
        cursor:pointer;
    }
    .creative-mobile-sheet-backdrop{
        position:fixed;
        z-index:120;
        inset:0;
        display:block;
        background:rgba(16,24,20,.42);
        opacity:0;
        pointer-events:none;
        transition:opacity .2s ease;
    }
    .creative-mobile-sheet-backdrop.active{
        opacity:1;
        pointer-events:auto;
    }
    .creative-mobile-dock{
        position:fixed;
        z-index:119;
        left:8px;
        right:8px;
        bottom:max(8px,env(safe-area-inset-bottom));
        display:grid;
        grid-template-columns:repeat(5,minmax(0,1fr));
        gap:2px;
        min-height:58px;
        padding:5px;
        border:1px solid color-mix(in srgb,var(--line,#e5e0d7) 80%,transparent);
        border-radius:18px;
        background:color-mix(in srgb,var(--surface-card,#fff) 94%,transparent);
        backdrop-filter:blur(14px);
        box-shadow:0 8px 30px rgba(16,24,20,.18);
    }
    .creative-mobile-dock button{
        min-width:0;
        min-height:48px;
        padding:4px 2px;
        border:0;
        border-radius:13px;
        background:transparent;
        color:var(--text,#101828);
        display:grid;
        place-items:center;
        align-content:center;
        gap:2px;
        font:inherit;
        cursor:pointer;
    }
    .creative-mobile-dock button>span{font-size:1rem;line-height:1;font-weight:800}
    .creative-mobile-dock button>small{font-size:.58rem;font-weight:800;line-height:1}
    .creative-mobile-dock button.hidden{display:none}
    .creative-mobile-dock .creative-mobile-cart{
        background:var(--theme-primary,#315f50);
        color:#fff;
    }
    .creative-page:not(.gallery-mode) .creative-panel-tabs{display:none}
    .creative-page:not(.gallery-mode) .creative-accordion{display:block;overflow:visible;border:0}
    .creative-page:not(.gallery-mode) .creative-accordion-item{display:none;border:0!important}
    .creative-page:not(.gallery-mode) .creative-accordion-item.open{display:block}
    .creative-page:not(.gallery-mode) .creative-accordion-head{display:none}
    .creative-page:not(.gallery-mode) .creative-accordion-item.open>.creative-accordion-body{
        display:grid;
        padding:4px 0 10px;
        max-height:none;
        overflow:visible;
    }
    .creative-page:not(.gallery-mode) .creative-summary .creative-hint{display:none}
    .creative-page:not(.gallery-mode) .creative-summary #creativeSave{
        position:sticky;
        bottom:0;
        z-index:2;
    }
}

@media (max-width:520px){
    .creative-page:not(.gallery-mode) .creative-stage-panel{
        height:calc(100dvh - 205px);
        border-radius:12px;
    }
    .creative-page:not(.gallery-mode) .creative-top h1{font-size:1.05rem}
    .creative-page:not(.gallery-mode) .creative-top .eyebrow{font-size:.62rem}
    .creative-mobile-dock{left:5px;right:5px;bottom:max(5px,env(safe-area-inset-bottom));border-radius:16px}
    .creative-mobile-dock button{min-height:46px}
}

/* ============================================================
   RESP-03.1 — Collage editor header cleanup + mobile chrome
   ============================================================ */
body.creative-editor-active .site-footer{display:none}

.creative-page:not(.gallery-mode) .creative-editor-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:18px;
    margin:0 0 10px;
}
.creative-page:not(.gallery-mode) .creative-editor-heading-main{
    min-width:0;
}
.creative-page:not(.gallery-mode) .creative-back-link{
    display:inline-flex;
    align-items:center;
    border:0;
    background:transparent;
    color:var(--muted);
    padding:0;
    margin:0 0 5px;
    font:inherit;
    font-size:.72rem;
    font-weight:750;
    cursor:pointer;
}
.creative-page:not(.gallery-mode) .creative-back-link:hover{color:var(--brand)}
.creative-page:not(.gallery-mode) .creative-editor-heading .eyebrow{
    display:block;
    margin:0 0 1px;
    font-size:.68rem;
    letter-spacing:.08em;
}
.creative-page:not(.gallery-mode) .creative-editor-heading h1{
    margin:0;
    font-size:clamp(1.7rem,2.15vw,2.7rem);
    line-height:1.02;
}
.creative-page:not(.gallery-mode) .creative-editor-help{
    max-width:760px;
    margin:5px 0 0;
    color:var(--muted);
    font-size:.74rem;
    line-height:1.4;
}
.creative-page:not(.gallery-mode) .creative-editor-heading-status{
    align-self:center;
    min-width:0;
}
.creative-page:not(.gallery-mode) .creative-editor-ready{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
    margin:0;
    max-width:none;
}
.creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner{
    min-width:178px;
    padding:9px 12px;
    border-radius:13px;
}
.creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner small{font-size:8px}
.creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner strong{font-size:12px}

.creative-page:not(.gallery-mode) .creative-cancel-design-subtle{
    align-self:center;
    width:auto;
    margin:2px auto 0;
    padding:4px 8px;
    min-height:0;
    border:0;
    background:transparent;
    color:var(--muted);
    font-size:.67rem;
    font-weight:650;
    text-decoration:underline;
    text-underline-offset:2px;
    opacity:.8;
}
.creative-page:not(.gallery-mode) .creative-cancel-design-subtle:hover{
    color:var(--status-danger,#9F3C38);
    background:transparent;
    opacity:1;
}

@media (min-width:1201px) and (max-height:900px){
    .creative-page:not(.gallery-mode) .creative-editor-heading{margin-bottom:6px;gap:12px}
    .creative-page:not(.gallery-mode) .creative-back-link{margin-bottom:2px;font-size:.66rem}
    .creative-page:not(.gallery-mode) .creative-editor-heading h1{font-size:1.8rem}
    .creative-page:not(.gallery-mode) .creative-editor-help{font-size:.68rem;margin-top:3px}
    .creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner{min-width:158px;padding:7px 9px}
}

@media (max-width:900px){
    body.creative-editor-active .storefront-top-banner-inner{
        min-height:32px;
        padding:5px 38px 5px 10px;
        gap:6px;
        font-size:10px;
        line-height:1.2;
    }
    body.creative-editor-active .storefront-top-banner-icon{
        width:17px;height:17px;font-size:10px;margin-top:0
    }
    body.creative-editor-active .storefront-top-banner-close{
        width:28px;height:28px;right:5px;font-size:19px
    }
    body.creative-editor-active .site-header{height:58px}
    body.creative-editor-active .nav-shell{gap:8px}
    body.creative-editor-active .brand-logo-image{max-height:28px;max-width:116px}
    body.creative-editor-active .cms-mobile-menu>summary{width:36px;height:36px}
    body.creative-editor-active .store-location-picker>summary{padding:6px 7px;border-radius:10px}
    body.creative-editor-active .account-nav-button{padding:.42rem}
    body.creative-editor-active .cart-button{height:36px;padding:0 10px}

    .creative-page:not(.gallery-mode){padding-top:8px}
    .creative-page:not(.gallery-mode) .creative-editor-heading{
        grid-template-columns:1fr;
        gap:7px;
        margin-bottom:8px;
    }
    .creative-page:not(.gallery-mode) .creative-back-link{font-size:.67rem;margin-bottom:2px}
    .creative-page:not(.gallery-mode) .creative-editor-heading .eyebrow{font-size:.6rem}
    .creative-page:not(.gallery-mode) .creative-editor-heading h1{font-size:1.35rem}
    .creative-page:not(.gallery-mode) .creative-editor-help{display:none}
    .creative-page:not(.gallery-mode) .creative-editor-heading-status{width:100%}
    .creative-page:not(.gallery-mode) .creative-editor-ready{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:6px;
        width:100%;
    }
    .creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner{
        width:100%;
        min-width:0;
        padding:6px 8px;
        border-radius:10px;
    }
    .creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-icon{font-size:13px}
    .creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner small{font-size:7px}
    .creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner strong{font-size:10px}
    .creative-page:not(.gallery-mode) .creative-cancel-design-subtle{font-size:.7rem;padding:8px}
}

@media (max-width:520px){
    body.creative-editor-active .storefront-top-banner-text{
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }
    body.creative-editor-active .nav-shell{width:calc(100% - 14px)}
    body.creative-editor-active .store-location-picker{display:none}
    .creative-page:not(.gallery-mode) .creative-editor-heading{gap:5px;margin-bottom:6px}
    .creative-page:not(.gallery-mode) .creative-editor-heading h1{font-size:1.15rem}
    .creative-page:not(.gallery-mode) .creative-editor-ready{grid-template-columns:1fr 1fr}
}


/* ============================================================
   RESP-03.2 — viewport-fit builder, compact header + mobile stage
   ============================================================ */
@media (min-width:1201px){
    .creative-page:not(.gallery-mode){
        height:calc(100dvh - var(--creative-chrome-height,118px));
        min-height:500px;
    }
    .creative-page:not(.gallery-mode) .creative-workspace{min-height:0}
    .creative-page:not(.gallery-mode) .creative-assets,
    .creative-page:not(.gallery-mode) .creative-summary,
    .creative-page:not(.gallery-mode) .creative-stage-panel{max-height:100%}
    .creative-page:not(.gallery-mode) .creative-assets #creativeAutoFill{flex:0 0 auto;margin-top:7px}
    .creative-page:not(.gallery-mode) .creative-summary .creative-save-state{flex:0 0 auto;margin-top:auto}
    .creative-page:not(.gallery-mode) .creative-summary #creativeSave{flex:0 0 auto}
}

.creative-page:not(.gallery-mode) .creative-editor-heading{
    grid-template-columns:auto minmax(260px,1fr) auto;
    align-items:center;
    gap:18px;
}
.creative-page:not(.gallery-mode) .creative-editor-heading-main{white-space:nowrap}
.creative-page:not(.gallery-mode) .creative-editor-help{
    max-width:760px;
    margin:0;
    align-self:center;
}
.creative-page:not(.gallery-mode) .creative-editor-heading-status{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}
.creative-page:not(.gallery-mode) .creative-change-design-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:8px 12px;
    border:1px solid var(--line,#e5e0d7);
    border-radius:12px;
    background:var(--surface-card,#fff);
    color:var(--ink,#24312d);
    font:inherit;
    font-size:.72rem;
    font-weight:800;
    white-space:nowrap;
    cursor:pointer;
}
.creative-page:not(.gallery-mode) .creative-change-design-button:hover{border-color:var(--brand);color:var(--brand)}

@media (min-width:1201px) and (max-height:900px){
    .creative-page:not(.gallery-mode) .creative-editor-heading{gap:12px}
    .creative-page:not(.gallery-mode) .creative-change-design-button{min-height:32px;padding:6px 9px;font-size:.66rem}
    .creative-page:not(.gallery-mode) .creative-editor-ready .ready-time-banner{min-width:150px}
}

@media (max-width:900px){
    .creative-page:not(.gallery-mode) .creative-editor-heading{
        grid-template-columns:minmax(0,1fr) auto;
        gap:6px 8px;
        align-items:center;
    }
    .creative-page:not(.gallery-mode) .creative-editor-heading-main{white-space:normal}
    .creative-page:not(.gallery-mode) .creative-editor-help{display:none}
    .creative-page:not(.gallery-mode) .creative-editor-heading-status{
        grid-column:1/-1;
        width:100%;
        justify-content:stretch;
    }
    .creative-page:not(.gallery-mode) .creative-change-design-button{
        flex:0 0 auto;
        min-height:34px;
        padding:6px 9px;
        font-size:.65rem;
    }
    .creative-page:not(.gallery-mode) .creative-editor-ready{flex:1 1 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
    .creative-page:not(.gallery-mode) .creative-stage-panel{
        height:auto;
        min-height:220px;
        max-height:calc(100dvh - var(--creative-chrome-height,100px) - 132px);
        padding:7px;
    }
    .creative-page:not(.gallery-mode) .creative-canvas-wrap{height:100%;min-height:0}

    /* Keep the CMS hamburger menu inside the viewport even when the creative
       editor uses a narrowed shell. */
    body.creative-editor-active .cms-mobile-menu-panel{
        position:fixed;
        left:10px;
        right:10px;
        top:calc(var(--creative-chrome-height,100px) - 1px);
        width:auto;
        max-height:calc(100dvh - var(--creative-chrome-height,100px) - 10px);
        overflow:auto;
        box-sizing:border-box;
    }
    body.creative-editor-active .cms-mobile-nav,
    body.creative-editor-active .cms-mobile-menu-panel>a{min-width:0}
    body.creative-editor-active .cms-mobile-nav .cms-nav-item>a,
    body.creative-editor-active .cms-mobile-menu-panel>a{padding-inline:12px;overflow-wrap:anywhere}
}

@media (max-width:520px){
    .creative-page:not(.gallery-mode) .creative-editor-heading-status{gap:5px}
    .creative-page:not(.gallery-mode) .creative-change-design-button{padding:5px 7px;font-size:.61rem}
    .creative-page:not(.gallery-mode) .creative-stage-panel{
        height:auto;
        min-height:210px;
        max-height:calc(100dvh - var(--creative-chrome-height,92px) - 118px);
    }
}

/* ============================================================
   RESP-04 — 0.3.577
   Calendar builder: height-aware desktop tabs + canvas-first mobile sheets.
   ============================================================ */
.calendar-settings-tabs,
.calendar-mobile-dock,
.calendar-mobile-sheet-head,
.calendar-mobile-sheet-backdrop{display:none}

@media (min-width:1181px){
    .calendar-editor-v4 .calendar-editor-sidebar{
        display:flex;
        flex-direction:column;
        overflow:hidden;
    }
    .calendar-editor-v4 .calendar-sidebar-intro,
    .calendar-editor-v4 .calendar-order-summary,
    .calendar-editor-v4 .calendar-editor-cart-actions{
        flex:0 0 auto;
    }
    .calendar-editor-v4 .calendar-sidebar-intro{
        padding-bottom:7px;
    }
    .calendar-editor-v4 .calendar-sidebar-intro h2{
        margin-bottom:6px;
        font-size:.9rem;
    }
    .calendar-editor-v4 .calendar-editor-fact{
        gap:3px;
    }
    .calendar-editor-v4 .calendar-settings-tabs{
        flex:0 0 auto;
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(42px,1fr));
        gap:3px;
        padding:3px;
        margin:0 0 7px;
        border:1px solid var(--line,#e5e0d7);
        border-radius:11px;
        background:var(--surface-muted,#f6f4ef);
    }
    .calendar-editor-v4 .calendar-settings-tabs button{
        min-width:0;
        min-height:45px;
        padding:4px 2px 3px;
        border:0;
        border-radius:8px;
        background:transparent;
        color:var(--muted,#667085);
        cursor:pointer;
        display:grid;
        place-items:center;
        align-content:center;
        gap:2px;
        font:inherit;
    }
    .calendar-editor-v4 .calendar-settings-tabs button>span{
        font-size:.92rem;
        line-height:1;
        font-weight:800;
    }
    .calendar-editor-v4 .calendar-settings-tabs button>small{
        max-width:100%;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        font-size:.54rem;
        line-height:1;
        font-weight:800;
    }
    .calendar-editor-v4 .calendar-settings-tabs button.active{
        background:var(--surface-card,#fff);
        color:var(--calendar-theme,var(--theme-primary,#315f50));
        box-shadow:0 1px 4px rgba(19,36,31,.09);
    }
    .calendar-editor-v4 .calendar-settings-accordion{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
        overscroll-behavior:contain;
        scrollbar-width:thin;
        border:0;
        border-radius:0;
        background:transparent;
    }
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item]{
        display:none;
        border:0!important;
        background:transparent;
    }
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item].open{
        display:block;
    }
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item]>.creative-accordion-head{
        display:none;
    }
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item]>.creative-accordion-body,
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item].open>.creative-accordion-body{
        display:grid;
        max-height:none;
        overflow:visible;
        gap:8px;
        padding:3px 2px 8px;
    }
    .calendar-editor-v4 .calendar-order-summary{
        margin-top:6px;
        padding:8px 2px 7px;
    }
    .calendar-editor-v4 .calendar-editor-cart-actions{
        margin-top:auto;
    }
    .calendar-editor-v4 .calendar-assets-panel{
        overflow:hidden;
    }
    .calendar-editor-v4 .calendar-panel-pane.active:not([hidden]){
        display:flex;
        flex:1 1 auto;
        min-height:0;
        flex-direction:column;
    }
    .calendar-editor-v4 #calendarAssetsPane .calendar-asset-grid{
        min-height:0;
    }
}

@media (min-width:1181px) and (max-height:900px){
    .calendar-editor-v4 .calendar-settings-tabs{margin-bottom:5px}
    .calendar-editor-v4 .calendar-settings-tabs button{min-height:38px;padding:3px 1px}
    .calendar-editor-v4 .calendar-settings-tabs button>span{font-size:.8rem}
    .calendar-editor-v4 .calendar-settings-tabs button>small{font-size:.5rem}
    .calendar-editor-v4 .calendar-sidebar-intro{padding-bottom:4px}
    .calendar-editor-v4 .calendar-sidebar-intro h2{font-size:.82rem;margin-bottom:3px}
    .calendar-editor-v4 .calendar-change-design-button{padding:5px 7px;font-size:.64rem}
    .calendar-editor-v4 .calendar-order-summary{padding:5px 2px}
    .calendar-editor-v4 .calendar-editor-cart-actions{gap:4px}
    .calendar-editor-v4 .calendar-add-cart-button{min-height:38px}
    .calendar-editor-v4 .calendar-cancel-design{padding:4px;font-size:.67rem}
}

@media (min-width:1181px) and (max-height:760px){
    .calendar-editor-v4 .calendar-settings-tabs button{
        min-height:31px;
        grid-auto-flow:column;
        justify-content:center;
        gap:3px;
    }
    .calendar-editor-v4 .calendar-settings-tabs button>span{font-size:.68rem}
    .calendar-editor-v4 .calendar-settings-tabs button>small{font-size:.47rem}
    .calendar-editor-v4 .calendar-sidebar-intro h2{display:none}
    .calendar-editor-v4 .calendar-editor-fact>span{display:none}
    .calendar-editor-v4 .calendar-order-summary{grid-template-columns:1fr 1fr;gap:4px}
    .calendar-editor-v4 .calendar-editor-bottom-state{display:none}
}

/* Calendar mobile/tablet uses the same canvas-first idea as Collage:
   the center editor stays in flow while both sidebars become tool sheets. */
@media (max-width:900px){
    body.calendar-mobile-sheet-open{overflow:hidden}
    body.calendar-editor-active .site-footer{display:none!important}

    .calendar-editor-page.shell.calendar-editor-v4{
        width:calc(100% - 16px);
        height:auto;
        min-height:0;
        padding:7px 0 78px;
        overflow:visible;
    }
    .calendar-editor-v4 .calendar-editor-topbar{
        min-height:0;
        margin:0 0 6px;
        gap:8px;
        align-items:center;
    }
    .calendar-editor-v4 .calendar-editor-topbar>div:first-child{
        min-width:0;
        gap:7px;
        align-items:center;
    }
    .calendar-editor-v4 .calendar-editor-topbar .text-link{
        flex:0 0 auto;
        padding:6px 8px;
        border:1px solid var(--line,#e5e0d7);
        border-radius:9px;
        background:#fff;
        font-size:.62rem;
        line-height:1;
        text-decoration:none;
    }
    .calendar-editor-v4 .calendar-editor-topbar h1{
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        font-size:1rem;
    }
    .calendar-editor-v4 .calendar-save-state{
        min-width:0;
        padding:6px 8px;
        font-size:.62rem;
    }
    .calendar-editor-v4 .calendar-editor-workspace{
        display:block;
        height:auto;
    }
    .calendar-editor-v4 .calendar-main-editor{
        display:grid;
        height:auto!important;
        min-height:0;
        grid-template-rows:34px auto 112px!important;
        gap:6px;
    }
    .calendar-editor-v4 .calendar-page-toolbar{
        grid-template-columns:34px minmax(0,1fr) 34px;
        gap:6px;
    }
    .calendar-editor-v4 .calendar-page-arrow{
        width:32px;
        height:32px;
        font-size:1.25rem;
    }
    .calendar-editor-v4 .calendar-page-toolbar strong{font-size:.7rem}
    .calendar-editor-v4 .calendar-page-toolbar small{font-size:.58rem}
    .calendar-editor-v4 .calendar-editor-stage{
        width:100%;
        height:min(58dvh,560px);
        min-height:270px;
        max-height:none;
        padding:8px;
        border-radius:13px;
    }
    .calendar-editor-v4 .calendar-editor-stage:has(.calendar-editor-sheet.landscape){
        height:min(43dvh,410px);
        min-height:230px;
    }
    .calendar-editor-v4 .calendar-pages-panel{
        height:112px!important;
        min-height:0;
        padding:6px 7px;
        border-radius:12px;
    }
    .calendar-editor-v4 .calendar-pages-heading{
        height:22px;
        margin-bottom:3px;
    }
    .calendar-editor-v4 .calendar-pages-heading strong{font-size:.7rem}
    .calendar-editor-v4 .calendar-pages-status{font-size:.58rem}
    .calendar-editor-v4 .calendar-page-strip{
        height:78px!important;
        gap:6px;
        grid-auto-columns:max-content;
    }
    .calendar-editor-v4 .calendar-page-thumb{
        width:54px;
        height:74px!important;
        padding:3px;
    }
    .calendar-editor-v4 .calendar-page-thumb.landscape{width:78px}
    .calendar-editor-v4 .calendar-page-thumb-preview{height:auto!important}
    .calendar-editor-v4 .calendar-page-thumb strong{font-size:.48rem}

    .calendar-editor-v4 .calendar-assets-panel,
    .calendar-editor-v4 .calendar-editor-sidebar{
        position:fixed;
        z-index:141;
        left:0;
        right:0;
        bottom:0;
        width:100%;
        height:min(76dvh,680px);
        max-height:calc(100dvh - 52px);
        min-height:0;
        margin:0;
        padding:12px 14px calc(16px + env(safe-area-inset-bottom));
        border:1px solid var(--line,#e5e0d7);
        border-radius:20px 20px 0 0;
        background:var(--surface-card,#fff);
        box-shadow:0 -18px 60px rgba(16,24,20,.22);
        transform:translateY(105%);
        transition:transform .2s ease;
        overflow-y:auto;
        overscroll-behavior:contain;
        visibility:hidden;
    }
    .calendar-editor-v4 .calendar-assets-panel.mobile-sheet-open,
    .calendar-editor-v4 .calendar-editor-sidebar.mobile-sheet-open{
        transform:translateY(0);
        visibility:visible;
    }
    .calendar-mobile-sheet-head{
        display:flex;
        position:sticky;
        top:-12px;
        z-index:8;
        align-items:center;
        justify-content:space-between;
        min-height:42px;
        margin:-12px -14px 8px;
        padding:8px 12px;
        border-bottom:1px solid var(--line,#e5e0d7);
        background:var(--surface-card,#fff);
    }
    .calendar-mobile-sheet-close{
        width:32px;
        height:32px;
        padding:0;
        border:0;
        border-radius:50%;
        background:var(--surface-muted,#f4f3ef);
        font-size:1.3rem;
        line-height:1;
        cursor:pointer;
    }
    .calendar-mobile-sheet-backdrop{
        position:fixed;
        z-index:140;
        inset:0;
        display:block;
        background:rgba(16,24,20,.42);
        opacity:0;
        pointer-events:none;
        transition:opacity .2s ease;
    }
    .calendar-mobile-sheet-backdrop.active{
        opacity:1;
        pointer-events:auto;
    }
    .calendar-mobile-dock{
        position:fixed;
        z-index:139;
        left:6px;
        right:6px;
        bottom:max(6px,env(safe-area-inset-bottom));
        display:grid;
        grid-auto-flow:column;
        grid-auto-columns:1fr;
        gap:2px;
        min-height:58px;
        padding:5px;
        border:1px solid color-mix(in srgb,var(--line,#e5e0d7) 80%,transparent);
        border-radius:18px;
        background:color-mix(in srgb,var(--surface-card,#fff) 94%,transparent);
        backdrop-filter:blur(14px);
        box-shadow:0 8px 30px rgba(16,24,20,.18);
    }
    .calendar-mobile-dock button{
        min-width:0;
        min-height:48px;
        padding:4px 2px;
        border:0;
        border-radius:13px;
        background:transparent;
        color:var(--text,#101828);
        display:grid;
        place-items:center;
        align-content:center;
        gap:2px;
        font:inherit;
        cursor:pointer;
    }
    .calendar-mobile-dock button>span{font-size:.95rem;line-height:1;font-weight:800}
    .calendar-mobile-dock button>small{font-size:.55rem;font-weight:800;line-height:1}
    .calendar-mobile-dock .calendar-mobile-cart{
        background:var(--calendar-theme,var(--theme-primary,#315f50));
        color:#fff;
    }

    .calendar-editor-v4 .calendar-panel-tabs{
        position:sticky;
        top:38px;
        z-index:6;
        background:#fff;
    }
    .calendar-editor-v4 .calendar-panel-pane.active:not([hidden]){
        display:flex;
        flex-direction:column;
        min-height:0;
    }
    .calendar-editor-v4 .calendar-asset-grid{
        min-height:180px;
        max-height:none;
        overflow:auto;
    }

    .calendar-editor-v4 .calendar-sidebar-intro{
        padding-bottom:7px;
    }
    .calendar-editor-v4 .calendar-sidebar-intro h2{font-size:.9rem;margin-bottom:5px}
    .calendar-editor-v4 .calendar-settings-tabs{
        display:flex;
        position:sticky;
        top:38px;
        z-index:7;
        gap:4px;
        margin:0 -2px 8px;
        padding:4px 2px 6px;
        overflow-x:auto;
        scrollbar-width:none;
        background:#fff;
    }
    .calendar-editor-v4 .calendar-settings-tabs::-webkit-scrollbar{display:none}
    .calendar-editor-v4 .calendar-settings-tabs button{
        flex:0 0 auto;
        min-width:62px;
        min-height:42px;
        padding:4px 7px;
        border:1px solid var(--line,#e5e0d7);
        border-radius:10px;
        background:var(--surface-muted,#f6f4ef);
        color:var(--muted,#667085);
        display:grid;
        place-items:center;
        gap:1px;
        font:inherit;
    }
    .calendar-editor-v4 .calendar-settings-tabs button>span{font-size:.8rem;font-weight:800;line-height:1}
    .calendar-editor-v4 .calendar-settings-tabs button>small{font-size:.52rem;font-weight:800}
    .calendar-editor-v4 .calendar-settings-tabs button.active{
        border-color:var(--calendar-theme,var(--theme-primary,#315f50));
        background:var(--calendar-theme,var(--theme-primary,#315f50));
        color:#fff;
    }
    .calendar-editor-v4 .calendar-settings-accordion{
        border:0;
        overflow:visible;
    }
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item]{
        display:none;
        border:0!important;
    }
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item].open{display:block}
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item]>.creative-accordion-head{display:none}
    .calendar-editor-v4 .calendar-settings-accordion>[data-calendar-settings-item].open>.creative-accordion-body{
        display:grid;
        max-height:none;
        overflow:visible;
        padding:4px 0 10px;
    }
    .calendar-editor-v4 .calendar-order-summary{margin-top:8px}
    .calendar-editor-v4 .calendar-editor-cart-actions{padding-bottom:4px}
}

@media (max-width:520px){
    .calendar-editor-page.shell.calendar-editor-v4{width:calc(100% - 10px);padding-top:5px}
    .calendar-editor-v4 .calendar-editor-topbar h1{font-size:.9rem}
    .calendar-editor-v4 .calendar-save-state{font-size:.56rem;padding:5px 7px}
    .calendar-editor-v4 .calendar-editor-stage{
        height:min(60dvh,530px);
        min-height:250px;
        padding:6px;
    }
    .calendar-editor-v4 .calendar-editor-stage:has(.calendar-editor-sheet.landscape){
        height:min(40dvh,350px);
        min-height:210px;
    }
    .calendar-editor-v4 .calendar-pages-panel{height:104px!important}
    .calendar-editor-v4 .calendar-page-strip{height:72px!important}
    .calendar-editor-v4 .calendar-page-thumb{height:68px!important}
    .calendar-mobile-dock{left:4px;right:4px;bottom:max(4px,env(safe-area-inset-bottom));border-radius:16px}
    .calendar-mobile-dock button{min-height:46px}
}

/* ============================================================
   RESP-04.1 / Builder UI standard — 0.3.578
   Shared visual language for creative builders.
   ============================================================ */

/* Shared asset-panel controls: all creative builders use the same hierarchy. */
.creative-add-photos-button{
    border:1px solid color-mix(in srgb,var(--brand-primary,var(--theme-primary,var(--brand))) 28%,var(--line));
    background:color-mix(in srgb,var(--brand-primary,var(--theme-primary,var(--brand))) 9%,var(--surface-card,#fff));
    color:var(--brand-primary,var(--theme-primary,var(--brand)));
    font-weight:800;
}
.creative-add-photos-button:hover{
    border-color:var(--brand-primary,var(--theme-primary,var(--brand)));
    background:color-mix(in srgb,var(--brand-primary,var(--theme-primary,var(--brand))) 14%,var(--surface-card,#fff));
}
.creative-sort-controls{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.creative-sort-controls>span{
    color:var(--muted);
    font-size:.68rem;
    font-weight:600;
    margin-right:2px;
}
.creative-sort-controls .sort-icon-btn{
    flex:0 0 34px;
    width:34px;
    height:32px;
    min-width:34px;
    border:1px solid var(--line);
    border-radius:8px;
    background:var(--surface-card,#fff);
    color:var(--ink);
    cursor:pointer;
    font-size:.7rem;
    font-weight:800;
}
.creative-sort-controls .sort-icon-btn.active{
    border-color:var(--brand-primary,var(--theme-primary,var(--brand)));
    background:color-mix(in srgb,var(--brand-primary,var(--theme-primary,var(--brand))) 9%,var(--surface-card,#fff));
    color:var(--brand-primary,var(--theme-primary,var(--brand)));
    box-shadow:0 0 0 1px var(--brand-primary,var(--theme-primary,var(--brand))) inset;
}
.creative-sort-controls .sort-icon-btn.direction{
    margin-left:2px;
    border-color:var(--brand-primary,var(--theme-primary,var(--brand)));
    background:var(--brand-primary,var(--theme-primary,var(--brand)));
    color:#fff;
}

/* Product options must follow tenant theme; never the original green demo palette. */
.creative-option-choice.active,
.creative-option-choices>button.active{
    border-color:var(--brand-primary,var(--theme-primary,var(--brand)));
    background:color-mix(in srgb,var(--brand-primary,var(--theme-primary,var(--brand))) 7%,var(--surface-card,#fff));
    box-shadow:0 0 0 1px var(--brand-primary,var(--theme-primary,var(--brand)));
}
.creative-option-choice.active::after,
.creative-option-choices>button.active::after{
    background:var(--brand-primary,var(--theme-primary,var(--brand)));
}
.creative-option-choice.active>small,
.creative-option-choices>button.active>small{
    color:var(--brand-primary,var(--theme-primary,var(--brand)));
}
.creative-option-info:hover,
.creative-option-choice-info:hover{
    border-color:var(--brand-primary,var(--theme-primary,var(--brand)));
    color:var(--brand-primary,var(--theme-primary,var(--brand)));
    background:color-mix(in srgb,var(--brand-primary,var(--theme-primary,var(--brand))) 5%,var(--surface-card,#fff));
}
.creative-customer-background-button.active,
.background-swatch.background-media-swatch.active{
    border-color:var(--brand-primary,var(--theme-primary,var(--brand)));
    box-shadow:0 0 0 2px var(--brand-primary,var(--theme-primary,var(--brand)));
}

/* Calendar header now mirrors Collage: product/size, short help, design + delivery. */
.calendar-editor-v4 .calendar-editor-heading-standard{
    display:grid;
    grid-template-columns:minmax(210px,.8fr) minmax(260px,1.6fr) auto;
    align-items:center;
    gap:16px;
    min-height:0;
    margin:0 0 7px;
}
.calendar-editor-v4 .calendar-editor-heading-standard>div:first-child{
    display:block;
    min-width:0;
}
.calendar-editor-v4 .calendar-editor-heading-standard .eyebrow{
    display:block;
    margin:0 0 1px;
    font-size:.66rem;
    letter-spacing:.08em;
}
.calendar-editor-v4 .calendar-editor-heading-standard h1{
    margin:0;
    font-size:clamp(1.35rem,1.75vw,2rem);
    line-height:1.03;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-editor-heading-help{
    margin:0;
    color:var(--muted);
    font-size:.72rem;
    line-height:1.35;
}
.calendar-editor-v4 .calendar-editor-heading-status{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    min-width:0;
}
.calendar-editor-v4 .calendar-editor-heading-status .creative-change-design-button{
    flex:0 0 auto;
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-editor-heading-status .ready-time-stack{
    display:flex;
    gap:6px;
    margin:0;
    flex-wrap:nowrap;
}
.calendar-editor-v4 .calendar-editor-heading-status .ready-time-chip{
    white-space:nowrap;
}
.calendar-editor-v4 .calendar-editor-heading-status .calendar-save-state{
    flex:0 0 auto;
}

/* Same order-summary hierarchy as Collage. */
.calendar-editor-v4 .calendar-sidebar-intro{padding-bottom:5px}
.calendar-editor-v4 .calendar-order-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.calendar-editor-v4 .calendar-order-head>div:first-child{min-width:0}
.calendar-editor-v4 .calendar-order-head .eyebrow{
    display:block;
    margin:0 0 2px;
    font-size:.6rem;
    letter-spacing:.11em;
}
.calendar-editor-v4 .calendar-order-head h2{
    margin:0;
    font-size:1.05rem;
    line-height:1.08;
}
.calendar-editor-v4 .calendar-order-head small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:.63rem;
    line-height:1.25;
}
.calendar-editor-v4 .calendar-price-wrap{
    display:grid;
    justify-items:end;
    gap:2px;
    flex:0 0 auto;
    text-align:right;
}
.calendar-editor-v4 .calendar-price-wrap>strong{
    font-size:1rem;
    color:var(--brand-primary,var(--theme-primary,var(--calendar-theme)));
}
.calendar-editor-v4 .calendar-price-wrap .creative-campaign-badge{
    max-width:135px;
}
.calendar-editor-v4 .calendar-order-summary{
    margin-top:auto;
    border-top:1px solid var(--line);
}

/* Desktop builders stay inside one viewport including storefront chrome. */
@media (min-width:1181px){
    .calendar-editor-page.shell.calendar-editor-v4{
        height:calc(100dvh - var(--creative-chrome-height,82px));
        min-height:560px;
        padding-top:5px;
        padding-bottom:6px;
    }
    .calendar-editor-v4 .calendar-editor-workspace{
        flex:1 1 auto;
        min-height:0;
        overflow:hidden;
    }
    .calendar-editor-v4 .calendar-assets-panel,
    .calendar-editor-v4 .calendar-editor-sidebar{
        min-height:0;
        height:100%;
    }
    .calendar-editor-v4 .calendar-assets-panel{
        overflow:hidden;
    }
    .calendar-editor-v4 #calendarAssetsPane .calendar-asset-grid{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
    }
    .calendar-editor-v4 .calendar-editor-sidebar{
        overflow:hidden;
    }
    .calendar-editor-v4 .calendar-settings-accordion{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
    }
    .calendar-editor-v4 .calendar-editor-cart-actions{
        flex:0 0 auto;
        padding-top:6px;
    }
    .calendar-editor-v4 .calendar-order-summary{
        flex:0 0 auto;
        padding-block:6px;
    }
}

@media (min-width:1181px) and (max-height:820px){
    .calendar-editor-v4 .calendar-editor-heading-standard{gap:10px;margin-bottom:4px}
    .calendar-editor-v4 .calendar-editor-heading-standard h1{font-size:1.2rem}
    .calendar-editor-v4 .calendar-editor-heading-help{font-size:.64rem}
    .calendar-editor-v4 .calendar-editor-heading-status .ready-time-chip{padding:6px 8px}
    .calendar-editor-v4 .calendar-editor-heading-status .calendar-save-state{display:none}
    .calendar-editor-v4 .calendar-panel-tabs{margin-bottom:5px}
    .calendar-editor-v4 #calendarAutoFill{min-height:38px;padding-block:8px}
    .calendar-editor-v4 .calendar-add-cart-button{min-height:40px}
    .calendar-editor-v4 .calendar-cancel-design{padding:2px 6px}
}

/* Mobile calendar: contain every layer in the viewport and let portrait/landscape
   use only the stage height that the actual page can benefit from. */
@media (max-width:900px){
    body.calendar-editor-active{overflow-x:hidden}
    .calendar-editor-page.shell.calendar-editor-v4{
        width:100%;
        max-width:100%;
        padding-inline:6px;
        overflow-x:hidden;
    }
    .calendar-editor-v4 .calendar-editor-heading-standard{
        grid-template-columns:minmax(0,1fr) auto;
        gap:7px;
        padding:0 2px;
    }
    .calendar-editor-v4 .calendar-editor-heading-main{min-width:0}
    .calendar-editor-v4 .calendar-editor-heading-standard h1{
        font-size:.95rem;
        white-space:nowrap;
    }
    .calendar-editor-v4 .calendar-editor-heading-help{display:none}
    .calendar-editor-v4 .calendar-editor-heading-status{
        gap:4px;
    }
    .calendar-editor-v4 .calendar-editor-heading-status .ready-time-stack,
    .calendar-editor-v4 .calendar-editor-heading-status .calendar-save-state{
        display:none;
    }
    .calendar-editor-v4 .calendar-editor-heading-status .creative-change-design-button{
        padding:6px 7px;
        font-size:.6rem;
    }
    .calendar-editor-v4 .calendar-main-editor,
    .calendar-editor-v4 .calendar-editor-stage,
    .calendar-editor-v4 .calendar-editor-sheet,
    .calendar-editor-v4 #calendarLivePage,
    .calendar-editor-v4 .calendar-preview-root{
        min-width:0;
        max-width:100%;
        box-sizing:border-box;
    }
    .calendar-editor-v4 .calendar-editor-stage{
        overflow:hidden;
    }
    .calendar-editor-v4 .calendar-editor-sheet,
    .calendar-editor-v4 #calendarLivePage,
    .calendar-editor-v4 .calendar-preview-root{
        overflow:hidden;
    }
    .calendar-editor-v4 .calendar-preview-photo-grid,
    .calendar-editor-v4 .calendar-preview-calendar,
    .calendar-editor-v4 .calendar-preview-calendar-surface,
    .calendar-editor-v4 .calendar-live-grid,
    .calendar-editor-v4 .calendar-live-days{
        min-width:0;
        max-width:100%;
    }
    .calendar-editor-v4 .calendar-sidebar-intro{padding-bottom:4px}
    .calendar-editor-v4 .calendar-order-head h2{font-size:.95rem}
}

@media (max-width:520px){
    .calendar-editor-page.shell.calendar-editor-v4{padding-inline:4px}
    .calendar-editor-v4 .calendar-editor-heading-standard h1{font-size:.86rem}
    .calendar-editor-v4 .calendar-editor-heading-status .creative-change-design-button{
        padding:5px 6px;
        font-size:.55rem;
    }
    .calendar-editor-v4 .calendar-editor-stage{
        width:100%;
        max-width:100%;
        padding:5px;
    }
}


/* 0.3.579 – Creative builder polish / shared interaction standard */
.creative-persist-state{
    min-height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line));
    border-radius:10px;
    padding:6px 10px;
    background:color-mix(in srgb,var(--brand) 4%,#fff);
    color:var(--muted);
    font-size:.68rem;
    font-weight:800;
    text-align:center;
}
.creative-persist-state.saved{background:color-mix(in srgb,var(--brand) 7%,#fff);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 22%,var(--line))}
.creative-persist-state.dirty,.creative-persist-state.saving{background:#fff8e8;color:#86611d;border-color:#ead7a8}
.creative-persist-state.error{background:#fff0ef;color:#a63b32;border-color:#e7b9b4}

/* Both builders share the same asset filters, sort controls and themed auto-fill action. */
.creative-media-filters{
    display:flex;
    gap:6px;
    margin:0;
}
.creative-media-filters button{
    border:1px solid transparent;
    border-radius:999px;
    background:var(--surface-muted,#f1efe9);
    color:var(--ink);
    padding:6px 10px;
    font:inherit;
    font-size:.68rem;
    font-weight:800;
    cursor:pointer;
}
.creative-media-filters button.active{
    background:var(--brand);
    border-color:var(--brand);
    color:#fff;
}
.creative-page:not(.gallery-mode) #creativeAutoFill,
.calendar-editor-v4 #calendarAutoFill{
    background:var(--brand)!important;
    border-color:var(--brand)!important;
    color:#fff!important;
}
.creative-page:not(.gallery-mode) #creativeAutoFill:hover,
.calendar-editor-v4 #calendarAutoFill:hover{filter:brightness(.94)}

/* Calendar header follows the exact Collage status pattern. */
.calendar-editor-v4 .calendar-editor-heading-standard{
    grid-template-columns:minmax(210px,max-content) minmax(240px,1fr) auto;
}
.calendar-editor-v4 .calendar-editor-heading-help{
    justify-self:start;
    max-width:720px;
}
.calendar-editor-v4 .calendar-editor-heading-status .ready-time-stack{align-items:stretch}
.calendar-editor-v4 .calendar-editor-heading-status .ready-time-banner{
    min-width:0;
    padding:8px 11px;
}
.calendar-editor-v4 .calendar-editor-heading-status .ready-time-banner small{font-size:.55rem}
.calendar-editor-v4 .calendar-editor-heading-status .ready-time-banner strong{font-size:.67rem}
.calendar-editor-v4 .calendar-editor-cart-actions .creative-persist-state{margin-bottom:6px}

/* Calendar month arrows: glyph must be geometrically centered in the circular control. */
.calendar-editor-v4 .calendar-page-arrow{
    display:grid;
    place-items:center;
    padding:0!important;
    line-height:1;
    text-align:center;
}

/* Reserve a real scrollbar gutter below thumbnail labels instead of painting over them. */
.calendar-editor-v4 .calendar-page-strip{
    padding-bottom:15px!important;
    scrollbar-gutter:stable;
    align-items:start;
}
.calendar-editor-v4 .calendar-pages-panel{overflow:hidden}
@media (min-width:901px){
    .calendar-editor-v4 .calendar-page-strip{min-height:0;height:auto!important}
}

@media (max-width:900px){
    .calendar-editor-v4 .calendar-editor-heading-standard{
        grid-template-columns:minmax(0,1fr) auto;
    }
    .calendar-editor-v4 .calendar-editor-heading-help{display:none}
    .calendar-editor-v4 .calendar-page-strip{padding-bottom:11px!important}
    .calendar-editor-v4 .calendar-pages-panel{height:118px!important}
    .calendar-editor-v4 .calendar-page-strip{height:84px!important}
}


/* 0.3.580 RESP-04.3 – calendar design action + reliable thumbnail scrolling */
.calendar-editor-v4 .creative-change-design-button{
    appearance:none;display:inline-flex;align-items:center;justify-content:center;
    min-height:38px;padding:8px 13px;border:1px solid var(--border,#d9ddd9);
    border-radius:12px;background:#fff;color:var(--text,#18242b);font:inherit;
    font-size:.72rem;font-weight:800;line-height:1;text-decoration:none;cursor:pointer;
    box-shadow:0 1px 2px rgba(16,24,40,.03);
    transition:border-color .16s ease,color .16s ease,background .16s ease;
}
.calendar-editor-v4 .creative-change-design-button:hover{
    border-color:var(--brand,var(--theme-primary,#315f50));
    color:var(--brand,var(--theme-primary,#315f50));
    background:color-mix(in srgb,var(--brand,var(--theme-primary,#315f50)) 4%,#fff);
}
.calendar-editor-v4 .creative-change-design-button:focus-visible{
    outline:2px solid color-mix(in srgb,var(--brand,var(--theme-primary,#315f50)) 45%,transparent);
    outline-offset:2px;
}
.calendar-editor-v4 .calendar-main-editor,
.calendar-editor-v4 .calendar-pages-panel,
.calendar-editor-v4 .calendar-page-strip{min-width:0;max-width:100%;}
.calendar-editor-v4 .calendar-pages-panel{width:100%;overflow:hidden;box-sizing:border-box;}
.calendar-editor-v4 .calendar-page-strip{
    width:100%;box-sizing:border-box;overflow-x:auto!important;overflow-y:hidden!important;
    overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
    padding:2px 2px 18px!important;scrollbar-gutter:stable;
}
.calendar-editor-v4 .calendar-page-strip::-webkit-scrollbar{height:8px;}
.calendar-editor-v4 .calendar-page-strip::-webkit-scrollbar-track{
    background:color-mix(in srgb,var(--paper,#f6f6f2) 78%,#fff);border-radius:999px;
}
.calendar-editor-v4 .calendar-page-strip::-webkit-scrollbar-thumb{
    background:color-mix(in srgb,var(--brand,var(--theme-primary,#315f50)) 34%,#c7ccc9);border-radius:999px;
}
.calendar-editor-v4 .calendar-page-strip::-webkit-scrollbar-thumb:hover{
    background:color-mix(in srgb,var(--brand,var(--theme-primary,#315f50)) 48%,#b7bdb9);
}
@media (min-width:901px){
    .calendar-editor-v4 .calendar-pages-panel{padding-bottom:7px;}
    .calendar-editor-v4 .calendar-page-strip{height:116px!important;}
}
@media (max-width:900px){
    .calendar-editor-v4 .creative-change-design-button{min-height:32px;padding:6px 9px;font-size:.64rem;}
    .calendar-editor-v4 .calendar-page-strip{padding-bottom:14px!important;}
}
@media (max-width:520px){
    .calendar-editor-v4 .creative-change-design-button{min-height:30px;padding:5px 7px;font-size:.58rem;border-radius:10px;}
}


/* 0.3.581 RESP-04.4 – keep calendar thumbnail labels fully visible */
@media (min-width:901px){
    .calendar-editor-v4 .calendar-pages-panel{
        height:174px!important;
        padding:10px 12px 8px!important;
        overflow:hidden;
    }

    .calendar-editor-v4 .calendar-page-strip{
        height:132px!important;
        box-sizing:border-box;
        padding:2px 2px 18px!important;
        overflow-x:auto!important;
        overflow-y:hidden!important;
        align-items:start;
    }

    .calendar-editor-v4 .calendar-page-thumb{
        width:70px;
        height:108px!important;
        padding:4px;
        gap:4px;
        grid-template-rows:84px 14px;
        box-sizing:border-box;
    }

    .calendar-editor-v4 .calendar-page-thumb-preview{
        width:56px;
        height:84px!important;
    }

    .calendar-editor-v4 .calendar-page-thumb.landscape{
        width:94px;
        height:84px!important;
        grid-template-rows:58px 14px;
        align-self:start;
    }

    .calendar-editor-v4 .calendar-page-thumb.landscape .calendar-page-thumb-preview{
        width:84px;
        height:56px!important;
    }

    .calendar-editor-v4 .calendar-page-thumb > strong{
        min-height:14px;
        line-height:14px;
        font-size:.56rem;
    }
}


/* 0.3.582 RESP-05 – responsive storefront, order, cart and checkout foundation */

/* General storefront width: ordinary commerce pages may use more space on large
   monitors, while readable content still keeps its own narrower measures. */
@media (min-width:1400px){
  .shell{width:min(1480px,calc(100% - 64px))}
  .nav-shell{gap:clamp(24px,2vw,42px)}
  .main-nav{gap:clamp(18px,1.55vw,30px)}
  .catalog-product-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
  .cms-category-page .catalog-product-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
}
@media (min-width:1900px){
  .shell{width:min(1640px,calc(100% - 96px))}
  .catalog-product-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}

/* Home/category sections scale with the viewport instead of keeping desktop-only spacing. */
.section{padding:clamp(54px,6vw,100px) 0}
.storefront-category-block{margin:clamp(22px,3vw,42px) 0 clamp(34px,4vw,64px)}
.storefront-subcategory{padding:clamp(15px,1.6vw,24px)}
.catalog-product-grid{gap:clamp(12px,1.3vw,20px)}
.catalog-product-card{min-width:0}
.catalog-product-visual{min-height:clamp(150px,15vw,235px)}
.catalog-product-content{min-width:0}
.catalog-product-title{min-width:0;gap:10px}
.catalog-product-title h4,.catalog-product-title p{overflow-wrap:anywhere}
.variant-preview-list{min-width:0}

/* Header/footer: preserve usable horizontal room on laptops and make mobile controls compact. */
@media (max-width:1180px){
  .nav-shell{gap:18px}
  .main-nav{gap:16px;font-size:13px}
  .store-location-picker summary{max-width:190px}
}
@media (max-width:900px){
  .site-header{height:72px}
  .nav-shell{gap:10px}
  .brand-logo-image{max-width:150px;max-height:48px}
  .cms-mobile-menu{order:2}
  .store-location-picker{margin-left:auto}
  .account-nav-button{padding:.55rem}
  .account-nav-button span:last-child{display:none}
  .cart-button{height:40px;padding:0 10px}
  .site-footer{padding:42px 0}
  .footer-grid{gap:28px}
}
@media (max-width:620px){
  .shell{width:calc(100% - 24px)}
  .site-header{height:66px}
  .nav-shell{gap:7px}
  .brand{min-width:0}
  .brand-logo-image{max-width:116px;max-height:40px}
  .store-location-picker summary{max-width:46px;min-width:46px;padding:0;justify-content:center}
  .store-location-copy,.store-location-chevron{display:none}
  .account-nav-button{width:40px;height:40px;display:grid;place-items:center;padding:0}
  .cart-button{min-width:48px;justify-content:center}
  .cart-button>span:not(.cart-icon){display:none}
  .cms-mobile-menu-panel{width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 88px);overflow:auto}
  .section-heading{display:grid;gap:10px;margin-bottom:22px}
  .storefront-category-heading,.storefront-subcategory-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .catalog-product-grid,.category-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .catalog-product-content{padding:12px}
  .catalog-product-title{display:grid!important;gap:7px!important}
  .catalog-product-title h4{font-size:14px}
  .catalog-product-title p{font-size:10px;line-height:1.4}
  .catalog-campaign-price{justify-items:start}
  .variant-preview-list{display:none}
  .ready-time-chip-row.compact{gap:5px;flex-wrap:wrap}
  .site-footer{padding:34px 0 calc(34px + env(safe-area-inset-bottom))}
  .footer-grid{grid-template-columns:1fr;gap:24px}
}
@media (max-width:430px){
  .catalog-product-grid,.category-type-grid{grid-template-columns:1fr!important}
  .catalog-product-visual{min-height:170px}
}

/* Classic photo ordering: compact toolbar and cards on small screens, but use the
   extra width available on large monitors. */
@media (min-width:1500px){
  .order-shell{width:min(1640px,calc(100% - 64px))!important;max-width:none!important}
  .photo-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
}
@media (max-width:760px){
  .order-page{padding:14px 0 82px}
  .order-heading-compact{gap:12px;margin:10px 0 14px}
  .order-heading-compact h1{font-size:clamp(30px,9vw,38px)}
  .order-heading-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  .order-heading-actions .price-list-button-large,.order-heading-actions .ready-time-stack-compact{width:100%}
  .workspace-toolbar{padding:10px;border-radius:12px;position:relative}
  .workspace-toolbar>div{width:100%;flex-wrap:wrap}
  .bulk-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px!important}
  .bulk-actions label{grid-column:1/-1}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .photo-image{height:auto;aspect-ratio:4/3}
  .photo-meta{padding:10px}
  .sticky-summary{bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px);padding:10px 10px 10px 14px;border-radius:15px}
}
@media (max-width:480px){
  .photo-grid{grid-template-columns:1fr}
  .photo-image{aspect-ratio:4/3}
}

/* Cart/checkout: summary remains accessible on desktop and becomes a natural
   single-column continuation on tablet/mobile. */
@media (min-width:901px){
  .cart-page.shell,.checkout-page.shell{width:min(1440px,calc(100% - 56px));max-width:none}
  .cart-summary,.checkout-summary{position:sticky;top:calc(82px + 20px)}
}
@media (max-width:900px){
  .cart-page,.checkout-page{padding-top:24px!important;padding-bottom:70px}
  .cart-heading{margin-bottom:18px}
  .cart-heading h1{font-size:clamp(32px,7vw,42px)}
  .cart-layout,.checkout-layout{grid-template-columns:1fr!important;gap:16px}
  .cart-summary,.checkout-summary{position:static!important;padding:20px;border-radius:17px}
  .checkout-card{padding:22px;border-radius:17px}
}
@media (max-width:620px){
  .cart-page.shell,.checkout-page.shell{width:calc(100% - 20px)}
  .cart-product{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:11px}
  .cart-thumb{height:72px}
  .cart-product>strong{grid-column:2;justify-self:start}
  .cart-summary,.checkout-summary,.checkout-card{padding:16px;border-radius:15px}
  .checkout-card>h2{font-size:1.2rem;margin-bottom:12px}
  .checkout-card>h2:not(:first-child){margin-top:24px}
  .form-grid.two{grid-template-columns:1fr!important;gap:12px}
  .checkout-card .checkout-option{grid-template-columns:44px minmax(0,1fr)!important;padding:12px!important}
  .checkout-option-visual{width:44px;height:44px}
  .checkout-option-end{grid-column:2!important;justify-content:start!important}
  .checkout-card .checkout-delivery-option{padding:13px!important;min-height:0}
  .checkout-card .checkout-payment-option{padding:13px!important;min-height:0}
  .delivery-service-point-section{padding:14px 12px!important}
  .service-point-option{padding:11px!important}
  .checkout-terms{font-size:11px;line-height:1.45}
}

/* Remote/QR upload: make phone viewport and safe-area behavior first-class. */
.remote-upload-shell{min-height:100dvh}
@media (max-width:600px){
  .remote-upload-shell{padding:max(14px,env(safe-area-inset-top)) 12px max(14px,env(safe-area-inset-bottom))}
  .remote-upload-card{width:100%;padding:1.25rem;border-radius:18px}
  .remote-upload-card h1{font-size:clamp(1.75rem,9vw,2.1rem)}
  .remote-upload-card .btn{min-height:48px;width:100%}
  .remote-upload-note{font-size:.82rem}
}

/* Confirmation: avoid oversized empty margins on phones. */
@media (max-width:620px){
  .confirmation-page{padding:24px 0 54px}
  .confirmation-card{padding:24px 16px;border-radius:18px}
  .confirmation-progress{padding:14px}
  .confirmation-summary-heading,.confirmation-summary-line{padding:12px}
}

/* 0.3.583 RESP-05.1 – ordinary photo ordering mobile polish + Express preselection */
.order-page .action-primary,
.order-page .quick-order-toggle{
    border:1px solid var(--brand)!important;
    background:var(--brand)!important;
    color:#fff!important;
    box-shadow:none!important;
}
.order-page .action-primary:hover,
.order-page .quick-order-toggle:hover{
    background:color-mix(in srgb,var(--brand) 88%,#000)!important;
    border-color:color-mix(in srgb,var(--brand) 88%,#000)!important;
}
.order-page .select-all-button{
    color:var(--brand)!important;
    border-color:color-mix(in srgb,var(--brand) 28%,var(--line))!important;
}
.order-page .select-all-button:hover{
    background:color-mix(in srgb,var(--brand) 7%,var(--surface-card))!important;
    border-color:var(--brand)!important;
}
.workspace-primary-actions{min-width:0}
.selection-actions{display:flex;align-items:center;gap:9px;min-width:0}
.quick-order-toggle{
    display:inline-flex;align-items:center;justify-content:center;gap:7px;
    min-height:33px;padding:7px 12px;border-radius:9px;font:inherit;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap;
}
.quick-order-toggle span{color:inherit!important;font-size:10px!important}
.quick-order-panel{
    grid-column:1/-1!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(180px,1fr) minmax(150px,.8fr) minmax(130px,.65fr) auto auto;
    align-items:end!important;
    gap:9px!important;
    margin-top:2px;padding-top:11px;border-top:1px solid var(--line);
}
.quick-order-panel.hidden{display:none!important}
.quick-order-panel-heading{display:flex;flex-direction:column;gap:2px;align-self:center}
.quick-order-panel-heading strong{font-size:11px;color:var(--ink)}
.quick-order-panel-heading small{font-size:9px;color:var(--muted);line-height:1.35}
.quick-order-panel select{width:100%;min-width:0}
.quick-order-panel .action-primary{min-height:34px;padding-inline:18px}

.ready-time-banner.express{position:relative}
.ready-time-banner .express-order-toggle{
    margin-left:auto;min-height:30px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));
    border-radius:9px;background:var(--surface-card,#fff);color:var(--brand);font:inherit;font-size:9px;font-weight:850;cursor:pointer;white-space:nowrap;
}
.ready-time-banner .express-order-toggle:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,#fff)}
.ready-time-banner .express-order-toggle.selected{background:var(--brand);border-color:var(--brand);color:#fff}

/* One action: selecting a new format adds it immediately. */
.add-format-row{grid-template-columns:1fr!important}
.add-format-row .add-format{width:100%;cursor:pointer}

/* Crop close must always win over the quality badge. */
.crop-dialog>.modal-close{z-index:30!important}
.crop-preview-wrap .quality{z-index:8!important}

@media(max-width:900px){
    .quick-order-panel{grid-template-columns:1fr 1fr auto!important}
    .quick-order-panel-heading{grid-column:1/-1}
    .quick-order-panel .action-primary{min-width:86px}
}

@media(max-width:600px){
    .order-page .order-heading-actions{gap:10px}
    .order-page .ready-time-banner{border-radius:14px}
    .order-page .ready-time-banner.express{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px}
    .order-page .ready-time-banner.express .ready-time-icon{grid-row:1/3}
    .order-page .ready-time-banner .express-order-toggle{grid-column:2;width:max-content;margin:3px 0 0;padding:6px 9px}

    .workspace-toolbar{display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:12px!important;gap:10px!important}
    .workspace-primary-actions{display:grid!important;grid-template-columns:1fr auto;gap:9px!important;align-items:center!important}
    .workspace-primary-actions>#addMorePhotos{grid-column:1/2;justify-self:start}
    .workspace-primary-actions .photo-sort-controls{grid-column:1/-1;display:flex!important;width:100%;gap:6px!important;align-items:center}
    .workspace-primary-actions .selection-actions{grid-column:1/2;display:flex;gap:8px;align-items:center}
    .workspace-primary-actions .quick-order-toggle{grid-column:2;grid-row:3;align-self:center}
    .selection-actions #selectedInfo{white-space:nowrap}

    .quick-order-panel{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:12px 0 0!important}
    .quick-order-panel.hidden{display:none!important}
    .quick-order-panel-heading{grid-column:1/-1}
    .quick-order-panel select{min-height:44px;font-size:12px}
    .quick-order-panel .qty{justify-self:start;min-height:42px}
    .quick-order-panel .action-primary{min-height:42px;width:100%}

    /* Let each print format breathe instead of squeezing six controls onto one line. */
    .photo-card .print-row,
    .photo-card .print-row.has-surface,
    .photo-card .print-row.no-surface{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) 34px 74px 48px 22px!important;
        grid-template-rows:auto auto!important;
        gap:7px 6px!important;
        padding:9px!important;
        overflow:visible!important;
        align-items:center!important;
    }
    .photo-card .print-row .preview-format{grid-column:1/2!important;grid-row:1!important;min-width:0!important}
    .photo-card .print-row .print-info-btn{grid-column:2!important;grid-row:1!important;justify-self:center}
    .photo-card .print-row .remove-print{grid-column:5!important;grid-row:1!important;width:22px!important;height:28px!important;font-size:18px!important}
    .photo-card .print-row .surface-select{grid-column:1/3!important;grid-row:2!important;max-width:none!important;width:100%!important;min-height:36px!important;font-size:11px!important;padding:7px 26px 7px 9px!important}
    .photo-card .print-row .qty{grid-column:3!important;grid-row:1/3!important;width:74px!important;min-width:74px!important;align-self:center}
    .photo-card .print-row .qty button{width:22px!important;height:34px!important}
    .photo-card .print-row .qty input{width:30px!important;height:34px!important;font-size:11px!important}
    .photo-card .print-row .edit-photo{grid-column:4!important;grid-row:1/3!important;width:48px!important;min-width:48px!important;align-self:center!important;font-size:10px!important}
    .photo-card .print-row.no-surface .preview-format{grid-column:1/3!important}
    .photo-card .print-row.no-surface .qty{grid-column:3!important}
    .photo-card .print-row.no-surface .edit-photo{grid-column:4!important}

    .photo-card .add-format-row{margin-top:10px}
    .photo-card .add-format-row select{min-height:42px;font-size:12px;padding:9px 34px 9px 11px}

    .crop-dialog>.modal-close{right:12px!important;top:12px!important;width:40px!important;height:40px!important;background:#fff!important;box-shadow:0 3px 14px rgba(0,0,0,.18)!important}
    .crop-preview-wrap .quality{right:62px!important;top:16px!important;max-width:calc(100% - 90px)!important}
}

@media(max-width:390px){
    .photo-card .print-row,
    .photo-card .print-row.has-surface,
    .photo-card .print-row.no-surface{
        grid-template-columns:minmax(0,1fr) 32px 70px 44px 20px!important;
        gap:6px 4px!important;
    }
    .photo-card .print-row .qty{width:70px!important;min-width:70px!important}
    .photo-card .print-row .edit-photo{width:44px!important;min-width:44px!important;font-size:9px!important}
}
.order-page .sort-icon-btn:hover,
.order-page .sort-icon-btn.active{
    border-color:color-mix(in srgb,var(--brand) 42%,var(--line))!important;
    color:var(--brand)!important;
    background:color-mix(in srgb,var(--brand) 8%,var(--surface-card))!important;
}


/* 0.3.584 RESP-05.2 – Express live pricing is shared by ordinary and creative ordering. */
.creative-page .ready-time-banner .express-order-toggle,
.calendar-editor-v4 .ready-time-banner .express-order-toggle{
  margin-left:auto;min-height:30px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));
  border-radius:9px;background:var(--surface-card,#fff);color:var(--brand);font:inherit;font-size:9px;font-weight:850;cursor:pointer;white-space:nowrap;
}
.creative-page .ready-time-banner .express-order-toggle.selected,
.calendar-editor-v4 .ready-time-banner .express-order-toggle.selected{background:var(--brand);border-color:var(--brand);color:#fff}
.order-page .sticky-order .btn,.order-page .sticky-order button[type=submit]{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}

/* 0.3.585 RESP-05.3 – mobile photo-order layout + independent price-list mode */
.price-list-mode-switch{
    display:inline-grid;
    grid-template-columns:1fr 1fr;
    gap:3px;
    width:min(280px,100%);
    margin:2px 0 12px;
    padding:3px;
    border:1px solid var(--line);
    border-radius:11px;
    background:color-mix(in srgb,var(--line) 30%,var(--surface-card,#fff));
}
.price-list-mode-switch.hidden{display:none!important}
.price-list-mode-switch button{
    min-height:36px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--muted);
    font:inherit;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
}
.price-list-mode-switch button.active{
    background:var(--surface-card,#fff);
    color:var(--brand);
    box-shadow:0 1px 5px rgba(0,0,0,.08);
}

@media(max-width:600px){
    /* Keep the short page title on one calm line on phones. */
    .order-heading-compact h1{
        font-size:clamp(23px,6.2vw,27px)!important;
        line-height:1.05!important;
        letter-spacing:-.025em;
        white-space:nowrap;
    }

    /* Selection and quick ordering belong to the same action row. */
    .workspace-primary-actions .selection-actions{
        grid-column:1/-1!important;
        display:flex!important;
        width:100%;
        gap:8px!important;
        align-items:center!important;
    }
    .workspace-primary-actions .selection-actions .quick-order-toggle{
        margin-left:auto;
    }

    /* Mobile quick order: one clean quantity control instead of three boxed fragments. */
    .quick-order-panel .qty{
        display:grid!important;
        grid-template-columns:42px minmax(46px,1fr) 42px!important;
        width:100%!important;
        min-width:0!important;
        min-height:44px!important;
        border:1px solid var(--line)!important;
        border-radius:11px!important;
        overflow:hidden!important;
        background:var(--surface-card,#fff)!important;
    }
    .quick-order-panel .qty button,
    .quick-order-panel .qty input{
        width:100%!important;
        min-width:0!important;
        height:44px!important;
        margin:0!important;
        border:0!important;
        border-radius:0!important;
        box-sizing:border-box!important;
        background:transparent!important;
    }
    .quick-order-panel .qty button{
        display:grid!important;
        place-items:center!important;
        padding:0!important;
        font-size:18px!important;
        line-height:1!important;
    }
    .quick-order-panel .qty button:first-child{border-right:1px solid var(--line)!important}
    .quick-order-panel .qty button:last-child{border-left:1px solid var(--line)!important}
    .quick-order-panel .qty input{
        appearance:textfield;
        -moz-appearance:textfield;
        text-align:center!important;
        padding:0 4px!important;
        font-size:13px!important;
    }
    .quick-order-panel .qty input::-webkit-inner-spin-button,
    .quick-order-panel .qty input::-webkit-outer-spin-button{appearance:none;margin:0}

    /* Per-photo format lines: information first, controls in full-width rows below. */
    .photo-card .print-row,
    .photo-card .print-row.has-surface,
    .photo-card .print-row.no-surface{
        grid-template-columns:minmax(0,1fr) 36px 28px!important;
        grid-template-rows:auto auto auto!important;
        gap:8px!important;
        padding:10px!important;
        border-radius:12px!important;
    }
    .photo-card .print-row .preview-format,
    .photo-card .print-row.no-surface .preview-format{
        grid-column:1!important;
        grid-row:1!important;
        align-self:center!important;
    }
    .photo-card .print-row .preview-format span{font-size:12px!important}
    .photo-card .print-row .preview-format small{font-size:9px!important;margin-top:2px!important}
    .photo-card .print-row .print-info-btn{
        grid-column:2!important;
        grid-row:1!important;
        justify-self:center!important;
        width:30px!important;
        height:30px!important;
    }
    .photo-card .print-row .remove-print{
        grid-column:3!important;
        grid-row:1!important;
        justify-self:end!important;
        width:28px!important;
        min-width:28px!important;
        height:30px!important;
        font-size:18px!important;
    }
    .photo-card .print-row .surface-select{
        grid-column:1/-1!important;
        grid-row:2!important;
        max-width:none!important;
        width:100%!important;
        min-height:40px!important;
        padding:8px 34px 8px 11px!important;
        font-size:12px!important;
        border-radius:10px!important;
    }
    .photo-card .print-row .qty,
    .photo-card .print-row.no-surface .qty{
        grid-column:1!important;
        grid-row:3!important;
        display:grid!important;
        grid-template-columns:34px 40px 34px!important;
        width:108px!important;
        min-width:108px!important;
        max-width:108px!important;
        align-self:center!important;
        border-radius:10px!important;
    }
    .photo-card .print-row .qty button{
        width:34px!important;
        height:36px!important;
        font-size:15px!important;
    }
    .photo-card .print-row .qty input{
        width:40px!important;
        height:36px!important;
        font-size:12px!important;
    }
    .photo-card .print-row .edit-photo,
    .photo-card .print-row.no-surface .edit-photo{
        grid-column:2/4!important;
        grid-row:3!important;
        justify-self:end!important;
        align-self:center!important;
        width:auto!important;
        min-width:78px!important;
        min-height:36px!important;
        padding:0 10px!important;
        border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line))!important;
        border-radius:9px!important;
        font-size:10px!important;
        text-align:center!important;
    }
    .photo-card .print-row.no-surface{
        grid-template-rows:auto auto!important;
    }
    .photo-card .print-row.no-surface .qty{grid-row:2!important}
    .photo-card .print-row.no-surface .edit-photo{grid-row:2!important}

    .price-list-mode-switch{width:100%}
}

@media(max-width:390px){
    .order-heading-compact h1{font-size:22px!important}
}


/* 0.3.586 RESP-05.4 – final mobile toolbar alignment + inline size info. */
@media(max-width:600px){
    /* Mobile action order: add photos, sorting, then quick-order/selection. */
    .workspace-primary-actions{
        display:flex!important;
        flex-direction:column!important;
        align-items:flex-start!important;
        width:100%!important;
        gap:10px!important;
    }
    .workspace-primary-actions>#addMorePhotos{
        order:1!important;
        align-self:flex-start!important;
    }
    .workspace-primary-actions .photo-sort-controls{
        order:2!important;
        width:100%!important;
        justify-content:flex-start!important;
        align-self:stretch!important;
    }
    .workspace-primary-actions .selection-actions{
        order:3!important;
        width:100%!important;
        display:flex!important;
        justify-content:flex-start!important;
        align-items:center!important;
        gap:8px!important;
        align-self:stretch!important;
    }
    .workspace-primary-actions .selection-actions .quick-order-toggle{
        order:1!important;
        margin-left:0!important;
    }
    .workspace-primary-actions .selection-actions #selectAll{order:2!important}
    .workspace-primary-actions .selection-actions #selectedInfo{order:3!important}

    /* Keep the information button visually attached to size + price on the left. */
    .photo-card .print-row,
    .photo-card .print-row.has-surface,
    .photo-card .print-row.no-surface{
        grid-template-columns:max-content 34px minmax(0,1fr) 28px!important;
    }
    .photo-card .print-row .preview-format,
    .photo-card .print-row.no-surface .preview-format{
        grid-column:1!important;
        justify-self:start!important;
    }
    .photo-card .print-row .print-info-btn{
        grid-column:2!important;
        justify-self:start!important;
    }
    .photo-card .print-row .remove-print{
        grid-column:4!important;
    }
    .photo-card .print-row .surface-select{
        grid-column:1/-1!important;
    }
    .photo-card .print-row .qty,
    .photo-card .print-row.no-surface .qty{
        grid-column:1/3!important;
        justify-self:start!important;
    }
    .photo-card .print-row .edit-photo,
    .photo-card .print-row.no-surface .edit-photo{
        grid-column:3/5!important;
        justify-self:end!important;
    }
}

/* 0.3.587 RESP-06 – regression hardening across the reference viewport matrix. */
/* Flex/grid children must be allowed to shrink instead of forcing page-level horizontal overflow. */
.nav-shell,
.workspace-toolbar,
.workspace-primary-actions,
.selection-actions,
.cart-layout,
.checkout-layout,
.cart-product,
.checkout-card,
.confirmation-card,
.ready-time-banner,
.catalog-product-card,
.storefront-category-block,
.storefront-subcategory{
    min-width:0;
}

.cart-product > *,
.checkout-card > *,
.confirmation-card > *,
.ready-time-banner > *,
.catalog-product-card > *{
    min-width:0;
}

/* Long customer-, product- and location supplied labels must wrap instead of widening the viewport. */
.cart-product,
.checkout-card,
.confirmation-card,
.ready-time-banner,
.storefront-category-heading,
.storefront-subcategory-heading,
.catalog-product-content{
    overflow-wrap:anywhere;
}

/* Small-phone regression pass (360/390 px): keep the complete storefront chrome inside the viewport. */
@media(max-width:430px){
    .nav-shell{gap:5px}
    .brand-logo-image{max-width:104px}
    .store-location-picker summary{max-width:40px;min-width:40px;height:40px}
    .account-nav-button{width:38px;height:38px}
    .cart-button{min-width:44px;height:40px;padding-inline:8px}
    .cms-mobile-menu>summary{width:40px;height:40px}

    /* The bottom action row may wrap on the narrowest phones, but keeps its logical order. */
    .workspace-primary-actions .selection-actions{
        flex-wrap:wrap!important;
        row-gap:7px!important;
    }
    .workspace-primary-actions .selection-actions #selectedInfo{
        min-width:0;
    }

    .cart-product-actions,
    .checkout-option-end,
    .confirmation-summary-line{
        min-width:0;
        flex-wrap:wrap;
    }
}

@media(max-width:390px){
    .brand-logo-image{max-width:96px}
    .nav-shell{gap:4px}

    /* At 360–390 px a single quick-order column is more robust than two squeezed controls. */
    .quick-order-panel{grid-template-columns:1fr!important}
    .quick-order-panel-heading{grid-column:1!important}
    .quick-order-panel .qty{width:min(100%,180px)!important}
    .quick-order-panel .action-primary{width:100%!important}
}

/* Large-screen regression pass: avoid over-stretching readable commerce content on ultrawide/4K. */
@media(min-width:1900px){
    .cart-layout,
    .checkout-layout,
    .confirmation-card{
        max-width:1480px;
        margin-inline:auto;
    }
}

/* ============================================================
   0.3.588 / CREATIVE-STORE-01
   Shared collage/calendar storefront header + controlled card widths.
   ============================================================ */
.creative-catalog-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:24px;
    margin:8px 0 20px;
}
.creative-catalog-title{min-width:0}
.creative-catalog-title h1{
    margin:0;
    font-size:clamp(2rem,3vw,3rem);
    line-height:1.04;
    letter-spacing:-.025em;
}
.creative-gallery-ready{
    justify-content:flex-end;
    align-self:start;
    margin:0;
    max-width:none;
    flex-wrap:nowrap;
}
.creative-gallery-ready .ready-time-banner{min-width:180px}

/* The selectable size cards should keep a predictable catalogue width.
   auto-fill keeps unused space empty instead of stretching a single option. */
.creative-size-choice-row-rich{
    grid-template-columns:repeat(auto-fill,minmax(180px,230px))!important;
    justify-content:start;
}
.calendar-variant-choice-grid-compact{
    grid-template-columns:repeat(auto-fill,minmax(210px,270px))!important;
    justify-content:start;
}
.creative-size-choice-row-rich .creative-size-choice-wrap,
.calendar-variant-choice-grid-compact .calendar-variant-choice{width:100%}

/* Theme the active size from the tenant brand instead of the old green constants. */
.creative-size-choice.active,
.calendar-size-link.selected{
    border-color:var(--brand)!important;
    background:color-mix(in srgb,var(--brand) 7%,#fff)!important;
    box-shadow:0 0 0 1px var(--brand)!important;
}
.creative-size-info{color:var(--brand)!important}
.creative-size-info:hover{background:color-mix(in srgb,var(--brand) 6%,#fff)!important}

/* Galleries keep their normal catalogue-card width even when filtering leaves
   only one or two results. */
.creative-page.gallery-mode .creative-template-gallery{
    grid-template-columns:repeat(auto-fill,minmax(180px,220px))!important;
    justify-content:start;
}
.calendar-design-grid{
    grid-template-columns:repeat(auto-fill,minmax(210px,245px))!important;
    justify-content:start;
}

/* Calendar facts belong with the title and stay deliberately secondary. */
.calendar-catalog-header .calendar-product-facts{margin-top:10px}

@media(max-width:900px){
    .creative-catalog-header{grid-template-columns:1fr;gap:12px}
    .creative-gallery-ready{justify-content:flex-start;flex-wrap:wrap}
    .creative-page.gallery-mode .creative-template-gallery,
    .calendar-design-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .creative-size-choice-row-rich,
    .calendar-variant-choice-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:600px){
    .creative-catalog-title h1{font-size:2rem}
    .creative-gallery-ready{display:grid;grid-template-columns:1fr;width:100%}
    .creative-gallery-ready .ready-time-banner{width:100%;min-width:0}
    .creative-size-choice-row-rich,
    .calendar-variant-choice-grid-compact{grid-template-columns:1fr!important}
}
@media(max-width:390px){
    .creative-page.gallery-mode .creative-template-gallery,
    .calendar-design-grid{grid-template-columns:1fr!important}
}

/* STRIP-04 – dedicated self-contained photo strip storefront */
.photo-strip-storefront-page.shell{
    width:min(var(--creative-shell-max,1900px),calc(100% - (var(--portal-gutter,24px) * 2)));
    max-width:none;
    padding:28px 0 72px;
}
.photo-strip-catalog-header{margin-bottom:20px}
.photo-strip-catalog-header .creative-catalog-title p{max-width:720px;color:var(--muted,#6f7773);margin:.35rem 0 0}
.photo-strip-step{margin-top:24px}
.photo-strip-size-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,280px));gap:12px;justify-content:start}
.photo-strip-size-card{display:flex;justify-content:space-between;gap:14px;align-items:center;min-height:92px;padding:14px 16px;border:1px solid var(--border,#dfe4e1);border-radius:14px;background:#fff;color:inherit;text-decoration:none;transition:.16s ease}
.photo-strip-size-card:hover,.photo-strip-size-card.selected,.photo-strip-size-card.active{border-color:var(--theme-primary,var(--brand,#315b4b));box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-primary,var(--brand,#315b4b)) 12%,transparent)}
.photo-strip-size-card>div:first-child{display:grid;gap:3px}
.photo-strip-size-card small,.photo-strip-size-card span{color:var(--muted,#6f7773);font-size:.78rem}
.photo-strip-price{display:grid;gap:3px;text-align:right;white-space:nowrap}
.photo-strip-price small{color:var(--theme-primary,var(--brand,#315b4b))}
.photo-strip-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,168px));gap:14px;justify-content:start}
.photo-strip-template-card{display:grid;gap:10px;padding:12px;border:1px solid var(--border,#dfe4e1);border-radius:14px;background:#fff;color:inherit;text-decoration:none;text-align:center;transition:.16s ease}
.photo-strip-template-card:hover,.photo-strip-template-card.selected{border-color:var(--theme-primary,var(--brand,#315b4b));box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-primary,var(--brand,#315b4b)) 12%,transparent)}
.photo-strip-template-preview{width:58px;aspect-ratio:1/3;margin:auto;padding:5px;display:flex;flex-direction:column;gap:3px;border-radius:4px;background:#f4f5f4;border:1px solid #d8ddda}
.photo-strip-preview-photo{flex:1 1 0;min-height:0;background:linear-gradient(145deg,#d5dbd8,#eef0ef);border-radius:2px}
.photo-strip-preview-text{height:7px;border-radius:2px;background:#c4cbc7}
@media(max-width:600px){
    .photo-strip-storefront-page.shell{width:calc(100% - 20px);padding-top:14px}
    .photo-strip-size-grid{grid-template-columns:1fr}
    .photo-strip-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .photo-strip-storefront-actions{align-items:stretch;flex-direction:column}
    .photo-strip-storefront-actions .btn{width:100%}
}

/* 0.3.599 / STRIP-04.2 – align the chooser with Collage/Calendar and auto-enter editor. */
.photo-strip-size-grid.creative-size-choice-row-rich{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,230px))!important;gap:12px;justify-content:start}
.photo-strip-size-wrap{position:relative}
.photo-strip-size-card.creative-size-choice{min-height:112px;display:grid;align-content:start;justify-items:start;text-align:left;gap:5px;padding:14px 16px}
.photo-strip-size-card.creative-size-choice small{display:block;color:var(--muted,#6f7773);font-size:.78rem;font-weight:500}
.photo-strip-design-heading{margin-top:30px}
.photo-strip-template-grid{grid-template-columns:repeat(auto-fill,minmax(150px,180px));gap:14px;justify-content:start}
.photo-strip-editor-shell{padding:30px 0 72px}
.photo-strip-editor-placeholder{padding:24px;border:1px solid var(--border,#dfe4e1);border-radius:16px;background:#fff}
.photo-strip-editor-placeholder p{color:var(--muted,#6f7773);max-width:720px}
@media(max-width:600px){.photo-strip-size-grid.creative-size-choice-row-rich{grid-template-columns:1fr!important}}

/* 0.3.601 STRIP-05 - dedicated photo strip editor */
.photo-strip-editor-page{padding-block:28px 48px}.photo-strip-editor-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:22px}.photo-strip-editor-header h1{margin:4px 0 2px;font-size:clamp(2rem,3.2vw,3.1rem)}.photo-strip-editor-header p{margin:0;color:var(--muted)}.photo-strip-editor-layout{display:grid;grid-template-columns:minmax(190px,260px) minmax(300px,1fr) minmax(280px,360px);gap:18px;align-items:start}.photo-strip-assets-panel,.photo-strip-stage-panel,.photo-strip-settings-panel{padding:18px;border-radius:20px}.photo-strip-panel-title,.photo-strip-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.photo-strip-panel-title>div{display:grid;gap:2px}.photo-strip-panel-title small,.photo-strip-help,.photo-strip-next-note,.photo-strip-setting-group small{color:var(--muted)}.photo-strip-help{font-size:.9rem;line-height:1.45}.photo-strip-asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.photo-strip-asset{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface-2);padding:0;cursor:pointer}.photo-strip-asset img{width:100%;height:100%;object-fit:cover;display:block}.photo-strip-asset span{position:absolute;left:6px;bottom:6px;background:rgba(255,255,255,.9);padding:3px 6px;border-radius:999px;font-size:.72rem}.photo-strip-asset.used{opacity:.62}.photo-strip-upload-progress{margin-top:10px;font-size:.85rem}.photo-strip-stage-panel{display:grid;justify-items:center;gap:12px;min-height:620px}.photo-strip-stage-wrap{width:100%;height:min(70vh,720px);display:grid;place-items:center;padding:14px}.photo-strip-stage{--strip-bg:#fff;display:flex;flex-direction:column;box-sizing:border-box;background:var(--strip-bg);box-shadow:0 14px 42px rgba(20,30,40,.14);height:min(66vh,680px);max-width:100%;overflow:hidden}.photo-strip-slot{position:relative;overflow:hidden;min-height:0;background:rgba(127,127,127,.08);border:1px dashed rgba(80,90,100,.25);display:grid;place-items:center;cursor:pointer}.photo-strip-slot>span{font-size:1.8rem;color:rgba(80,90,100,.35)}.photo-strip-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}.photo-strip-slot-remove{position:absolute;z-index:3;right:5px;top:5px;width:28px;height:28px;border-radius:999px;border:0;background:rgba(255,255,255,.9);font-size:1.2rem;line-height:1;cursor:pointer}.photo-strip-text-slot{display:grid;place-items:center;min-height:0;text-align:center;padding:4px 8px;font-size:clamp(.65rem,1.3vw,1rem);overflow:hidden}.photo-strip-stage-hint{color:var(--muted)}.photo-strip-summary{padding-bottom:16px;border-bottom:1px solid var(--line)}.photo-strip-summary>div:first-child{display:grid;gap:3px}.photo-strip-summary-price{display:grid;text-align:right;gap:2px}.photo-strip-summary-price small{color:var(--muted)}.photo-strip-setting-group{padding:18px 0;border-bottom:1px solid var(--line)}.photo-strip-setting-group h3{margin:0 0 14px}.photo-strip-setting-group label:not(.range-with-value){display:grid;gap:6px;margin-top:10px}.photo-strip-setting-group input[type=text],.photo-strip-setting-group select{width:100%}.photo-strip-color-swatches{display:flex;gap:8px;flex-wrap:wrap}.photo-strip-color-swatches>button,.photo-strip-custom-color{width:38px;height:38px;border-radius:999px;border:2px solid var(--line);padding:0;overflow:hidden;display:grid;place-items:center;background:#fff;cursor:pointer}.photo-strip-color-swatches>button.active{outline:2px solid var(--brand);outline-offset:2px}.photo-strip-custom-color input{position:absolute;opacity:0;pointer-events:none}.photo-strip-editor-status{margin:16px 0 10px;color:var(--muted);font-size:.88rem}.photo-strip-editor-status.saved{color:var(--success,#2f6a4b)}.photo-strip-editor-status.dirty{color:var(--warning,#8a6416)}.photo-strip-crop-dialog{width:min(760px,calc(100vw - 28px))}.photo-strip-crop-stage{position:relative;width:100%;height:min(55vh,520px);overflow:hidden;background:#e8eaec;border-radius:16px;touch-action:none}.photo-strip-crop-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}.photo-strip-crop-controls{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:10px;align-items:end;margin-top:14px}.photo-strip-crop-controls label{display:grid;gap:5px}.photo-strip-crop-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media(max-width:1050px){.photo-strip-editor-layout{grid-template-columns:220px minmax(280px,1fr)}.photo-strip-settings-panel{grid-column:1/-1}.photo-strip-stage-panel{min-height:540px}}
@media(max-width:720px){.photo-strip-editor-page{padding-top:18px}.photo-strip-editor-header{align-items:flex-start;flex-direction:column}.photo-strip-editor-layout{grid-template-columns:1fr}.photo-strip-assets-panel{order:2}.photo-strip-stage-panel{order:1;min-height:auto}.photo-strip-settings-panel{order:3;grid-column:auto}.photo-strip-stage-wrap{height:min(62vh,600px);padding:4px}.photo-strip-stage{height:min(60vh,580px)}.photo-strip-asset-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.photo-strip-crop-controls{grid-template-columns:1fr 1fr}.photo-strip-crop-controls label{grid-column:1/-1}}

/* STRIP-05.1 – align photo-strip editor with the shared creative editor shell */
.photo-strip-editor-page{padding:18px 0 34px;background:var(--paper)}
.photo-strip-editor-shell{max-width:1700px}
.photo-strip-editor-heading{margin-bottom:8px}
.photo-strip-editor-heading-status{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.photo-strip-copy-badge{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-card);color:var(--muted);font-size:.72rem;font-weight:800}
.photo-strip-editor-heading .creative-change-design-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.photo-strip-editor-layout{grid-template-columns:minmax(230px,280px) minmax(420px,1fr) minmax(270px,310px);gap:10px;align-items:stretch}
.photo-strip-assets-panel,.photo-strip-stage-panel,.photo-strip-settings-panel{border-radius:16px;padding:14px;background:var(--surface-card);border:1px solid var(--line);box-shadow:none;min-height:0}
.photo-strip-assets-panel{display:flex;flex-direction:column;overflow:hidden}
.photo-strip-panel-title{align-items:center}
.photo-strip-panel-title .creative-add-photos-button{white-space:nowrap;background:var(--surface-muted);color:var(--brand);border:1px solid var(--line)}
.photo-strip-panel-title .creative-add-photos-button:hover{background:var(--surface-card);border-color:var(--brand)}
.photo-strip-help{font-size:.76rem;margin:10px 0;line-height:1.45}
.photo-strip-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:58vh;overflow:auto;margin:0 0 10px;align-content:start}
.photo-strip-asset{border-color:var(--line);background:var(--surface-muted)}
.photo-strip-asset.used{border-color:var(--brand);opacity:.65}
.photo-strip-asset span{background:color-mix(in srgb,var(--surface-card) 92%,transparent);color:var(--ink)}
.photo-strip-stage-panel{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:calc(100vh - 205px)}
.photo-strip-stage-wrap{height:100%;min-height:520px;padding:20px;background:var(--surface-muted);border-radius:14px}
.photo-strip-stage{height:min(68vh,720px);box-shadow:0 12px 34px rgba(20,30,40,.13);border:1px solid var(--line)}
.photo-strip-stage-hint{font-size:.72rem;text-align:center;margin:0}
.photo-strip-summary{padding-bottom:12px}
.photo-strip-summary>div:first-child strong{font-size:1rem}
.photo-strip-summary-price strong{font-size:1rem}
.photo-strip-setting-group{padding:14px 0}
.photo-strip-setting-group h3{font-size:.95rem;margin:0 0 10px}
.photo-strip-range{display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:5px 10px;font-size:.76rem;font-weight:800;color:var(--ink)}
.photo-strip-range>span{font-size:.72rem;color:var(--muted);font-weight:700}
.photo-strip-range input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--brand)}
.photo-strip-setting-group input[type=text],.photo-strip-setting-group select{min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface-card);color:var(--ink);padding:0 10px}
.photo-strip-setting-group input[type=color]{border:1px solid var(--line);border-radius:9px;background:var(--surface-card);min-height:38px;padding:4px}
.photo-strip-color-swatches>button,.photo-strip-custom-color{border-color:var(--line);background:var(--surface-card)}
.photo-strip-color-swatches>button.active{outline-color:var(--brand)}
.photo-strip-editor-status{font-size:.76rem}
.photo-strip-settings-panel .btn-primary{min-height:44px}
.photo-strip-next-note{display:block;margin-top:8px;font-size:.68rem;line-height:1.4}
@media(max-width:1100px){.photo-strip-editor-layout{grid-template-columns:230px minmax(0,1fr)}.photo-strip-settings-panel{grid-column:1/-1}.photo-strip-stage-panel{min-height:560px}}
@media(max-width:760px){.photo-strip-editor-page{padding-top:8px}.photo-strip-editor-layout{grid-template-columns:1fr}.photo-strip-stage-panel{order:1;min-height:auto}.photo-strip-assets-panel{order:2}.photo-strip-settings-panel{order:3;grid-column:auto}.photo-strip-stage-wrap{min-height:440px;padding:10px}.photo-strip-stage{height:min(58vh,560px)}.photo-strip-asset-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:230px}.photo-strip-editor-heading-status{justify-content:flex-start}.photo-strip-copy-badge{font-size:.66rem}}

/* STRIP-05.2 – shared creative library, dynamic strip geometry and optional text */
.photo-strip-editor-layout .creative-media-toolbar{margin:8px 0 10px}
.photo-strip-editor-layout .creative-media-filters{display:flex;gap:4px;flex-wrap:wrap}
.photo-strip-editor-layout .creative-media-filters button{min-height:28px;padding:5px 9px;border:0;border-radius:999px;background:var(--surface-muted);color:var(--ink);font-size:.68rem;font-weight:800;cursor:pointer}
.photo-strip-editor-layout .creative-media-filters button.active{background:var(--brand);color:var(--brand-contrast,#fff)}
.photo-strip-editor-layout .creative-sort-controls{margin-top:7px}
.photo-strip-asset{cursor:pointer}
.photo-strip-asset.used{opacity:1;border-color:var(--brand)}
.photo-strip-asset .creative-used-check{position:absolute;right:6px;left:auto;top:6px;bottom:auto;width:24px;height:24px;display:grid;place-items:center;padding:0;border-radius:999px;background:var(--brand);color:var(--brand-contrast,#fff);font-size:.75rem;font-weight:900;box-shadow:0 1px 5px rgba(0,0,0,.18)}
.photo-strip-stage{box-sizing:border-box;display:flex;flex-direction:column;background:var(--strip-bg);overflow:hidden}
.photo-strip-stage .photo-strip-slot{flex:1 1 0;min-height:0;width:100%}
.photo-strip-stage .photo-strip-slot>span{font-size:.68rem;color:var(--muted);text-align:center;padding:8px}
.photo-strip-text-slot{flex:0 0 auto!important;line-height:1.15;white-space:normal;overflow-wrap:anywhere;text-align:center;padding:.12em .35em;min-height:0}
.photo-strip-panel-tabs{margin:10px 0 0}
.photo-strip-panel-tabs button{min-width:0}
.photo-strip-layout-choice-group{padding-top:14px}
.photo-strip-layout-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;background:var(--surface-muted);padding:4px;border-radius:12px}
.photo-strip-layout-choice button{border:0;border-radius:9px;min-height:36px;background:transparent;color:var(--ink);font-weight:900;cursor:pointer}
.photo-strip-layout-choice button.active{background:var(--surface-card);color:var(--brand);box-shadow:0 1px 4px rgba(0,0,0,.09)}
.photo-strip-text-settings .creative-hint{margin:0 0 10px}
.photo-strip-settings-panel [data-strip-panel-body].hidden{display:none!important}
.photo-strip-settings-panel .creative-order-head small{display:block;color:var(--muted);font-size:.68rem;margin-top:3px;text-align:right}
@media(max-width:760px){.photo-strip-editor-layout .creative-media-toolbar{display:grid;gap:8px}.photo-strip-layout-choice{grid-template-columns:repeat(3,1fr)}}

/* 0.3.604 STRIP-05.3 - shared editor finish, viewport fit and text style presets */
.photo-strip-summary-copy{display:block;margin-top:3px;color:var(--muted);font-size:.74rem;font-weight:650}
.photo-strip-editor-ready{align-items:stretch}
.photo-strip-editor-ready .ready-time-banner{min-width:180px}
.photo-strip-font-control,.photo-strip-text-color-control{display:grid;gap:7px;margin-top:12px}
.photo-strip-font-control>span,.photo-strip-text-color-control>span{font-weight:700;font-size:.86rem}
.photo-strip-font-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.photo-strip-font-choices button{min-height:42px;padding:7px 8px;border:1px solid var(--line);border-radius:11px;background:var(--surface-card);color:var(--ink);font-size:.95rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-strip-font-choices button:hover,.photo-strip-font-choices button.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 14%,transparent)}
.photo-strip-text-color-swatches button{width:34px;height:34px;border-radius:50%;border:2px solid var(--surface-card);box-shadow:0 0 0 1px var(--line);padding:0;cursor:pointer}
.photo-strip-text-color-swatches button.active{box-shadow:0 0 0 2px var(--brand)}
.photo-strip-crop-dialog{width:min(1080px,calc(100vw - 36px))}
.photo-strip-crop-dialog .photo-strip-crop-stage{width:100%;height:min(68vh,720px);border-radius:14px;background:#eef0f1;overflow:hidden;touch-action:none}
.photo-strip-crop-dialog .photo-strip-crop-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.photo-strip-crop-dialog .crop-controls>.creative-cancel-design{margin-top:6px}
@media(min-width:1101px){
  body.creative-editor-active{overflow:hidden}
  .photo-strip-editor-page{height:calc(100dvh - var(--site-header-offset,0px));padding-bottom:0;overflow:hidden}
  .photo-strip-editor-shell{height:100%;display:flex;flex-direction:column;min-height:0}
  .photo-strip-editor-heading{flex:0 0 auto}
  .photo-strip-editor-layout{height:var(--photo-strip-workspace-height,calc(100dvh - 210px));min-height:0;overflow:hidden}
  .photo-strip-assets-panel,.photo-strip-settings-panel,.photo-strip-stage-panel{height:100%;max-height:100%;min-height:0}
  .photo-strip-assets-panel,.photo-strip-settings-panel{overflow:auto}
  .photo-strip-stage-panel{overflow:hidden}
  .photo-strip-stage-wrap{height:100%;min-height:0;overflow:hidden;padding:12px}
  .photo-strip-stage{flex:none;max-height:100%;max-width:100%}
  .photo-strip-asset-grid{max-height:none;min-height:0;flex:1 1 auto}
}
@media(max-width:1100px){
  .photo-strip-font-choices{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
  .photo-strip-editor-ready{justify-content:flex-start}
}

/* 0.3.605 STRIP-05.4 – editor parity, crop geometry, express and shared B/W switches */
.photo-strip-summary-copy{
  display:block;
  margin-top:5px;
  color:var(--ink);
  font-size:.82rem;
  line-height:1.2;
  font-weight:800;
  text-align:left;
}
.photo-strip-summary .creative-order-head>div:first-child,
.photo-strip-settings-panel .creative-order-head>div:first-child{min-width:0;text-align:left}
.photo-strip-font-choices{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:8px}
.photo-strip-font-choices button{
  min-width:58px;
  min-height:58px;
  padding:4px;
  font-size:1.65rem;
  line-height:1;
  display:grid;
  place-items:center;
  overflow:visible;
  text-overflow:clip;
}
.photo-strip-text-color-swatches{align-items:center}
#photoStripTextColorCustomTrigger{
  width:34px;
  height:34px;
  min-width:34px;
  padding:0!important;
  border-radius:50%;
  display:inline-grid!important;
  place-items:center!important;
  line-height:1!important;
}
#photoStripTextColorCustomTrigger>span{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  line-height:1;
  transform:none!important;
  margin:0!important;
  padding:0!important;
}
.photo-strip-editor-ready .ready-time-banner.express{align-items:center}
.photo-strip-editor-ready .express-order-toggle{margin-left:auto;white-space:nowrap}
.photo-strip-crop-dialog .crop-preview-wrap{min-height:620px;padding:38px;display:grid;place-items:center;background:#18201e}
.photo-strip-crop-dialog .photo-strip-crop-stage{
  position:relative;
  max-width:100%;
  max-height:72vh;
  border-radius:0;
  background:#0d1110;
  overflow:hidden;
  touch-action:none;
  box-shadow:0 0 0 1px rgba(255,255,255,.12);
}
.photo-strip-crop-dialog .photo-strip-crop-stage img{position:absolute;max-width:none;max-height:none;display:block}
.photo-strip-crop-dialog .crop-stage-help{position:absolute;left:38px;right:38px;bottom:16px;color:rgba(255,255,255,.8);text-align:center}
.photo-strip-crop-dialog .crop-controls{background:var(--surface-card)}
.photo-strip-crop-dialog .image-bw-switch{margin:18px 0}
@media(max-width:900px){
  .photo-strip-crop-dialog .crop-preview-wrap{min-height:400px;padding:28px 18px 48px}
  .photo-strip-crop-dialog .crop-stage-help{left:18px;right:18px}
}

/* 0.3.606 STRIP-05.5 – shared creative header/crop parity + full-height workspace */
.photo-strip-font-choices{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.photo-strip-font-choices button{
  width:52px;
  min-width:52px;
  height:42px;
  min-height:42px;
  padding:0;
  border:1px solid #ddd7cf;
  border-radius:9px;
  background:var(--surface-card,#fff);
  color:var(--ink,#24312d);
  font-size:1.15rem;
  line-height:1;
  display:grid;
  place-items:center;
  box-shadow:none;
}
.photo-strip-font-choices button:hover,
.photo-strip-font-choices button.active{
  border:2px solid var(--brand);
  box-shadow:none;
}
#photoStripTextColorCustomTrigger,
#photoStripTextColorCustomTrigger>span{
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  line-height:1!important;
}
#photoStripTextColorCustomTrigger>span{transform:translateY(-.5px)!important}

@media(min-width:1101px){
  .photo-strip-editor-page{
    box-sizing:border-box;
    padding-bottom:0!important;
    overflow:hidden!important;
  }
  .photo-strip-editor-shell{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
  }
  .photo-strip-editor-heading{flex:0 0 auto!important}
  .photo-strip-editor-layout{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .photo-strip-assets-panel,
  .photo-strip-stage-panel,
  .photo-strip-settings-panel{
    height:100%!important;
    min-height:0!important;
  }
  .photo-strip-stage-wrap{height:100%!important;min-height:0!important}
  .photo-strip-editor-heading-status{align-self:center!important;flex-wrap:nowrap!important}
  .photo-strip-editor-ready{
    display:flex!important;
    flex-wrap:nowrap!important;
    max-width:none!important;
    width:auto!important;
    gap:8px!important;
    margin:0!important;
  }
  .photo-strip-editor-ready .ready-time-banner{
    width:auto!important;
    min-width:158px!important;
  }
}

.photo-strip-crop-dialog{width:min(1000px,100%)!important}
.photo-strip-crop-dialog .crop-preview-wrap{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  gap:8px!important;
  place-items:stretch!important;
  min-height:580px!important;
  padding:45px!important;
  background:#181818!important;
}
.photo-strip-crop-dialog .creative-crop-stage{
  position:relative!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
  background:#111!important;
  border-radius:0!important;
  box-shadow:none!important;
  touch-action:none;
}
#photoStripCropCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.photo-strip-crop-dialog .crop-stage-help{
  position:static!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  color:#d7d7d7!important;
  text-align:center!important;
  font-size:.76rem!important;
}
.photo-strip-crop-dialog .crop-controls{padding:26px 20px 20px!important;background:var(--surface-card,#fff)!important}
.photo-strip-crop-dialog .crop-controls h2{margin:.15rem 0 .35rem!important}
.photo-strip-crop-dialog .crop-controls p{font-size:.82rem!important;line-height:1.4!important}
.photo-strip-crop-dialog .crop-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
.photo-strip-crop-dialog .crop-actions button{width:100%!important}
.photo-strip-crop-dialog .image-bw-switch{margin:20px 0!important}

@media(max-width:900px){
  .photo-strip-crop-dialog{grid-template-columns:1fr!important;height:auto!important;max-height:calc(100vh - 16px)!important;overflow:auto!important}
  .photo-strip-crop-dialog .crop-preview-wrap{min-height:55vh!important;padding:24px 18px!important}
}

/* 0.3.607 STRIP-05.6 – align photo-strip viewport/header and crop action contrast */
@media (min-width:1101px){
  /* Match the established creative editor geometry exactly. The old strip shell
     still carried its original 30px/72px padding, which created both the large
     gap below the navigation and the missing bottom part of the editor. */
  .photo-strip-editor-page{
    height:calc(100vh - 76px)!important;
    min-height:640px!important;
    padding:8px 0 10px!important;
    overflow:hidden!important;
  }
  .photo-strip-editor-shell{
    height:100%!important;
    min-height:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .photo-strip-editor-heading{
    flex:0 0 auto!important;
    margin-bottom:6px!important;
  }
  .photo-strip-editor-layout{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .photo-strip-assets-panel,
  .photo-strip-stage-panel,
  .photo-strip-settings-panel{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }
  .photo-strip-stage-wrap{
    height:100%!important;
    min-height:0!important;
  }
}

/* Give the two rotate actions the same button affordance as the shared creative
   crop editor instead of letting them visually disappear into the control rail. */
.photo-strip-crop-dialog .crop-actions .small-btn{
  background:var(--surface-muted,#e9eeeb)!important;
  border:1px solid var(--line,#d9d4ca)!important;
  color:var(--ink,#24312d)!important;
  border-radius:10px!important;
  min-height:42px!important;
  font-weight:800!important;
  box-shadow:none!important;
}
.photo-strip-crop-dialog .crop-actions .small-btn:hover{
  border-color:var(--brand)!important;
  color:var(--brand)!important;
  background:color-mix(in srgb,var(--brand) 7%,var(--surface-card,#fff))!important;
}


/* 0.3.608 STRIP-05.7 – crop control spacing + exact creative viewport fit */
.photo-strip-crop-dialog .crop-actions{
  margin-top:14px!important;
}
.photo-strip-crop-dialog .crop-position-info{
  margin-top:10px!important;
}
.photo-strip-crop-dialog #photoStripCropSave{
  margin-top:12px!important;
}

@media (min-width:1101px){
  /* Use the same measured banner+header height as the shared creative editor.
     This keeps the rounded panel bottoms visible instead of extending a few
     pixels below the viewport when the demo banner is present. */
  .photo-strip-editor-page{
    height:calc(100dvh - var(--creative-chrome-height,118px))!important;
    min-height:0!important;
    padding:5px 0 6px!important;
    box-sizing:border-box!important;
  }
  .photo-strip-editor-layout{
    padding-bottom:1px!important;
  }
  .photo-strip-assets-panel,
  .photo-strip-stage-panel,
  .photo-strip-settings-panel{
    box-sizing:border-box!important;
    border-radius:16px!important;
    overflow:hidden;
  }
  .photo-strip-assets-panel,
  .photo-strip-settings-panel{
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }
}

/* 0.3.609 STRIP-06 – photo-strip appearance */
.photo-strip-background-media{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.photo-strip-background-media button{padding:0;border:2px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-card);cursor:pointer;aspect-ratio:1;position:relative}
.photo-strip-background-media button.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.photo-strip-background-media img{width:100%;height:100%;object-fit:cover;display:block}
.photo-strip-background-media span{position:absolute;inset:auto 3px 3px;background:rgba(255,255,255,.88);border-radius:5px;padding:2px 4px;font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-strip-own-background{margin-top:10px}.photo-strip-own-background.active{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,var(--surface-card))}
.photo-strip-skin-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.photo-strip-skin-choices button{min-height:54px;border:1px solid var(--line);border-radius:10px;background:var(--surface-card);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.photo-strip-skin-choices button.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.filmstrip-choice-preview{width:22px;height:38px;background:#171717;position:relative;border-radius:2px}.filmstrip-choice-preview:before,.filmstrip-choice-preview:after{content:"";position:absolute;top:2px;bottom:2px;width:5px;background:repeating-linear-gradient(to bottom,#fff 0 4px,transparent 4px 8px)}.filmstrip-choice-preview:before{left:2px}.filmstrip-choice-preview:after{right:2px}
.photo-strip-stage{position:relative;background-color:var(--strip-bg);background-repeat:no-repeat}
.photo-strip-stage>*{position:relative;z-index:1}
.photo-strip-stage.photo-strip-skin-filmstrip:before,.photo-strip-stage.photo-strip-skin-filmstrip:after{content:"";position:absolute;z-index:4;top:0;bottom:0;width:8%;min-width:10px;max-width:28px;background-color:#151515;background-image:repeating-linear-gradient(to bottom,transparent 0 7px,#f6f4ef 7px 14px,transparent 14px 21px);background-size:46% 21px;background-repeat:repeat-y;background-position:center;pointer-events:none}
.photo-strip-stage.photo-strip-skin-filmstrip:before{left:0}.photo-strip-stage.photo-strip-skin-filmstrip:after{right:0}
.photo-strip-stage.photo-strip-skin-filmstrip{box-shadow:0 14px 42px rgba(0,0,0,.22)}
@media(max-width:760px){.photo-strip-background-media{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* TRACK-02 consent */
.pr-consent-banner{position:fixed;z-index:1200;left:18px;right:18px;bottom:18px;max-width:1180px;margin:0 auto;background:var(--surface-card,#fff);color:var(--ink,#1d2926);border:1px solid var(--line,#dfe4e1);border-radius:18px;box-shadow:0 18px 55px rgba(20,32,28,.18);padding:18px 20px}.pr-consent-banner[hidden]{display:none}.pr-consent-banner-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center}.pr-consent-copy{display:grid;gap:5px}.pr-consent-copy strong{font-size:17px}.pr-consent-copy p{margin:0;color:var(--muted,#66736f);line-height:1.45;max-width:780px}.pr-consent-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pr-consent-btn{appearance:none;border:1px solid var(--line,#d9dfdc);border-radius:10px;background:var(--surface-card,#fff);color:var(--ink,#1d2926);padding:10px 14px;font-weight:700;cursor:pointer}.pr-consent-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.pr-consent-btn.link{background:transparent;border-color:transparent;text-decoration:underline}.pr-consent-dialog{width:min(680px,calc(100vw - 28px));border:0;border-radius:18px;padding:0;background:var(--surface-card,#fff);color:var(--ink,#1d2926);box-shadow:0 24px 80px rgba(14,24,20,.28)}.pr-consent-dialog::backdrop{background:rgba(15,24,21,.42)}.pr-consent-dialog-inner{padding:24px;display:grid;gap:18px}.pr-consent-dialog-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.pr-consent-dialog-head h2{margin:0 0 4px}.pr-consent-dialog-head p{margin:0;color:var(--muted)}.pr-consent-close{border:0;background:var(--surface-muted,#eee);width:36px;height:36px;border-radius:50%;font-size:22px;cursor:pointer}.pr-consent-categories{display:grid;gap:10px}.pr-consent-category{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px}.pr-consent-category p{margin:4px 0 0;color:var(--muted);font-size:14px}.pr-consent-fixed{font-size:12px;font-weight:800;color:var(--status-success,#2f7558)}.pr-consent-switch{position:relative;width:46px;height:26px}.pr-consent-switch input{position:absolute;opacity:0}.pr-consent-switch span{position:absolute;inset:0;border-radius:99px;background:#c7cfcb;cursor:pointer;transition:.15s}.pr-consent-switch span:after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.15s}.pr-consent-switch input:checked+span{background:var(--brand)}.pr-consent-switch input:checked+span:after{transform:translateX(20px)}.pr-consent-dialog-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.pr-cookie-settings-link{cursor:pointer}
@media(max-width:720px){.pr-consent-banner{left:10px;right:10px;bottom:10px}.pr-consent-banner-inner{grid-template-columns:1fr}.pr-consent-actions{justify-content:flex-start}.pr-consent-dialog-inner{padding:18px}}

/* 0.3.700 – RET-03 Retro Print aligned with shared Creative Builder UI */
.retro-print-editor-layout{grid-template-columns:minmax(210px,250px) minmax(0,1fr) minmax(270px,320px)}
.retro-print-stage-panel{min-width:0;display:flex;flex-direction:column;overflow:hidden}
.retro-print-stage-wrap{flex:1;min-height:0;display:grid;place-items:center;padding:1.5rem}
.retro-print-stage{width:100%;height:100%;min-height:420px;display:grid;place-items:center;overflow:hidden}
.retro-print-canvas{position:relative;background:#fff;box-shadow:0 12px 34px rgba(31,43,54,.18);overflow:hidden;flex:none}
.retro-print-photo{position:absolute;display:grid;place-items:center;overflow:hidden;background:#f0f1f2;color:var(--muted);font-size:.84rem;border:1px dashed rgba(64,78,92,.25)}
.retro-print-photo img{display:none;width:100%;height:100%;object-fit:cover}.retro-print-photo.has-image img{display:block}.retro-print-photo.has-image span{display:none}
.retro-print-caption{position:absolute;left:6%;right:6%;bottom:4%;height:15%;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;line-height:1.05;pointer-events:none}
.retro-print-pages{display:flex;gap:.6rem;align-items:center;overflow:auto;padding:.75rem 1rem 1rem;border-top:1px solid var(--line)}
.retro-print-page,.retro-print-page-add{position:relative;width:72px;height:72px;flex:0 0 72px;border:1px solid var(--line);border-radius:.7rem;background:#fff;display:grid;place-items:center;overflow:hidden}
.retro-print-page img{width:100%;height:100%;object-fit:cover}.retro-print-page span{position:absolute;right:.3rem;bottom:.3rem;min-width:1.4rem;height:1.4rem;padding:0 .3rem;border-radius:999px;background:rgba(255,255,255,.94);display:grid;place-items:center;font-size:.72rem;font-weight:800}
.retro-print-page.active{border:2px solid var(--brand-primary,var(--theme-primary,#2e475d));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary,var(--theme-primary,#2e475d)) 15%,transparent)}
.retro-print-page-add{border-style:dashed;color:var(--muted);gap:.05rem}.retro-print-page-add b{font-size:1.4rem;line-height:1}.retro-print-page-add span{font-size:.68rem;font-weight:700}
.retro-print-asset-grid .creative-asset{position:relative}.retro-print-asset-grid .creative-used-check{display:none !important}.retro-print-asset-grid .creative-asset.used .creative-used-check{display:grid !important}
.retro-print-panel-tabs{margin-top:.8rem}.retro-print-settings-panel textarea,.retro-print-settings-panel select{width:100%}.retro-print-settings-panel label{display:grid;gap:.35rem;margin:.75rem 0}.retro-print-backgrounds{display:grid;gap:.45rem;margin:.65rem 0}.retro-print-backgrounds button{text-align:left;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.65rem;background:#fff}.retro-print-backgrounds button.active{border-color:var(--brand-primary,var(--theme-primary,#2e475d));box-shadow:inset 0 0 0 1px var(--brand-primary,var(--theme-primary,#2e475d))}.retro-print-settings-panel .background-swatches button{background:var(--swatch)}.creative-setting-hint{display:block;color:var(--muted);line-height:1.4;margin-top:.75rem}
@media(max-width:1100px){.retro-print-editor-layout{grid-template-columns:220px minmax(0,1fr)}.retro-print-settings-panel{grid-column:1/-1}.retro-print-stage{min-height:380px}}

/* 0.3.701 – RET-04 Retro Print image adjustment + page actions */
.retro-print-photo{cursor:default}.retro-print-photo.has-image{cursor:pointer}.retro-print-photo.has-image img{will-change:transform}.retro-print-edit-image{position:absolute;left:50%;bottom:.55rem;transform:translateX(-50%);z-index:3;border:0;border-radius:999px;padding:.45rem .75rem;background:rgba(25,38,50,.88);color:#fff;font:inherit;font-size:.75rem;font-weight:800;box-shadow:0 4px 14px rgba(0,0,0,.2);opacity:0;transition:opacity .15s ease}.retro-print-photo:hover .retro-print-edit-image,.retro-print-edit-image:focus-visible{opacity:1}.retro-print-edit-image[hidden]{display:none}
.retro-print-pages-toolbar{display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--line);padding-right:1rem}.retro-print-pages-toolbar .retro-print-pages{border-top:0;flex:1;padding-right:0}.retro-print-page-actions{display:flex;gap:.35rem;align-items:center;flex:0 0 auto}.retro-print-page-actions .small-btn{white-space:nowrap}.retro-print-page-actions .danger{color:#a33232}.retro-print-page-actions button:disabled{opacity:.35;cursor:not-allowed}
.retro-print-page{isolation:isolate}.retro-print-page-image{position:absolute;left:12%;right:12%;top:10%;height:58%;overflow:hidden;background:#edf0f2}.retro-print-page-image img{width:100%;height:100%;object-fit:cover;max-width:none}.retro-print-page i{position:absolute;left:7%;right:7%;bottom:9%;font-style:normal;font-size:.5rem;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#252525}.retro-print-page>span:last-child{z-index:4}.retro-print-page.dragging{opacity:.55}
.retro-print-crop-dialog{max-width:980px}.retro-print-crop-dialog .crop-preview-wrap{min-width:0}.retro-print-crop-stage{position:relative;width:min(100%,620px);max-height:72vh;margin:auto;overflow:hidden;background:#e8eaec;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);touch-action:none;cursor:grab}.retro-print-crop-stage.dragging{cursor:grabbing}.retro-print-crop-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;user-select:none;pointer-events:none}.retro-print-crop-dialog .crop-controls{min-width:250px}
@media(max-width:900px){.retro-print-pages-toolbar{align-items:stretch;flex-direction:column;padding-right:0}.retro-print-page-actions{padding:0 1rem 1rem;overflow:auto}.retro-print-edit-image{opacity:1}.retro-print-crop-dialog{grid-template-columns:1fr}.retro-print-crop-stage{max-height:52vh}}

/* 0.3.702 – RET-04A Retro Print canvas reliability + shared visual pickers */
.retro-print-font-control{display:grid;gap:7px;margin:.75rem 0;font-size:.82rem;font-weight:700;color:var(--ink)}
.retro-print-font-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:7px}
.retro-print-font-choices button{min-width:52px;height:42px;border:1px solid #ddd7cf;border-radius:9px;background:#fff;color:var(--ink);font-size:1.15rem;cursor:pointer}
.retro-print-font-choices button:hover,.retro-print-font-choices button.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 14%,transparent)}
.retro-print-settings-panel .creative-text-color-control{display:grid;gap:7px;margin:.75rem 0;font-size:.82rem;font-weight:700}
.retro-print-settings-panel .background-swatches{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:38px}
.retro-print-settings-panel .background-swatch{width:34px;height:34px;flex:0 0 34px;padding:0;border-radius:50%;border:2px solid #fff;outline:1px solid #d8d3ca;cursor:pointer}
.retro-print-settings-panel .background-swatch:hover,.retro-print-settings-panel .background-swatch.active{outline:3px solid var(--brand)}
.retro-print-background-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:.75rem 0 1rem}
.retro-print-background-color-swatches{display:contents}
.retro-print-background-media{width:34px;height:34px;flex:0 0 34px;padding:0;border:2px solid #fff;border-radius:50%;outline:1px solid #d8d3ca;background:#fff;overflow:hidden;cursor:pointer}
.retro-print-background-media img{width:100%;height:100%;display:block;object-fit:cover}
.retro-print-background-media:hover,.retro-print-background-media.active{outline:3px solid var(--brand)}
.retro-print-background-picker .creative-custom-color-button,.retro-print-settings-panel .creative-custom-color-button{width:34px;height:34px;flex-basis:34px}
.retro-print-canvas{min-width:1px;min-height:1px}

/* 0.3.702 RET-04D – Retro Print main preview uses explicit server-rendered geometry. */
.retro-print-stage .retro-print-canvas{display:block;flex:none;min-width:120px;min-height:120px}
.retro-print-stage{overflow:auto}

/* Retro Print RET-04E: shared image-adjust UX, quality and accurate page previews */
.retro-print-photo.has-image{cursor:pointer}
.retro-print-photo.has-image::after{content:"";position:absolute;inset:0;border:2px solid transparent;pointer-events:none;transition:border-color .15s ease,background .15s ease}
.retro-print-photo.has-image:hover::after{border-color:color-mix(in srgb,var(--brand-primary,var(--theme-primary,#2e475d)) 55%,transparent);background:rgba(255,255,255,.025)}
.retro-print-edit-image{display:none!important}
.retro-print-quality-badge{position:absolute;right:.45rem;top:.45rem;z-index:5;min-width:30px;width:30px;height:30px;padding:0;border-radius:50%;display:grid;place-items:center;box-shadow:0 3px 12px rgba(0,0,0,.15)}
.retro-print-quality-badge.hidden{display:none}
.retro-print-quality-badge .quality-symbol,.retro-crop-quality-badge .quality-symbol{display:flex;align-items:center;justify-content:center;font:700 12px/1 Arial,sans-serif;padding:0;margin:0;transform:translateY(-.5px)}
.retro-print-caption{white-space:normal}
.retro-print-caption>span{display:block;width:100%;max-height:100%;text-align:center;white-space:pre-wrap;overflow:hidden;overflow-wrap:break-word;word-break:normal}
.retro-font-fit-hint{display:block;margin-top:-.35rem;color:#9a6b19;font-size:.74rem;line-height:1.35}.retro-font-fit-hint.hidden{display:none}

.retro-print-page{width:76px;height:76px;flex:0 0 76px;padding:5px;border-radius:.7rem;background:#f5f6f7;overflow:visible}
.retro-print-page-preview{position:relative!important;inset:auto!important;display:block!important;max-width:60px;max-height:62px;width:auto;height:auto;aspect-ratio:var(--retro-thumb-ratio,1);overflow:hidden;border-radius:0!important;box-shadow:0 2px 7px rgba(31,43,54,.16);background:#fff;margin:auto}
.retro-print-page-preview::before{content:"";display:block;padding-top:calc(100% / var(--retro-thumb-ratio,1))}
.retro-print-page-photo{position:absolute!important;display:block!important;overflow:hidden!important;border-radius:0!important;background:#edf0f2!important;min-width:0!important;min-height:0!important;padding:0!important}
.retro-print-page-photo img{position:absolute!important;display:block;width:100%;height:100%;object-fit:cover;max-width:none;border-radius:0!important}
.retro-print-page-preview>i{position:absolute;left:6%;right:6%;bottom:4%;height:15%;display:flex;align-items:center;justify-content:center;text-align:center;font-style:normal;font-size:.42rem;line-height:1.05;overflow:hidden;white-space:normal;color:#252525}
.retro-print-page .retro-print-page-number{position:absolute!important;right:-.2rem!important;bottom:-.2rem!important;left:auto!important;top:auto!important;z-index:6;min-width:1.35rem!important;height:1.35rem!important;padding:0 .25rem!important;border-radius:999px!important;background:#fff!important;display:grid!important;place-items:center!important;font-size:.68rem!important;font-weight:800!important;box-shadow:0 1px 5px rgba(0,0,0,.12)}
.retro-print-page.active{background:#fff}

.retro-print-crop-dialog{max-width:1040px}
.retro-print-crop-dialog .crop-preview-wrap{display:grid;gap:.65rem;align-content:start}
.retro-crop-quality-badge{justify-self:start;margin-top:.1rem}
.retro-crop-action-list{display:grid;gap:.55rem;margin-top:.8rem;margin-bottom:1.1rem}
.retro-crop-action{width:100%;text-align:left}
.retro-crop-save{margin-top:.45rem}
@media(max-width:900px){.retro-print-quality-badge{right:.3rem;top:.3rem}.retro-print-page{width:72px;height:72px;flex-basis:72px}.retro-print-page-preview{max-width:56px;max-height:58px}}

/* RET-04E thumbnail reset against legacy generic span rules */
.retro-print-page .retro-print-page-preview{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;min-width:0!important;min-height:0!important;padding:0!important;border-radius:0!important;display:block!important;margin:auto!important;overflow:hidden!important}
.retro-print-page .retro-print-page-preview::before{display:none!important}
.retro-print-page .retro-print-page-photo{right:auto!important;bottom:auto!important;min-width:0!important;min-height:0!important;padding:0!important;border-radius:0!important;display:block!important}
.retro-print-photo.has-image .retro-print-quality-badge .quality-symbol{display:flex}

/* RET-04G direct image pan/zoom */
.retro-print-photo.has-image{cursor:grab;touch-action:none}
.retro-print-photo.has-image.dragging{cursor:grabbing}
.retro-print-photo.has-image img{pointer-events:none;user-select:none}

/* RET-05: Retro Print gallery thumbnails use the full shared creative asset frame. */
.retro-print-asset-grid .creative-asset{padding:0}
.retro-print-asset-grid .creative-asset>img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}


/* 0.3.724 – RET-08B mobile/tablet release hardening */
@media(max-width:760px){
  .retro-print-editor-page .creative-shell{padding-inline:10px}
  .retro-print-editor-layout{grid-template-columns:minmax(0,1fr);gap:12px}
  .retro-print-assets-panel,.retro-print-stage-panel,.retro-print-settings-panel{grid-column:1!important;min-width:0;width:100%}
  .retro-print-stage-panel{order:1}
  .retro-print-assets-panel{order:2}
  .retro-print-settings-panel{order:3}
  .retro-print-stage-wrap{padding:.75rem;min-height:0}
  .retro-print-stage{min-height:300px;overflow:hidden}
  .retro-print-pages-toolbar{gap:.35rem}
  .retro-print-pages{padding:.65rem .75rem .75rem}
  .retro-print-page-actions{padding:0 .75rem .75rem}
  .retro-print-page-actions .small-btn{min-height:38px}
  .retro-print-panel-tabs{position:sticky;top:0;z-index:3;background:var(--surface-card,#fff);padding-top:.15rem}
  .retro-print-font-choices{grid-template-columns:repeat(4,minmax(0,1fr))}
  .retro-print-crop-dialog{width:min(100%,calc(100vw - 18px));max-height:calc(100vh - 18px);overflow:auto}
  .retro-print-crop-stage{max-height:44vh}
}
@media(max-width:420px){
  .retro-print-stage{min-height:260px}
  .retro-print-page,.retro-print-page-add{width:64px;height:64px;flex-basis:64px}
  .retro-print-page-preview{max-width:50px;max-height:52px}
  .retro-print-font-choices{grid-template-columns:repeat(3,minmax(0,1fr))}
}


/* Cart-aware Express availability */
.express-policy-hidden { display: none !important; }
.express-policy-banner {
  display:flex; align-items:flex-start; gap:.75rem; margin:0 auto 1rem; max-width:1180px; padding:.9rem 1rem;
  border:1px solid rgba(176,112,0,.28); border-radius:14px; background:rgba(255,247,224,.96); color:#5d4300;
  box-shadow:0 8px 22px rgba(40,30,0,.06);
}
.express-policy-banner > span { font-size:1.25rem; line-height:1.35; }
.express-policy-banner strong { display:block; margin-bottom:.12rem; }
.express-policy-banner p { margin:0; font-size:.92rem; line-height:1.45; }
.express-policy-toast {
  position:fixed; z-index:10050; right:1.25rem; bottom:1.25rem; max-width:min(430px,calc(100vw - 2rem));
  padding:.9rem 1rem; border-radius:12px; background:#fff; color:#1e293b; box-shadow:0 16px 45px rgba(15,23,42,.22);
  border:1px solid rgba(15,23,42,.12); opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .18s ease,transform .18s ease; font-size:.93rem; line-height:1.45;
}
.express-policy-toast.show { opacity:1; transform:translateY(0); }
.express-policy-toast.warning { border-color:rgba(176,112,0,.4); background:#fff9e8; }
.express-policy-toast.success { border-color:rgba(22,125,73,.35); background:#effbf4; }
@media (max-width: 720px) {
  .express-policy-banner { margin:.65rem .75rem 1rem; }
  .express-policy-toast { right:1rem; left:1rem; bottom:1rem; max-width:none; }
}

/* 0.3.741 - contextual Express policy feedback */
.ready-time-banner.express.express-policy-status{
  min-width:190px;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.ready-time-banner.express.express-policy-status.blocked{
  border-color:#e7c563;
  background:#fff8df;
  color:#6d5310;
}
.ready-time-banner.express.express-policy-status.blocked small{color:#8b7128}
.ready-time-banner.express.express-policy-status.revoked{
  border-color:#d97878;
  background:#fff0f0;
  color:#7c2020;
  box-shadow:0 0 0 1px rgba(188,54,54,.06),0 6px 18px rgba(133,30,30,.08);
  animation:express-policy-soft-pulse 1.8s ease-in-out 3;
}
.ready-time-banner.express.express-policy-status.revoked small{color:#a02f2f}
.ready-time-banner.express.express-policy-status.revoked .ready-time-icon{
  display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#c33;color:#fff;font-weight:900;
}
@keyframes express-policy-soft-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(194,51,51,0),0 6px 18px rgba(133,30,30,.08)}
  50%{box-shadow:0 0 0 5px rgba(194,51,51,.10),0 6px 18px rgba(133,30,30,.12)}
}
@media (prefers-reduced-motion:reduce){.ready-time-banner.express.express-policy-status.revoked{animation:none}}

.express-policy-inline-status{
  display:inline-grid;gap:1px;padding:6px 9px;border:1px solid #e7c563;border-radius:10px;background:#fff8df;color:#6d5310;line-height:1.15;vertical-align:middle;
}
.express-policy-inline-status b{font-size:.72rem}
.express-policy-inline-status small{font-size:.66rem;color:inherit;opacity:.86}
.express-policy-inline-status.revoked{border-color:#d97878;background:#fff0f0;color:#7c2020;animation:express-policy-soft-pulse 1.8s ease-in-out 3}
@media (prefers-reduced-motion:reduce){.express-policy-inline-status.revoked{animation:none}}

.express-policy-cart-alert{
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;margin:0 0 18px;padding:14px 16px;border:1px solid #df8585;border-radius:14px;background:#fff2f2;color:#702323;box-shadow:0 8px 22px rgba(112,35,35,.07);
}
.express-policy-cart-alert-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#c33;color:#fff;font-weight:900}
.express-policy-cart-alert strong{display:block;margin:1px 0 4px;font-size:.96rem}
.express-policy-cart-alert p{margin:0;font-size:.86rem;line-height:1.45;color:#874040}
.express-policy-cart-alert button{border:0;background:transparent;color:#8b5555;font-size:1.5rem;line-height:1;cursor:pointer;padding:0 2px}
.express-policy-cart-alert button:hover{color:#642222}
@media(max-width:620px){.express-policy-cart-alert{grid-template-columns:auto 1fr}.express-policy-cart-alert button{grid-column:2;grid-row:1;justify-self:end}.express-policy-cart-alert>div:nth-child(2){grid-column:1/-1}}


/* 0.3.742 - calmer contextual Express feedback */
.ready-time-banner.express.express-policy-status>div{min-width:0}
.ready-time-banner.express.express-policy-status>div>span:not(.express-policy-details){display:block}
.express-policy-details-toggle{
  display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:.68rem;font-weight:800;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;opacity:.88
}
.express-policy-details-toggle:hover{opacity:1}
.express-policy-details{display:block;margin-top:4px;font-size:.67rem;line-height:1.35;color:inherit;opacity:.86}
.express-policy-details[hidden]{display:none!important}
.express-policy-inline-status .express-policy-details-toggle{font-size:.64rem;margin-top:3px}
.express-policy-inline-status .express-policy-details{font-size:.62rem}

.express-policy-cart-alert{
  margin:10px 14px 8px;padding:11px 13px;border:1px solid #e3c878;border-radius:12px;background:#fff9e8;color:#625019;box-shadow:none;
}
.express-policy-cart-alert-icon{width:26px;height:26px;background:#f3df9d;color:#725a12;font-size:.9rem}
.express-policy-cart-alert strong{font-size:.88rem;color:#574615}
.express-policy-cart-alert p{font-size:.79rem;color:#75642f}
.express-policy-cart-alert button{color:#8a773d;font-size:1.3rem}
.express-policy-cart-alert button:hover{color:#584813}
@media(max-width:620px){.express-policy-cart-alert{margin:9px 14px 7px}}

/* 0.3.743 - compact Express unavailable status + info dialog */
.ready-time-banner.express.express-policy-status{
  min-width:0!important;
  width:auto;
  max-width:190px;
  margin-bottom:22px;
  padding:9px 10px;
  gap:8px;
  align-items:center;
  align-self:flex-start;
}
.ready-time-banner.express.express-policy-status .ready-time-icon{font-size:16px;flex:0 0 auto}
.ready-time-banner.express.express-policy-status>div{gap:0;line-height:1.08}
.ready-time-banner.express.express-policy-status small{font-size:8px}
.ready-time-banner.express.express-policy-status strong{font-size:12px;white-space:nowrap}
.ready-time-banner.express.express-policy-status.revoked .ready-time-icon{
  width:auto;height:auto;border-radius:0;background:transparent;color:inherit;font-weight:inherit;
}
.express-policy-info-button{
  flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;margin-left:2px;padding:0;
  border:1px solid currentColor;border-radius:50%;background:rgba(255,255,255,.55);color:inherit;
  font-size:12px;font-weight:900;line-height:1;cursor:pointer;opacity:.82;
}
.express-policy-info-button:hover{opacity:1;background:#fff}
.express-policy-inline-status{display:inline-flex;align-items:center;gap:8px;padding:6px 8px}
.express-policy-inline-status>span{display:grid;gap:0;line-height:1.05}
.express-policy-inline-status .express-policy-info-button{width:20px;height:20px;font-size:11px}
.express-policy-details-toggle,.express-policy-details{display:none!important}

.express-policy-info-dialog{position:fixed;inset:0;z-index:10050}
.express-policy-info-dialog[hidden]{display:none!important}
.express-policy-info-backdrop{position:absolute;inset:0;background:rgba(22,31,38,.24);backdrop-filter:blur(1px)}
.express-policy-info-card{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(390px,calc(100vw - 32px));
  padding:20px 20px 18px;border:1px solid #dec36d;border-radius:16px;background:#fffaf0;color:#4f451f;
  box-shadow:0 22px 60px rgba(22,31,38,.18);
}
.express-policy-info-card small{display:block;margin-bottom:3px;font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:#8b7128}
.express-policy-info-card strong{display:block;padding-right:28px;font-size:17px;color:#3e3518}
.express-policy-info-card p{margin:10px 0 12px;font-size:13px;line-height:1.45;color:#655a34}
.express-policy-info-blockers{padding:9px 11px;border-radius:10px;background:#fff3c9;font-size:12px;font-weight:800;color:#685415}
.express-policy-info-close{position:absolute;top:10px;right:12px;border:0;background:transparent;color:#7a6a37;font-size:24px;line-height:1;cursor:pointer}
.express-policy-info-close:hover{color:#443a1c}
@media(max-width:620px){
  .ready-time-banner.express.express-policy-status{max-width:none;width:100%}
}


/* 0.3.744 - equal-height Express status + confirmation readiness groups */
.ready-time-stack-compact .ready-time-banner.express.express-policy-status{
  align-self:stretch;
  margin-bottom:0;
  min-height:100%;
}
.ready-time-banner.express.express-policy-status>div{
  align-self:center;
}
.express-policy-more{
  display:block;
  margin-top:3px;
  font-size:7px!important;
  font-style:normal;
  font-weight:650;
  line-height:1.15;
  color:inherit!important;
  opacity:.72;
  white-space:nowrap;
}
.express-policy-inline-status .express-policy-more{font-size:.58rem!important;margin-top:2px}

.confirmation-ready-groups{
  display:grid;
  gap:8px;
  margin:12px 0 18px;
  text-align:left;
}
.confirmation-ready-group{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:11px 13px;
  border:1px solid var(--theme-border);
  border-radius:12px;
  background:var(--theme-surface-soft);
}
.confirmation-ready-group>span{display:grid;gap:2px;min-width:0}
.confirmation-ready-group small{
  color:var(--theme-muted-text);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.confirmation-ready-group strong{font-size:.88rem}
.confirmation-ready-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-left:5px;
  padding:2px 6px;
  border-radius:999px;
  background:#fff8df;
  color:#765a0d;
  font-size:.6rem;
  font-weight:850;
  letter-spacing:0;
  text-transform:none;
}
.confirmation-ready-group>time{font-size:.86rem;font-weight:850;white-space:nowrap;color:var(--ink)}
@media(max-width:620px){
  .confirmation-ready-group{grid-template-columns:1fr;gap:5px}
  .confirmation-ready-group>time{white-space:normal}
}

/* 0.3.745 - frozen customer readiness promise on order history */
.account-readiness-list{display:grid;gap:10px;margin-top:14px}
.account-readiness-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft,#f7f8f8)}
.account-readiness-item>span{display:flex;align-items:center;gap:9px;min-width:0}
.account-readiness-item time{font-weight:800;text-align:right}
.account-readiness-express{display:inline-flex;padding:3px 7px;border-radius:999px;background:#fff1d6;color:#8a5a00;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:640px){.account-readiness-item{align-items:flex-start;flex-direction:column;gap:6px}.account-readiness-item time{text-align:left}}

/* Payment icons and available brands */
.checkout-payment-label-content{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.checkout-payment-system-icon{width:28px;height:28px;object-fit:contain}.checkout-payment-brands{max-width:min(220px,100%);height:auto;max-height:45px;object-fit:contain}.footer-payment-brands{display:flex;align-items:center;gap:16px;flex-wrap:wrap;grid-column:1/-1}.footer-payment-brands img{max-width:210px;max-height:40px;object-fit:contain}

/* 0.3.809 - payment checkout cards and footer company information */
.checkout-card .checkout-payment-option{grid-template-columns:20px 54px minmax(0,1fr)!important;align-items:center!important;gap:13px!important;padding:13px 15px!important}
.checkout-payment-visual{width:54px;height:54px;display:grid!important;place-items:center;border-radius:12px;border:1px solid var(--line);background:var(--surface-soft)}
.checkout-payment-visual:has(img) .checkout-payment-system-icon{width:28px!important;height:28px!important;object-fit:contain}
.checkout-payment-label-content{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:5px!important}
.checkout-payment-label-content strong{font-size:14px;line-height:1.25}
.checkout-payment-brands{display:block;max-width:min(230px,100%);max-height:48px;width:auto;height:auto;object-fit:contain;object-position:left center}
.site-footer .footer-grid{grid-template-columns:minmax(150px,1.5fr) repeat(2,minmax(100px,1fr)) minmax(165px,1.15fr) minmax(155px,1fr);gap:24px;align-items:start}
.site-footer .footer-grid .footer-business-info,.site-footer .footer-grid .footer-payment-brands{grid-column:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-width:0;font-size:12px}
.site-footer .footer-business-info>span,.site-footer .footer-business-info>a{overflow-wrap:anywhere;line-height:1.4}
.site-footer .footer-grid .footer-payment-brands img{display:block;width:auto;height:auto;max-width:100%;max-height:48px;object-fit:contain;object-position:left center;margin:0}
.site-footer .footer-grid .powered{grid-column:1 / -1}
@media(max-width:1100px){.site-footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.site-footer .footer-grid .powered{grid-column:1/-1}}
@media(max-width:670px){.site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.checkout-card .checkout-payment-option{grid-template-columns:18px 44px minmax(0,1fr)!important;gap:9px!important}.checkout-payment-visual{width:44px;height:44px}}
@media(max-width:420px){.site-footer .footer-grid{grid-template-columns:1fr}}

/* 0.3.810 - no reserved icon column when a payment method has no system icon. */
.checkout-card .checkout-payment-option:not(:has(.checkout-payment-visual)){grid-template-columns:20px minmax(0,1fr)!important}
@media(max-width:670px){.checkout-card .checkout-payment-option:not(:has(.checkout-payment-visual)){grid-template-columns:18px minmax(0,1fr)!important}}

/* VAT-05b: dynamically selected checkout fee rows keep the original two-column alignment. */
.checkout-summary .checkout-charge-lines { display: contents; }
.checkout-summary .checkout-charge-lines > div { display:flex;justify-content:space-between;gap:10px;font-size:12px;margin:12px 0; }
.checkout-summary .checkout-charge-lines > div b { text-align:right;white-space:nowrap; }

/* VAT-06a: VAT rows are ordinary price information, not a warning/express surcharge. */
.cart-summary-detail.vat b,.checkout-summary-detail.vat b{color:inherit}

/* VAT-06b: show buyer fields only when the tenant enabled extended VAT. */
.checkout-vat-customer{display:grid;gap:12px;margin:0 0 18px;padding:16px;border:1px solid #e3e6e2;border-radius:14px;background:#f9fbfa}
.checkout-vat-customer select{width:100%;border:1px solid #d9d9d9;border-radius:12px;padding:12px 13px;font:inherit;background:#fff}
.checkout-vat-customer .form-grid{margin-top:4px}
.checkout-vat-customer small{font-size:11px;color:#68716f;font-weight:400}
.checkout-vat-customer .hidden{display:none!important}

.cms-content-hero-copy .cms-hero-icon,.cms-preview-hero .cms-hero-icon,.cms-inspector .cms-hero-icon{display:block;object-fit:contain;margin:16px 0;max-width:100%}.cms-content-hero-copy .cms-hero-list,.cms-preview-hero .cms-hero-list{padding-inline-start:1.5em;margin:1em 0;list-style-position:outside;line-height:1.55}.cms-hero-list li+li{margin-top:.35em}.cms-align-center .cms-hero-icon{margin-inline:auto}.cms-align-right .cms-hero-icon{margin-inline-start:auto}.cms-align-center .cms-hero-list{width:fit-content;max-width:100%;margin-inline:auto;text-align:left}.cms-align-right .cms-hero-list{width:fit-content;max-width:100%;margin-inline-start:auto;text-align:left}

ul.cms-hero-list{list-style-type:disc}ol.cms-hero-list{list-style-type:decimal}

/* Keep delivery-restricted payment methods hidden after checkout card styling. */
.checkout-card .checkout-payment-option.hidden{display:none!important}

.cms-content-hero-copy{width:100%}.cms-align-center .cms-content-hero-copy{margin-inline:auto}.cms-align-right .cms-content-hero-copy{margin-left:auto;margin-right:0}.cms-align-left .cms-content-hero-copy .cms-hero-icon{margin-left:0;margin-right:auto}.cms-align-center .cms-content-hero-copy .cms-hero-icon{margin-left:auto;margin-right:auto}.cms-align-right .cms-content-hero-copy .cms-hero-icon{margin-left:auto;margin-right:0}.cms-align-center .cms-content-hero-copy .cms-hero-text{margin-inline:auto}.cms-align-right .cms-content-hero-copy .cms-hero-text{margin-left:auto;margin-right:0}.cms-align-center .cms-content-hero-copy .cms-button-row{justify-content:center}.cms-align-right .cms-content-hero-copy .cms-button-row{justify-content:flex-end}

.framing-print-button {
    grid-column: 1 / -1;
    justify-self: start;
    border: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}
.framing-notice:empty { display: none; }
.framing-dialog {
    position: fixed;
    width: min(540px, calc(100% - 28px));
    max-height: calc(100dvh - 28px);
    overflow: auto;
    box-sizing: border-box;
    padding: clamp(16px, 4vw, 28px);
    border: 1px solid var(--line);
    border-radius: 16px;
    background: white;
    color: var(--ink);
}
.framing-dialog::backdrop { background: rgba(18, 28, 24, .55); }
.framing-dialog h2 { padding-right: 32px; }
.framing-picker { width: min(850px, calc(100% - 28px)); }
.framing-picker h2, .framing-image-dialog h2 { margin: .3rem 0 .5rem; }
.framing-intro { color: var(--muted); margin: 0 0 20px; }
.framing-picker-layout { display: grid; grid-template-columns: minmax(150px, .75fr) minmax(0, 2fr); gap: 20px; align-items: start; }
.framing-preview { display: grid; gap: 10px; }
.framing-preview img { width: 100%; max-height: 250px; object-fit: contain; border-radius: 12px; background: var(--paper, #f3f5f5); }
.framing-preview label { font-weight: 600; }
.framing-preview select { display: block; width: 100%; margin-top: 4px; }
.framing-status { margin: 0 0 10px; padding: 10px 12px; border-radius: 10px; background: #eef3f5; font-size: .9rem; }
.framing-status.is-limit { background: #fff2d9; color: #694300; border-inline-start: 3px solid #a66c16; }
.framing-option {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 10px;
    margin-bottom: 8px;
    border: 1px solid var(--line);
    border-radius: 12px;
}
.framing-option-media {
    display: grid;
    place-items: center;
    width: 76px;
    height: 84px;
    padding: 4px;
    border: 0;
    border-radius: 8px;
    background: white;
    color: var(--brand-2);
}
button.framing-option-media { cursor: zoom-in; }
.framing-option-media img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.framing-option-copy { display: grid; gap: 2px; overflow-wrap: anywhere; }
.framing-option-copy small { color: var(--muted); }
.framing-quantity { justify-self: end; }
.framing-picker-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 14px; }
.framing-picker-footer p { margin: 0; font-weight: 700; }
.framing-image-dialog { width: min(620px, calc(100% - 28px)); }
.framing-image-dialog img { width: 100%; max-height: 70dvh; object-fit: contain; display: block; }

.cart-framing-offer, .framing-cart-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    padding: clamp(14px, 2.5vw, 26px);
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #eef3f5;
}
.cart-framing-offer { margin-bottom: 16px; }
.framing-feature-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border-radius: 14px;
    background: white;
    color: var(--brand-2);
    font-size: 27px;
}
.framing-offer-copy { flex: 1 1 200px; }
.framing-offer-copy h2 { margin: 2px 0; }
.framing-offer-copy p, .framing-cart-heading p { margin: 4px 0 0; color: var(--muted); }
#cartFramingPopup form { margin-top: 12px; }
.framing-cart-back { display: inline-flex; margin-bottom: 12px; }
.framing-cart-heading h1 { margin: 4px 0; }
#framingCartPrice { margin-inline-start: auto; color: var(--ink); font-weight: 600; }
.framing-cart-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 16px 0; }
.framing-cart-filters label { display: grid; gap: 4px; }
.framing-cart-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 14px; }
.framing-cart-grid.is-detailed { grid-template-columns: 1fr; }
.framing-cart-line { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.framing-cart-image { display: grid; place-items: center; aspect-ratio: 4 / 3; background: #edf1f2; color: var(--muted); font-size: 30px; }
.framing-cart-image img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.framing-cart-details { min-width: 0; padding: 12px; }
.framing-cart-details h2 { margin: 0 0 8px; font-size: .95rem; overflow-wrap: anywhere; }
.framing-cart-print { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; border-top: 1px solid var(--line); padding: 8px 0; }
.framing-cart-print small { display: block; color: var(--muted); }
.framing-cart-grid.is-detailed .framing-cart-line { display: grid; grid-template-columns: clamp(72px, 16vw, 170px) minmax(0, 1fr); align-items: start; }
.framing-cart-empty { grid-column: 1 / -1; border: 1px dashed var(--line); border-radius: 14px; padding: 24px; text-align: center; }
#openCropFraming[hidden], .cart-framing-offer[hidden], .framing-cart [hidden], .framing-picker [hidden] { display: none; }
#framingCartStatus:empty, #framingTotal:empty { display: none; }

@media (max-width: 640px) {
    .framing-picker-layout { grid-template-columns: 1fr; gap: 12px; }
    .framing-preview img { width: min(100%, 260px); max-height: 165px; justify-self: center; }
    .framing-option { grid-template-columns: 62px minmax(0, 1fr); }
    .framing-option-media { width: 62px; height: 70px; }
    .framing-quantity { grid-column: 2; justify-self: start; }
    #framingCartPrice { margin-inline-start: 0; }
}
