/* Editor workspace. Invitation presentation lives in invitation.css. */
#draftSaveButton { border:0; border-bottom:1px solid #a9a599; background:none; border-radius:0; padding:1px 0; margin-top:3px; font-size:11px; line-height:1.3; color:#716c61; box-shadow:none; }
.draft-modal { position:fixed; inset:0; z-index:120; background:#17151460; display:grid; place-items:center; padding:16px; }
.draft-dialog { width:min(100%,420px); box-sizing:border-box; max-height:calc(100dvh - 32px); overflow:auto; padding:24px; background:#f7f6f2; color:#1a1a1a; border:1px solid #d9d7cf; }
.draft-dialog { position:relative; padding-top:32px; }
.draft-dialog-close { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:32px; min-height:32px !important; padding:0 !important; border:0 !important; background:transparent !important; color:#716c61 !important; font:400 25px/1 "Jost",sans-serif !important; }
.draft-dialog-close:hover { color:var(--studio-ink) !important; background:#eeece4 !important; }
.draft-dialog h2 { margin:0; font:400 25px/1.2 "Lora",serif; text-transform:none; letter-spacing:-.6px; }
.draft-dialog p { margin:14px 0; font:400 14px/1.5 "Jost",sans-serif; }
.draft-dialog label { display:block; font-size:12px; margin-bottom:6px; }
.draft-dialog [hidden] { display:none !important; }
.draft-dialog #draftEmailRow { margin-top:16px; }
.draft-dialog #draftEmailSend { margin-top:10px; }
.draft-dialog #draftEmailFields[hidden] + #draftEmailSend { margin-top:0; }
.draft-dialog input { width:100%; box-sizing:border-box; min-width:0; font-size:16px; padding:10px; border:1px solid #c8c5bb; border-radius:0; background:#fff; color:#1a1a1a; }
.draft-dialog button { min-height:40px; font-size:13px; padding:8px 12px; border:1px solid #c8c5bb; border-radius:0; background:#eeece4; color:#1a1a1a; box-shadow:none; }
#draftCopy { margin-top:10px; background:#1a1a1a; color:#f7f6f2; }
.draft-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
@media(max-width:760px) { #draftSaveButton { font-size:10px; margin-top:2px; } }
@media(min-width:761px) { .hero-photo-dialog { width:min(100%,392px); box-sizing:border-box; } }
.editor-studio { --studio-paper:#f7f6f2; --studio-ink:#1a1a1a; --studio-line:#d9d7cf; background:var(--studio-paper); color:var(--studio-ink); }
.editor-studio button, .editor-studio input, .editor-studio select, .editor-studio textarea { font-family:"Jost",sans-serif; }
.editor-studio button { cursor:pointer; }
.editor-studio button:disabled { cursor:default; opacity:.35; }
.editor-studio button:focus-visible, .editor-studio a:focus-visible { outline:2px solid #636a4f; outline-offset:3px; }
.editor-studio .live-editor-page { max-width:none; width:100%; margin:0; padding:0; }
.editor-studio .live-editor-section { padding:0; margin:0; max-width:none; width:100%; }
.studio-header { height:76px; padding:12px 32px; display:flex; align-items:center; gap:26px; border-bottom:1px solid var(--studio-line); background:var(--studio-paper); }
.studio-header .brand-logo-link { flex:none; margin:0; }
.studio-header .brand-logo { width:32px; height:auto; object-fit:contain; }
.studio-heading { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; align-self:stretch; border-left:1px solid var(--studio-line); padding-left:26px; }
.studio-heading h1 { font:400 23px/1.2 "Lora",serif; letter-spacing:-.6px; margin:0; }
.studio-header-actions { display:flex; gap:12px; align-items:center; margin-left:auto; }
.studio-header-actions button { box-sizing:border-box; height:42px; padding:0 6px; font-size:13px; line-height:1.2; font-weight:500; white-space:nowrap; border:0; background:transparent; border-radius:0; box-shadow:none; }
.studio-header-actions #studioGuestButton { width:96px; min-height:42px; padding:0 6px; border:1px solid #c8c5bb; background:#eeece4; color:var(--studio-ink); }
.studio-header-actions #studioGuestButton:hover { background:#e4e1d7; }
.studio-header-actions .studio-primary { width:106px; background:var(--studio-ink); color:var(--studio-paper); min-height:42px; display:flex; align-items:center; justify-content:center; }
.studio-header-actions #liveContinueButton { width:max-content; min-width:max-content; flex:none; padding-inline:12px; }
.studio-workspace { display:grid; grid-template-columns:minmax(0,1fr) 400px; height:calc(100vh - 76px); height:calc(100dvh - 76px); min-height:480px; }
.studio-stage { min-width:0; min-height:0; display:flex; flex-direction:column; padding:20px 32px 12px; background:#eae8e0; position:relative; }
.studio-eyebrow { margin:0; color:#77756d; font:500 9px/1.4 "Jost",sans-serif; letter-spacing:1.6px; }
.studio-eyebrow i { display:inline-block; vertical-align:middle; width:5px; height:5px; border-radius:50%; background:#747f60; margin:0 5px 2px; }
.editor-studio .editor-phone-wrap { width:min(100%,360px); max-width:100%; margin:0 auto; padding:0; flex:1; min-height:0; display:flex; }
.editor-studio .editor-phone-frame { width:100%; height:100%; min-height:0; aspect-ratio:auto; padding:4px; background:#f8f7f1; border:1px solid #c8c5bb; border-radius:20px; box-shadow:0 12px 36px #29251a0b; overflow:hidden; }
.editor-studio .editor-preview-content { width:100%; height:100%; min-height:0; border-radius:16px; overscroll-behavior-y:contain; overflow-y:auto; -webkit-overflow-scrolling:touch; touch-action:pan-y pinch-zoom; scrollbar-width:thin; scrollbar-color:#b7b2a8 transparent; }
.editor-studio .editor-preview-content::-webkit-scrollbar { display:block; width:3px; }
.editor-studio .editor-preview-content::-webkit-scrollbar-thumb { background:#b7b2a8; }
.studio-preview-foot { position:relative; display:flex; justify-content:center; align-items:center; min-height:24px; margin:4px 0 0; flex:none; }
.studio-preview-hint { text-align:center; margin:0; color:#807d71; font-size:10px; letter-spacing:.25px; }
.hero-photo-trigger { display:none; position:absolute; z-index:5; top:var(--hero-photo-trigger-y,8px); left:50%; transform:translate(-50%,-50%); min-height:32px; padding:7px 12px; border:1px solid #c8c5bb; border-radius:0; background:#eeece4; color:var(--studio-ink); box-shadow:none; font:500 12px/1.4 "Jost",sans-serif; white-space:nowrap; }
.hero-photo-trigger:not(.has-photo):hover { background:#e4e1d7; }
.is-editing .hero-photo-trigger { display:block; }
.editor-studio #editorLivePreview > .invitation-hero:not(.has-hero-photo) { overflow:visible; }
.hero-photo-trigger.has-photo { left:14px; top:24px; transform:none; width:30px; height:30px; min-height:0; padding:0; border-radius:50%; background:var(--studio-ink); border:0; color:var(--studio-paper); font-size:20px; }
.hero-photo-trigger.has-photo svg { display:block; width:16px; height:16px; margin:auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.hero-photo-status:empty { display:none; }
.hero-photo-status { position:fixed; z-index:110; left:12px; bottom:12px; max-width:calc(100% - 24px); margin:0; padding:10px 14px; border:1px solid var(--studio-line); background:var(--studio-paper); color:var(--studio-ink); font:400 13px/1.4 "Jost",sans-serif; }
.hero-photo-modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:12px; background:#17151460; backdrop-filter:blur(2px); }
.hero-photo-modal[hidden] { display:none; }
.hero-photo-dialog { width:min(100%,374px); max-height:calc(100dvh - 24px); overflow:auto; padding:20px; border:1px solid var(--studio-line); background:var(--studio-paper); }
.hero-photo-dialog h2 { margin:0; color:var(--studio-ink); font:400 24px/1.2 "Lora",serif; letter-spacing:-.6px; }
.hero-photo-dialog > p { margin:8px 0 14px; color:#737166; font:400 13px/1.4 "Jost",sans-serif; }
#heroPhotoStage { display:flex; justify-content:center; align-items:flex-start; overflow:hidden; max-height:45dvh; width:100%; touch-action:none; cursor:grab; border:1px solid var(--studio-line); user-select:none; -webkit-user-select:none; }
#heroPhotoStage * { user-select:none; -webkit-user-select:none; -webkit-user-drag:none; }
#heroPhotoStage .editor-preview-content { height:auto; overflow:hidden; border-radius:0; padding:0; }
#heroPhotoStage .invitation-hero { margin:0; }
.hero-photo-zoom { display:flex; align-items:center; gap:12px; margin:14px 0; }
.hero-photo-zoom input { flex:1; min-width:0; accent-color:var(--studio-ink); }
.hero-photo-tools, .hero-photo-actions { display:flex; justify-content:space-between; gap:12px; }
.hero-photo-tools button { border:0; border-bottom:1px solid #a9a599; background:none; padding:3px 0; color:#605d54; font-size:12px; }
.hero-photo-actions { margin-top:18px; }
.hero-photo-actions button { flex:1; min-height:42px; border:1px solid var(--studio-line); border-radius:0; background:transparent; color:var(--studio-ink); font-size:12px; }
.hero-photo-actions #heroPhotoApply { border-color:var(--studio-ink); background:var(--studio-ink); color:var(--studio-paper); }
.hero-photo-summary > .editor-preview-content { width:100%; max-width:260px; height:auto; max-height:330px; overflow:hidden; margin-inline:auto; border-radius:0; padding:0; }
#studioRestoreButton { padding:2px 0; border:0; border-bottom:1px solid #8a867c; border-radius:0; background:none; color:#5b584f; font-size:11px; font-weight:500; box-shadow:none; }
.studio-dock { display:flex; flex-direction:column; min-width:0; min-height:0; border-left:1px solid var(--studio-line); background:var(--studio-paper); }
.studio-dock-heading { padding:26px 24px 22px; display:flex; justify-content:space-between; align-items:center; }
.studio-dock-heading h2 { margin:5px 0 0; font:400 27px/1.2 "Lora",serif; letter-spacing:-.7px; }
.studio-panel { min-height:0; min-width:0; padding:22px 24px; flex:1; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; position:relative; }
#studioDesignPanel { overflow:hidden; display:flex; flex-direction:column; }
#studioDesignPanel .studio-design-nav { flex:none; }
#editorDesignPanel { flex:1; min-height:0; display:flex; align-items:center; }
#editorDesignControls { width:100%; }
.editor-studio [hidden] { display:none !important; }
.studio-design-nav { display:flex; gap:4px; margin:0 0 22px; }
.studio-design-nav button { flex:1; min-width:0; background:transparent; border:0; border-bottom:1px solid #d9d7cf; padding:9px 2px; color:#716c61; font-size:13px; font-weight:500; border-radius:0; }
.studio-design-nav button[aria-pressed="true"] { color:var(--studio-ink); font-weight:600; border-bottom-color:var(--studio-ink); }
.studio-choice-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.studio-choice-strip button { min-width:0; border:1px solid var(--studio-line); background:transparent; color:var(--studio-ink); box-shadow:none; border-radius:3px; padding:5px; text-align:center; }
.studio-choice-strip button[aria-pressed="true"] { border-color:var(--studio-ink); box-shadow:inset 0 0 0 1px var(--studio-ink); }
.studio-choice-strip button strong { display:block; font:400 12px/1.5 "Jost",sans-serif; padding:8px 0 4px; }
.studio-style-card .studio-mini-invitation { height:clamp(175px,25vh,205px); }
.studio-mini-invitation { color:var(--sample-ink); background:var(--sample-bg); display:flex; flex-direction:column; align-items:center; justify-content:center; height:166px; overflow:hidden; }
.studio-mini-invitation > small { font:500 5px/1 "Jost",sans-serif; letter-spacing:1px; margin-bottom:12px; }
.studio-mini-invitation > span { font-family:var(--sample-font); font-size:24px; line-height:1; font-weight:var(--sample-weight,500); max-width:100%; overflow-wrap:anywhere; }
.studio-mini-invitation em { display:block; font-size:13px; font-style:normal; margin:6px 0; }
.studio-mini-invitation i { width:24px; border-top:1px solid currentColor; opacity:.35; margin-top:14px; }
.studio-palette-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.studio-palette > span { height:58px; display:flex; justify-content:center; align-items:center; gap:0; }
.studio-palette b { width:56px; max-width:88%; height:37px; display:flex; align-items:center; justify-content:center; border:1px solid #7773; border-radius:2px; }
.studio-palette i { width:24px; height:24px; display:block; border-radius:50%; }
.studio-palette i + i { margin-left:-8px; }
.studio-custom-colors { margin:18px 0 0; }
.studio-custom-colors > button { border:0; background:none; padding:8px 0; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.studio-color-popover { position:absolute; z-index:20; left:24px; right:24px; bottom:24px; padding:14px; border:1px solid #c9c5ba; background:#fbfaf6; box-shadow:0 14px 40px #29251a2b; }
.studio-color-close { position:absolute; top:7px; right:8px; width:28px; height:28px; border:0; background:none; color:#4f4c43; font-size:20px; line-height:1; }
.studio-color-tabs { display:flex; gap:5px; padding-right:30px; margin-bottom:9px; }
.studio-color-tabs button { min-width:0; flex:1; display:flex; align-items:center; justify-content:center; gap:5px; padding:6px; border:1px solid var(--studio-line); background:none; color:var(--studio-ink); font-size:10px; }
.studio-color-tabs button[aria-pressed="true"] { border-color:var(--studio-ink); box-shadow:inset 0 0 0 1px var(--studio-ink); }
.studio-color-tabs i { width:17px; height:17px; flex:none; border-radius:50%; border:1px solid #7775; }
.studio-color-picker { width:100%; display:grid; grid-template-columns:1fr auto; gap:9px 12px; }
.studio-color-spectrum { grid-column:1/-1; position:relative; height:124px; cursor:crosshair; touch-action:none; background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,hsl(var(--picker-hue) 100% 50%)); }
.studio-color-spectrum:focus-visible { outline:2px solid #636a4f; outline-offset:2px; }
.studio-color-spectrum i { position:absolute; width:15px; height:15px; border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 1px #1119,0 1px 4px #0008; transform:translate(-50%,-50%); pointer-events:none; }
.studio-color-hue { display:flex; align-items:center; gap:8px; color:#716c61; font-size:10px; }
.studio-color-hue input { min-width:0; width:100%; height:20px; padding:0; border:0; accent-color:#29291f; cursor:pointer; }
.studio-color-picker output { align-self:center; color:#716c61; font:500 10px/1 "Jost",sans-serif; letter-spacing:.3px; }
.studio-rgb-fields { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-start; gap:7px; min-width:0; }
.studio-rgb-fields > span { color:#716c61; font-size:11px; margin-right:3px; }
.studio-rgb-fields label { display:flex; align-items:center; gap:3px; color:#716c61; font-size:10px; }
.studio-rgb-fields input { width:48px; min-width:0; height:30px; padding:4px; border:1px solid var(--studio-line); border-radius:0; background:#fff; color:var(--studio-ink); font-size:16px; text-align:center; box-shadow:none; appearance:textfield; }
.studio-rgb-fields input::-webkit-inner-spin-button, .studio-rgb-fields input::-webkit-outer-spin-button { appearance:none; margin:0; }
.studio-font-card { padding:16px 6px 6px !important; }
.studio-font-card > span { display:block; min-height:82px; font-size:25px; line-height:.92; overflow:hidden; overflow-wrap:anywhere; }
.studio-font-card em { display:block; font-size:13px; line-height:1; font-style:normal; margin:4px 0; }
.studio-font-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.studio-size-control { display:grid; grid-template-columns:60px minmax(0,1fr); align-items:center; gap:12px; margin-top:20px; }
.studio-size-control > label { color:#8a8375; font-size:11px; }
.studio-size-track { display:flex; align-items:center; gap:10px; min-width:0; }
.studio-size-track > span { color:#777367; font-size:16px; line-height:1; white-space:nowrap; }
.studio-size-track input { flex:1; min-width:0; width:100%; height:28px; margin:0; accent-color:#29291f; cursor:pointer; }
.studio-size-track input:focus-visible { outline:2px solid #636a4f; outline-offset:2px; }
@media(min-width:761px) {
  #editorDesignPanel:has(.is-type) { align-items:stretch; overflow:hidden; }
  #editorDesignControls.is-type { min-height:0; display:flex; flex-direction:column; justify-content:center; }
  .is-type .studio-font-strip { min-height:0; grid-auto-rows:minmax(0,1fr); gap:8px; }
  .is-type .studio-font-card { min-height:0; display:flex; flex-direction:column; padding:8px 5px 4px !important; }
  .is-type .studio-font-card > span { flex:1; min-height:0; font-size:clamp(16px,3dvh,24px); line-height:.92; }
  .is-type .studio-font-card em { font-size:11px; margin:3px 0; }
  .is-type .studio-font-card strong { flex:none; font-size:11px; padding:5px 0 2px; }
  .is-type .studio-size-control { flex:none; margin-top:12px; }
}
.studio-segment-group { margin-top:22px; }
.studio-segment-group > span { display:block; font-size:11px; color:#8a8375; margin-bottom:8px; }
.studio-segments { display:flex; border:1px solid var(--studio-line); }
.studio-segments button { flex:1; min-height:40px; min-width:0; display:flex; align-items:center; justify-content:center; gap:7px; padding:8px 5px; border:0; background:none; color:#7b766a; font-size:11px; border-radius:0; }
.studio-segments button + button { border-left:1px solid var(--studio-line); }
.studio-segments button[aria-pressed="true"] { background:#e6e7dc; color:var(--studio-ink); box-shadow:inset 0 -2px 0 #687154; }
.studio-corner { width:15px; height:15px; border:1px solid currentColor; display:inline-block; }
.studio-corner.soft { border-radius:4px; }.studio-corner.round { border-radius:8px; }
#editorDesignControls.is-composition { height:100%; display:flex; flex-direction:column; justify-content:center; gap:22px; }
#editorDesignControls.is-composition .studio-segment-group { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:12px; margin:0; }
#editorDesignControls.is-composition .studio-segment-group > span { margin:0; width:auto; }
.studio-design-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:22px; }
.studio-design-footer > span { font-size:10px; color:#8b867a; line-height:1.4; }
.studio-design-footer .has-warning { color:#9b422e; }
.studio-design-footer > button { border:0; background:none; font-size:11px; color:#49483e; padding:7px 0; white-space:nowrap; }
.studio-panel-intro { font-size:12px; color:#868071; margin:0 0 12px; }
.studio-content-row, .studio-section-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border:0; border-bottom:1px solid var(--studio-line); background:none; text-align:left; border-radius:0; color:var(--studio-ink); }
.studio-content-row strong, .studio-section-row strong { display:block; font-size:14px; font-weight:400; line-height:1.4; }
.studio-content-row small, .studio-section-row small { display:block; color:#898274; font-size:10px; line-height:1.5; margin-top:3px; }
.studio-section-row > div { display:flex; flex:none; gap:3px; }
.studio-section-row button { width:32px; height:36px; border:1px solid var(--studio-line); background:none; color:#514c42; font-size:18px; border-radius:0; }
.studio-sensitive-note { color:#938c7e; font-size:10px; line-height:1.6; margin-top:22px; }
.editor-studio .studio-dock .compact-panel { padding:14px 0; margin:14px 0 0; border:0; box-shadow:none; background:transparent; border-radius:0; }
.editor-studio .studio-dock .compact-panel h3 { font:400 16px "Lora",serif; margin:0 0 10px; }
.editor-studio .studio-dock .section-chip-grid { gap:6px; }
.editor-studio .studio-dock .editor-block { border:0; border-block:1px solid var(--studio-line); box-shadow:none; border-radius:0; background:none; margin:20px 0 0; }
.editor-studio .studio-dock .editor-block summary { padding:16px 0; border:0; }
.editor-studio .studio-dock .editor-block h2 { font:400 16px "Lora",serif; letter-spacing:-.3px; }
.editor-studio .publish-badge { background:#e6e7dc; color:#575d46; font:500 9px "Jost",sans-serif; padding:4px 6px; border-radius:0; }
.editor-studio .publish-plan-card { font-size:12px; box-shadow:none; border-radius:0; padding:12px 0; background:none; }
.studio-design-unavailable { min-height:130px; display:flex; flex-direction:column; justify-content:center; }
.studio-design-unavailable p { font-size:13px; color:#817a6c; line-height:1.5; }
.studio-design-unavailable button { align-self:flex-start; border:0; background:none; border-bottom:1px solid; font-size:12px; padding:4px 0; }
.studio-sr-only { position:absolute; clip-path:inset(50%); width:1px; height:1px; overflow:hidden; white-space:nowrap; }
#studioNotices:empty { display:none; }
#studioNotices .date-help { max-width:520px; margin:0 auto 12px; background:#fff8e9; border:1px solid #d8c9ac; padding:10px 14px; color:#7b4b2c; font-size:12px; }
.studio-clean .studio-dock, .studio-clean #liveContinueButton { display:none; }
.studio-clean .studio-workspace { grid-template-columns:1fr; }
.studio-review .studio-workspace, .studio-review .studio-header-actions { display:none; }
.editor-studio .final-summary-section { max-width:720px; padding:40px 24px; margin:auto; background:transparent; border:0; box-shadow:none; }
.editor-studio .final-summary-heading { margin-bottom:24px; text-align:left; }
.editor-studio .final-summary-heading h2 { margin:0; font:400 clamp(28px,4vw,40px)/1.2 "Lora",serif; letter-spacing:-1px; }
.editor-studio .final-summary-heading p { margin:8px 0 0; color:#716c61; font:400 14px/1.5 "Jost",sans-serif; }
.studio-review .studio-header { display:none; }
.editor-studio .final-summary-card, .editor-studio .final-summary-trust { border-radius:0; box-shadow:none; border:0; background:transparent; padding:0; }
.editor-studio .final-summary-card h3 { margin:0; font:400 20px/1.25 "Lora",serif; }
.editor-studio .receipt-printer { position:relative; width:min(100%,410px); justify-self:center; margin:0 auto 12px; padding-top:7px; }
.editor-studio .receipt-feed { clip-path:inset(0 -32px -32px -32px); }
.editor-studio .receipt-printer::before { position:absolute; z-index:3; top:0; left:0; width:100%; height:7px; content:""; border-radius:3px; background:linear-gradient(#33332f,#77766f); box-shadow:0 1px 2px #1a1a1a35; }
.editor-studio .final-summary-receipt { position:relative; z-index:1; width:100%; box-sizing:border-box; margin:0; padding:25px 26px !important; overflow:visible; background:#fffefa !important; color:#34342f; box-shadow:0 10px 28px #28251a18 !important; font-family:ui-monospace,"SFMono-Regular",Menlo,monospace; font-variant-numeric:tabular-nums; letter-spacing:.025em; animation:receipt-print 3.8s linear both; }
.editor-studio .final-summary-receipt::before, .editor-studio .final-summary-receipt::after { position:absolute; left:0; right:0; height:8px; content:""; pointer-events:none; background:radial-gradient(circle at 8px 0, var(--studio-paper) 4px, transparent 4.5px) 0 0/16px 8px repeat-x; }
.editor-studio .final-summary-receipt::before { top:-1px; }
.editor-studio .final-summary-receipt::after { bottom:-1px; transform:rotate(180deg); }
.editor-studio .receipt-brand { margin:0; color:#34342f; font:600 17px/1.3 ui-monospace,"SFMono-Regular",Menlo,monospace; letter-spacing:.18em; text-align:center; }
.editor-studio .receipt-title { margin:2px 0 0; color:#66645e; font:400 10px/1.5 ui-monospace,"SFMono-Regular",Menlo,monospace; letter-spacing:.12em; text-align:center; text-transform:uppercase; }
.editor-studio .receipt-divider { overflow:hidden; margin:13px 0; color:#77756d; font:400 10px/1 ui-monospace,"SFMono-Regular",Menlo,monospace; letter-spacing:.11em; text-align:center; white-space:nowrap; }
.editor-studio .receipt-item, .editor-studio .receipt-total-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; color:#4f4c43; font:400 12px/1.5 ui-monospace,"SFMono-Regular",Menlo,monospace; }
.editor-studio .receipt-item span { max-width:74%; }
.editor-studio .receipt-item strong { flex:none; color:#34342f; font-weight:500; }
.editor-studio .receipt-total { font-size:15px; font-weight:600; }
.editor-studio .receipt-total strong:last-child { font-size:19px; font-weight:700; }
.editor-studio .receipt-footer { margin-top:13px; }
.editor-studio .receipt-footer p { margin:0; color:#5f5d56; font:400 11px/1.5 ui-monospace,"SFMono-Regular",Menlo,monospace; text-align:left; }
.editor-studio .receipt-footer p + p { margin-top:7px; }
.editor-studio .receipt-footer strong { color:#34342f; font-weight:600; }
@keyframes receipt-print {
  0%, 8% { transform:translateY(-100%); }
  13%, 19% { transform:translateY(-92%); }
  23%, 29% { transform:translateY(-84%); }
  34%, 42% { transform:translateY(-76%); }
  46%, 52% { transform:translateY(-68%); }
  58%, 65% { transform:translateY(-60%); }
  69%, 75% { transform:translateY(-52%); }
  79%, 84% { transform:translateY(-44%); }
  88% { transform:translateY(-36%); }
  91% { transform:translateY(-28%); }
  94% { transform:translateY(-20%); }
  96% { transform:translateY(-12%); }
  98% { transform:translateY(-5%); }
  100% { transform:translateY(0); }
}
.editor-studio .final-summary-offer { padding-bottom:20px; border-bottom:1px solid var(--studio-line); }
.editor-studio .final-summary-offer p { max-width:620px; margin:0; font-size:14px; line-height:1.55; }
.editor-studio .final-summary-offer p + p { margin-top:6px; }
.editor-studio .final-summary-delivery { max-width:460px; margin-top:16px; }
.editor-studio .final-summary-delivery .editor-field { font-size:12px; font-weight:400; }
.editor-studio .final-summary-delivery input { border-radius:2px; box-shadow:none; }
.editor-studio .final-summary-trust { margin:18px 0 0; padding-top:14px; border-top:1px solid var(--studio-line); }
.editor-studio .final-summary-trust p { max-width:620px; font-size:12px; line-height:1.5; font-weight:400; text-align:left; }
.editor-studio .legal-consent { margin-top:18px; padding:0; border:0; border-radius:0; background:transparent; color:#716c61; font-weight:400; }
.editor-studio .legal-consent label { gap:8px; min-height:44px; padding-block:6px; cursor:pointer; }
.editor-studio .legal-consent input { width:16px; height:16px; accent-color:#77756d; }
.editor-studio .legal-consent a { color:inherit; font-weight:400; text-decoration:underline; text-decoration-color:#aaa69b; text-underline-offset:2px; }
.editor-studio .legal-consent a:hover { color:var(--studio-ink); text-decoration-color:currentColor; }
.editor-studio .final-summary-actions button { border-radius:0; box-shadow:none; font-weight:500; }
.editor-studio .checkout-handoff-note { max-width:410px; margin:12px auto 0; color:#716c61; font:400 12px/1.5 "Jost",sans-serif; text-align:center; }
.editor-studio .edit-sheet { width:min(480px,calc(100% - 32px)); left:auto; right:20px; bottom:20px; transform:translateY(calc(100% + 40px)); border:1px solid var(--studio-line); border-radius:5px; background:var(--studio-paper); box-shadow:0 16px 65px #28251c22; padding:24px; max-height:calc(100dvh - 100px); transition:transform 180ms ease; }
.editor-studio .edit-sheet.is-visible { transform:translateY(0); }
.editor-studio .edit-sheet h3 { font:400 25px/1.2 "Lora",serif; letter-spacing:-.6px; }
.editor-studio .edit-sheet-header > p { color:#837b6c; font-size:12px; }
.editor-studio .edit-sheet-body { overflow-y:auto; overscroll-behavior:contain; background:none; padding:0 2px; }
.editor-studio .edit-sheet .editor-field { font-size:12px; font-weight:400; }
.editor-studio .edit-sheet :is(input:not([type="hidden"]),textarea,select) { border-radius:2px; font-size:16px; background:#fcfbf7; border:1px solid var(--studio-line); box-shadow:none; }
.editor-studio .edit-sheet-actions { border-top:1px solid var(--studio-line); padding-top:14px; }
.editor-studio .edit-sheet-actions button { border-radius:0; font-size:12px; font-weight:500; min-height:44px; }
.editor-studio .editor-tutorial-backdrop { background:#17151438; backdrop-filter:blur(2px); }
.editor-studio .editor-tutorial-dialog { width:min(100%,330px); padding:22px; border:1px solid var(--studio-line); border-radius:0; background:var(--studio-paper); color:var(--studio-ink); font-family:"Jost",sans-serif; box-shadow:0 12px 36px #29251a14; }
.editor-studio .editor-tutorial-modal.is-opening .editor-tutorial-backdrop { animation:editor-tutorial-backdrop-in 220ms ease-out both; }
.editor-studio .editor-tutorial-modal.is-opening .editor-tutorial-dialog { animation:editor-tutorial-dialog-in 320ms cubic-bezier(.2,.75,.25,1) both; }
@keyframes editor-tutorial-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes editor-tutorial-dialog-in { from { opacity:0; scale:.965; } to { opacity:1; scale:1; } }
.editor-studio .editor-tutorial-dialog h2 { color:var(--studio-ink); font:400 23px/1.2 "Lora",serif; letter-spacing:-.6px; text-transform:none; }
.editor-studio .editor-tutorial-header { padding:0 20px 0 0; text-align:left; }
.editor-studio .editor-tutorial-intro { margin:10px 0 0; color:#5e5a50; font:400 13px/1.45 "Jost",sans-serif; }
.editor-studio .editor-tutorial-close { top:9px; right:9px; width:28px; height:28px; background:transparent; color:#737166; box-shadow:none; }
.editor-studio .editor-tutorial-list { gap:4px; margin-top:12px; }
.editor-studio .editor-tutorial-list article { grid-template-columns:32px minmax(0,1fr); gap:9px; padding:5px 4px; border:0; border-radius:0; background:none; }
.editor-studio .editor-tutorial-icon { width:32px; height:32px; background:var(--studio-ink); color:var(--studio-paper); }
.editor-studio .editor-tutorial-icon svg { width:16px; height:16px; }
.editor-studio .editor-tutorial-list strong { margin:0; color:var(--studio-ink); font-size:14px; line-height:1.3; font-weight:400; }
.editor-studio .editor-tutorial-list p { margin-top:3px; color:#737166; font-size:12px; }
.editor-studio .editor-tutorial-actions { margin-top:16px; }
.editor-studio .editor-tutorial-dialog .button { min-height:42px; padding:10px 16px; border:1px solid var(--studio-ink); border-radius:0; background:var(--studio-ink); color:var(--studio-paper); box-shadow:none; font:500 12px/1.4 "Jost",sans-serif; letter-spacing:0; text-transform:none; }
.editor-studio .editor-tutorial-dialog .button:hover { background:#36352f; border-color:#36352f; transform:none; }
.studio-intro-motion .studio-dock { animation:studio-dock-enter 350ms ease-out both; }
.studio-intro-motion .studio-stage { animation:studio-preview-enter 450ms ease-out 1100ms both; }
@keyframes studio-dock-enter { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes studio-preview-enter { from { opacity:0; } to { opacity:1; } }
html.editor-init-pending #liveEditorPage { visibility:hidden; }
@media(min-width:761px) { .editor-studio .editor-tutorial-dialog { transform:translateX(-200px); } }
@media(max-width:760px) {
  .editor-studio .final-summary-section { padding:28px 18px; }
  .editor-studio .final-summary-receipt { padding:23px 18px !important; }
  .studio-header { height:60px; padding:9px 14px; gap:12px; }
  .studio-header .brand-logo { width:32px; height:auto; }
  .studio-heading { padding-left:12px; }
  .studio-heading h1 { font-size:14px; letter-spacing:-.3px; }
  .studio-header-actions { gap:6px; }
  .studio-header-actions button { height:36px; padding:0 3px; font-size:11px; min-height:36px; }
  .studio-header-actions #studioGuestButton { width:67.7px; min-height:36px; padding:0 3px; }
  .studio-clean .studio-header-actions #studioGuestButton { width:auto; min-width:max-content; padding-inline:8px; }
  .studio-header-actions .studio-primary { width:69.6px; padding:0 3px; min-height:36px; }
  .studio-header-actions #liveContinueButton { width:max-content; min-width:max-content; padding-inline:8px; }
  .studio-workspace { height:calc(100vh - 60px); height:calc(100dvh - 60px); min-height:0; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) min(222px,42dvh); }
  .studio-stage { padding:9px 20px 7px; overflow:hidden; }
  .editor-studio .editor-phone-wrap { width:min(100%,330px); }
  .editor-studio .editor-phone-frame { border-radius:10px; padding:2px; box-shadow:0 6px 20px #29251a0a; }
  .editor-studio .editor-preview-content { border-radius:8px; }
  .studio-preview-hint { font-size:10px; }
  .studio-dock { border-left:0; border-top:2px solid #b2ad9f; display:grid; grid-template-rows:minmax(0,1fr); box-shadow:0 -7px 24px #29251a12; }
  .studio-dock-heading { display:none; }
  .studio-panel { grid-row:1; grid-column:1; padding:8px 16px max(8px,env(safe-area-inset-bottom)); }
  .studio-design-nav { margin-bottom:7px; gap:8px; }
  .studio-design-nav button { padding:6px 0; font-size:12px; min-height:32px; }
  .studio-choice-strip { display:flex; overflow-x:auto; overflow-y:hidden; gap:8px; padding:1px 1px 5px; scrollbar-width:none; overscroll-behavior-x:contain; }
  .studio-choice-strip::-webkit-scrollbar { display:none; }
  .studio-style-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; overflow:hidden; }
  .studio-style-card { width:100%; padding:3px !important; }
  .studio-style-card .studio-mini-invitation { height:min(135px,22.5dvh); }
  .studio-mini-invitation > small { font-size:4px; letter-spacing:.5px; margin-bottom:8px; }
  .studio-mini-invitation > span { font-size:clamp(15px,4.5vw,19px); }
  .studio-mini-invitation em { font-size:9px; margin:4px 0; }
  .studio-mini-invitation i { width:15px; margin-top:7px; }
  .studio-choice-strip button strong { font-size:10px; padding:4px 0 1px; }
  .studio-palette-strip { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; overflow:visible; padding:1px; }
  .studio-palette { width:auto; padding:3px !important; }
  .studio-palette > span { height:41px; }
  .studio-palette b { width:88%; height:28px; }
  .studio-palette i { height:20px; width:20px; }
  .studio-choice-strip .studio-font-card { flex:0 0 auto; width:max-content; min-width:96px; max-width:min(150px,44vw); padding:8px 5px 4px !important; }
  .studio-font-card > span { min-height:55px; font-size:20px; line-height:.9; white-space:nowrap; }
  .studio-font-card em { font-size:11px; margin:2px 0; }
  .studio-size-control { grid-template-columns:52px minmax(0,1fr); gap:9px; margin-top:12px; }
  .studio-size-track { gap:7px; }
  .studio-size-track > span { font-size:16px; }
  .studio-custom-colors { margin:5px 0 0; }
  .studio-custom-colors > button { font-size:12px; }
  .studio-color-popover { top:8px; left:8px; right:8px; bottom:8px; padding:10px; display:flex; flex-direction:column; }
  .studio-color-close { top:4px; right:4px; }
  .studio-color-tabs button { font-size:10px; padding:5px 2px; }
  .studio-color-tabs i { width:15px; height:15px; }
  .studio-color-picker { flex:1; min-height:0; grid-template-rows:minmax(0,1fr) auto auto; gap:5px 9px; }
  .studio-color-spectrum { height:auto; min-height:0; }
  .studio-color-hue, .studio-color-picker output { font-size:10px; }
  .studio-segment-group { display:flex; align-items:center; gap:9px; margin-top:8px; }
  .studio-segment-group > span { margin:0; width:52px; font-size:10px; flex:none; }
  .studio-segments { flex:1; }
  .studio-segments button { min-height:32px; padding:5px 3px; font-size:10px; gap:5px; }
  .studio-corner { width:12px; height:12px; }
  #editorDesignControls.is-composition { gap:20px; }
  #editorDesignControls.is-composition .studio-segment-group { grid-template-columns:52px minmax(0,1fr); gap:9px; }
  .studio-design-unavailable { min-height:118px; }
  .studio-design-unavailable p { font-size:12px; }
  .studio-content-row, .studio-section-row { padding:10px 0; }
  .studio-section-row button { min-width:34px; min-height:36px; }
  .studio-clean .studio-workspace { grid-template-rows:minmax(0,1fr); }
  #studioNotices .date-help { font-size:10px; padding:7px 9px; margin-bottom:6px; }
  .editor-studio .edit-sheet { left:8px; right:8px; width:auto; bottom:8px; max-height:calc(100dvh - 100px); padding:18px; padding-bottom:max(18px,env(safe-area-inset-bottom)); }
}
@media(min-width:761px) { .studio-clean .studio-header-actions #studioGuestButton { width:auto; min-width:max-content; padding-inline:14px; } }
.editor-studio.studio-clean .studio-header-actions #studioGuestButton { flex:none; width:max-content; min-width:max-content; padding-inline:8px; }
@media(max-width:760px) and (min-height:560px) { .editor-studio .editor-tutorial-dialog { transform:translateY(-75px); } }
@media(prefers-reduced-motion:reduce) { .editor-studio .editor-tutorial-modal.is-opening .editor-tutorial-backdrop, .editor-studio .editor-tutorial-modal.is-opening .editor-tutorial-dialog { animation:none; } }
@media(max-width:359px) {
  .editor-studio .editor-tutorial-dialog h2 { font-size:18px; }
  .studio-heading h1 { font-size:12px; }.studio-header { gap:7px; padding-inline:9px; }.studio-heading { padding-left:7px; }
  .studio-header-actions button { font-size:10px; }.studio-header-actions #studioGuestButton { width:62.53px; }.studio-header-actions .studio-primary { width:55.44px; }.studio-header-actions #liveContinueButton { width:max-content; min-width:max-content; padding-inline:6px; }
  .studio-panel { padding-inline:12px; }
  .studio-design-nav { gap:2px; }
  .studio-color-tabs i { display:none; }
  .studio-color-tabs { gap:3px; }
}
@media(prefers-reduced-motion:reduce) { .editor-studio *, .editor-studio *::before, .editor-studio *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }

/* Keep the editing surface anchored while its invitation and tool panels scroll. */
.editor-studio:not(.studio-review) { height:100dvh; overflow:hidden; }
.editor-studio:not(.studio-review) .live-editor-page { position:fixed; inset:0; height:100dvh; overflow:clip; }
.editor-studio #editorLivePreview .invitation-hero { padding-top:42px; }
@media(max-width:760px) { .studio-segments button { min-height:40px; } }

.editor-studio #sheetWeddingDateCalendar, .editor-studio [data-publish-calendar] { border-radius:0; background:transparent; box-shadow:none; border:1px solid var(--studio-line); }
.editor-studio .calendar-day { border-radius:0; font-weight:400; background:transparent; }
.editor-studio .calendar-day.is-selected { background:#29291f; color:#f7f6f2; }
.editor-studio .calendar-header button { border-radius:0; background:transparent; }
.editor-studio .calendar-header strong { font-weight:500; }
.editor-studio .studio-dock .section-chip { border:0; border-bottom:1px solid var(--studio-line); border-radius:0; background:none; padding:10px 0; }
.editor-studio .studio-dock .section-chip strong { font-weight:400; }
.editor-studio .studio-dock .section-chip button { border-radius:0; box-shadow:none; background:#e6e7dc; color:#303328; font-weight:400; }
.editor-studio .final-summary-section .editor-field input { border-radius:0; box-shadow:none; font-size:16px; background:transparent; border:1px solid var(--studio-line); }
.editor-studio .final-summary-price { font-family:"Lora",serif; font-weight:400; }
.studio-help-inline { border:0; background:none; padding:8px 0; font-size:11px; text-decoration:underline; text-underline-offset:3px; color:#746c5e; }
.editor-studio .editor-preview-content.is-editing .editable-preview-block:not(.is-edit-sheet-target):not(.has-final-data-error) { outline:none; }
.editor-studio .editor-preview-content.is-editing .section-controls-floating { display:flex; align-items:center; height:auto; left:auto; width:max-content; max-width:calc(100% - 20px); }
.editor-studio .editor-preview-content .section-controls-floating button { display:grid; place-items:center; flex:none; width:29px; height:29px; min-width:29px; min-height:29px; padding:0; border:0; border-radius:50%; background:#171717; color:#fff; }
.editor-studio .editor-preview-content .section-controls-floating button svg { display:block; width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.editor-studio .editor-preview-content .section-controls-floating button:disabled { opacity:.28; }
.editor-studio .editor-preview-content .section-controls-floating button:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.editor-studio .editor-preview-content .invitation-hero.has-hero-photo > .section-controls-floating { top:calc(56.3cqw + 28px); right:8px; }
.editor-studio .editor-preview-content .studio-section-hide-pop { animation:studio-section-hide-pop 180ms cubic-bezier(.4,0,.7,.2) both; }
@keyframes studio-section-hide-pop { to { opacity:0; transform:scale(.94); } }
.editor-studio .editor-preview-content .studio-section-show-pop { animation:studio-section-show-pop 220ms cubic-bezier(.2,.75,.25,1) both; }
@keyframes studio-section-show-pop { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
.editor-studio #studioSectionsPanel { padding-top:22px; }
.editor-studio #hiddenSectionsList { display:grid; gap:0; }
.editor-studio .studio-sections-empty { margin:0; padding:12px 0; color:#706d63; font-size:13px; line-height:1.5; }
.editor-studio .studio-hidden-row { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:56px; padding:8px 0; border-bottom:1px solid var(--studio-line); }
.editor-studio .studio-hidden-row strong { font-size:14px; font-weight:500; }
.editor-studio .studio-hidden-row button { flex:none; min-height:36px; padding:7px 12px; border:1px solid var(--studio-line); border-radius:0; background:transparent; color:var(--studio-ink); font-size:12px; }

@media(min-width:761px) {
  .editor-studio.studio-review .final-summary-grid { grid-template-columns:minmax(0,1fr); justify-items:center; }
  .editor-studio.studio-review .receipt-printer.is-wide { grid-column:1; justify-self:center; }
  .editor-studio.studio-review .final-summary-delivery.is-wide { grid-column:1; width:min(100%,410px); max-width:410px; margin:0 auto; }
  .editor-studio.studio-review .legal-consent { width:min(100%,410px); margin:18px auto 0; }
  .editor-studio.studio-review .final-summary-delivery .editor-field { text-align:left; }
  .editor-studio.studio-review .final-summary-delivery input { text-align:left; }
  .editor-studio.studio-review .final-summary-actions { justify-content:center; align-items:center; }
}

/* Quiet press feedback: a small visual response, never a layout shift. */
.editor-studio :is(
  .studio-header-actions button,
  .studio-design-nav button,
  .studio-choice-strip button,
  .studio-custom-colors > button,
  .studio-color-tabs button,
  .studio-color-close,
  .studio-segments button,
  .studio-section-row button,
  .studio-hidden-row button,
  .section-controls-floating button,
  .hero-photo-actions button,
  .hero-photo-tools button,
  .draft-dialog button,
  .edit-sheet-actions button,
  .editor-tutorial-dialog button
):not(:disabled) {
  transform-origin:center;
  transition:transform 140ms cubic-bezier(.2,.75,.25,1), background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease, opacity 140ms ease;
  -webkit-tap-highlight-color:transparent;
}

.editor-studio :is(
  .studio-header-actions button,
  .studio-design-nav button,
  .studio-choice-strip button,
  .studio-custom-colors > button,
  .studio-color-tabs button,
  .studio-color-close,
  .studio-segments button,
  .studio-section-row button,
  .studio-hidden-row button,
  .section-controls-floating button,
  .hero-photo-actions button,
  .hero-photo-tools button,
  .draft-dialog button,
  .edit-sheet-actions button,
  .editor-tutorial-dialog button
):not(:disabled):active {
  transform:scale(.975);
}

.editor-studio #draftSaveButton:active,
.editor-studio .studio-design-footer > button:active,
.editor-studio .studio-help-inline:active {
  opacity:.68;
}

.editor-studio .hero-photo-trigger:not(:disabled) {
  transition:filter 140ms ease, background-color 140ms ease, border-color 140ms ease;
  -webkit-tap-highlight-color:transparent;
}

.editor-studio .hero-photo-trigger:active { filter:brightness(.9); }

.editor-studio :is(.studio-size-track input, .studio-color-hue input, .hero-photo-zoom input)::-webkit-slider-thumb {
  transition:transform 120ms ease;
}

.editor-studio :is(.studio-size-track input, .studio-color-hue input, .hero-photo-zoom input):active::-webkit-slider-thumb {
  transform:scale(1.14);
}

.editor-studio :is(.studio-size-track input, .studio-color-hue input, .hero-photo-zoom input)::-moz-range-thumb {
  transition:transform 120ms ease;
}

.editor-studio :is(.studio-size-track input, .studio-color-hue input, .hero-photo-zoom input):active::-moz-range-thumb {
  transform:scale(1.14);
}

.editor-studio .studio-color-spectrum i { transition:transform 120ms ease; }
.editor-studio .studio-color-spectrum:active i { transform:translate(-50%,-50%) scale(1.16); }

@media (hover:hover) and (pointer:fine) {
  .editor-studio :is(
    .studio-header-actions button,
    .studio-design-nav button,
    .studio-choice-strip button,
    .studio-color-tabs button,
    .studio-segments button,
    .section-controls-floating button,
    .hero-photo-actions button
  ):not(:disabled):active { transform:scale(.99); }
}
