.wedding-admin-preview .ladi-headline[data-wedding-editable],
.wedding-admin-preview .ladi-paragraph[data-wedding-editable],
.wedding-admin-preview .text-block-css[data-wedding-editable],
.wedding-admin-preview .button-text[data-wedding-editable] { outline: 1px dashed rgba(156,92,55,.65); outline-offset: 3px; cursor: text; }
.wedding-admin-preview [contenteditable="true"] { -webkit-user-select:text !important; user-select:text !important; caret-color:auto !important; }
.wedding-admin-preview .ladi-animation-hidden { visibility:visible !important; opacity:1 !important; }
.wedding-admin-preview .ladi-headline[data-wedding-editable]:hover,
.wedding-admin-preview .ladi-paragraph[data-wedding-editable]:hover,
.wedding-admin-preview .text-block-css[data-wedding-editable]:hover,
.wedding-admin-preview .button-text[data-wedding-editable]:hover,
.wedding-admin-preview [contenteditable="true"]:focus { outline: 2px solid #a76743 !important; background: rgba(255,250,238,.24); }
.wedding-admin-preview .ladi-image[data-wedding-editable] { cursor: pointer; outline: 1px dashed rgba(58,112,121,.68); outline-offset: 3px; }
.wedding-admin-preview .ladi-image[data-wedding-editable]:hover { outline: 3px solid #3a7079; }
.wedding-admin-preview .image-block-css[data-wedding-editable] { cursor: pointer; outline: 1px dashed rgba(58,112,121,.68); outline-offset: 3px; }
.wedding-admin-preview .image-block-css[data-wedding-editable]:hover { outline: 3px solid #3a7079; }
.wedding-admin-preview [data-wedding-background-editable="1"] { pointer-events:auto !important; cursor:pointer; }
.wedding-admin-preview [data-wedding-background-editable="1"]:hover { box-shadow:inset 0 0 0 3px rgba(42,119,160,.78) !important; }
.wedding-background-edit-trigger { position:absolute !important; z-index:9000000055 !important; top:7px !important; left:7px !important; width:auto !important; height:auto !important; margin:0 !important; border:1px solid rgba(255,255,255,.82) !important; border-radius:999px !important; padding:5px 9px !important; background:rgba(35,91,117,.88) !important; color:#fff !important; font:700 11px/1.15 Arial,sans-serif !important; letter-spacing:0 !important; text-transform:none !important; box-shadow:0 3px 10px rgba(0,0,0,.2) !important; cursor:pointer !important; pointer-events:auto !important; }
.wedding-background-edit-trigger:hover { background:#235b75 !important; transform:none !important; }
.wedding-section-hidden { display:none !important; }
.wedding-section-controls { position:absolute !important; z-index:9000000057 !important; top:7px !important; right:7px !important; display:flex !important; align-items:center !important; gap:4px !important; width:auto !important; height:auto !important; margin:0 !important; padding:4px !important; border:1px solid rgba(255,255,255,.8) !important; border-radius:10px !important; background:rgba(35,53,61,.88) !important; box-shadow:0 3px 12px rgba(0,0,0,.24) !important; pointer-events:auto !important; }
.wedding-section-controls button { position:static !important; width:auto !important; min-width:29px !important; height:27px !important; margin:0 !important; border:0 !important; border-radius:7px !important; padding:0 8px !important; background:rgba(255,255,255,.94) !important; color:#263b42 !important; font:700 12px/27px Arial,sans-serif !important; letter-spacing:0 !important; text-transform:none !important; box-shadow:none !important; cursor:pointer !important; pointer-events:auto !important; transform:none !important; }
.wedding-section-controls button:hover { background:#fff !important; color:#0f252d !important; }
.wedding-section-controls button.is-delete { color:#a22424 !important; }
.wedding-section-controls button:disabled { opacity:.38 !important; cursor:not-allowed !important; }
.wedding-admin-preview a[data-wedding-link-editable] { cursor: pointer; outline: 1px dashed rgba(183,111,24,.82); outline-offset: 4px; }
.wedding-admin-preview a[data-wedding-link-editable]:hover { outline: 3px solid #b76f18; }
.wedding-admin-preview .wedding-editable-gift-root { pointer-events: auto !important; cursor: pointer !important; outline: 1px dashed rgba(22,137,82,.8); outline-offset: 3px; }
.wedding-admin-preview .wedding-editable-gift-root:hover { outline: 3px solid #168952 !important; }
.wedding-admin-preview .wedding-editable-guest-root { pointer-events: auto !important; cursor: pointer !important; outline: 1px dashed rgba(159,32,64,.78); outline-offset: 4px; z-index: 5; }
.wedding-admin-preview .wedding-editable-guest-root:hover { outline: 3px solid #9f2040 !important; }
.wedding-admin-preview .wedding-editable-date-root { pointer-events: auto !important; cursor: pointer !important; outline: 1px dashed rgba(181,9,13,.72); outline-offset: 3px; }
.wedding-admin-preview .wedding-editable-date-root:hover { outline: 3px solid #b5090d !important; }
.wedding-admin-preview .wedding-editable-guest-root .ladi-headline,
.wedding-admin-preview .wedding-editable-guest-root .ladi-paragraph,
.wedding-admin-preview .wedding-editable-guest-root .text-block-css { pointer-events: auto !important; cursor: pointer !important; }

/* Chỉ ẩn badge nổi do runtime LadiPage chèn, không tác động phần tử giao diện của mẫu. */
[class*="ladipage"][class*="powered" i],
[id*="ladipage"][id*="powered" i] { display: none !important; visibility: hidden !important; pointer-events: none !important; }
.wedding-admin-preview .wedding-draggable-marker { pointer-events: auto !important; cursor: grab !important; touch-action: none; user-select: none; }
.wedding-admin-preview .wedding-draggable-marker .ladi-image[data-wedding-editable] { cursor: grab !important; outline-color: #d3264f; }
.wedding-admin-preview .wedding-draggable-marker.is-dragging,
.wedding-admin-preview .wedding-draggable-marker.is-dragging .ladi-image { cursor: grabbing !important; }
.wedding-admin-preview .wedding-draggable-marker.is-dragging .ladi-image { outline: 3px solid #d3264f !important; filter: drop-shadow(0 5px 7px rgba(97,20,39,.3)); }
.wedding-image-overridden { --wedding-image-source-overridden: 1; }
/* Ảnh tải lên đã được cắt đúng tỷ lệ khung. Lớp nguồn gốc của LadiPage/Webcake thường
   còn width/height/top/left để crop ảnh cũ; phải reset lớp này để tránh crop lần hai. */
.wedding-image-overridden:not(.wedding-background-overridden) > .ladi-image > .ladi-image-background,
.wedding-image-overridden:not(.wedding-background-overridden) > .image-block-css > .image-background,
.wedding-image-overridden:not(.wedding-background-overridden) > img,
.wedding-image-overridden:not(.wedding-background-overridden) > picture > img { width:100% !important; height:100% !important; top:0 !important; left:0 !important; right:auto !important; bottom:auto !important; margin:0 !important; transform:none !important; background-position:center center !important; background-size:cover !important; background-repeat:no-repeat !important; object-fit:cover !important; object-position:center center !important; }
.wedding-background-overridden > .ladi-section-background,
.wedding-background-overridden > .section-wrapper > .section-background,
.wedding-background-overridden > .section-background { background-position:center center !important; background-size:cover !important; background-repeat:no-repeat !important; }
.wedding-vietqr-overridden > .ladi-image > .ladi-image-background { width: 100% !important; height: 100% !important; top: 0 !important; left: 0 !important; transform: none !important; background-position: center center !important; background-size: contain !important; background-repeat: no-repeat !important; }
.wedding-vietqr-overridden > .image-block-css > .image-background,
.wedding-vietqr-overridden img { width:100% !important; height:100% !important; inset:0 auto auto 0 !important; transform:none !important; background-position:center !important; background-size:contain !important; background-repeat:no-repeat !important; object-fit:contain !important; }
.wedding-calendar-root .wedding-calendar-source { opacity: 0 !important; pointer-events: none !important; }
.wedding-calendar-root > .group-container > .wedding-dynamic-calendar { opacity:1 !important; pointer-events:auto !important; }
.wedding-calendar-root > .ladi-group { overflow: visible !important; }
.wedding-dynamic-calendar { position: absolute; inset: 0; z-index: 20; display: grid; grid-template-rows: 35px minmax(0,1fr); width: 100%; height: 100%; color: var(--wedding-calendar-ink,#171312); font-family: var(--wedding-calendar-font,Tinos,Georgia,serif); user-select: none; }
.wedding-dynamic-calendar.has-month-label { grid-template-rows: minmax(24px,auto) 35px minmax(0,1fr); }
.wedding-calendar-month { display:grid; place-items:center; min-width:0; overflow:hidden; color:var(--wedding-calendar-month-color,var(--wedding-calendar-ink,#171312)); font-family:var(--wedding-calendar-month-font,var(--wedding-calendar-font,Tinos,Georgia,serif)); font-size:var(--wedding-calendar-month-size,18px); line-height:1.15; text-align:center; white-space:nowrap; }
.wedding-calendar-weekdays { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); align-items: center; border-radius: 1px; background: var(--wedding-calendar-accent,#b5090d); color: #fff; font-family: "Open Sans",Arial,sans-serif; font-size: 14px; font-weight: 700; text-align: center; }
.wedding-calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); grid-template-rows: repeat(6,minmax(0,1fr)); gap: 0; padding: 8px 3px 0; }
.wedding-calendar-day { position: relative; display: grid; place-items: center; min-width: 0; min-height: 0; font-size: var(--wedding-calendar-size,16px); line-height: 1; }
.wedding-calendar-day b { position: relative; z-index: 3; font-weight: 400; }
.wedding-calendar-day.is-empty { visibility: hidden; }
.wedding-calendar-heart { position: absolute; z-index: 2; left: 50%; top: 50%; display: grid; place-items: center; width: 42px; height: 36px; margin: -18px 0 0 -21px; color: #ef355f; font-family: Arial,sans-serif; font-size: 39px; font-style: normal; line-height: 1; opacity: .9; text-shadow: 0 2px 5px rgba(140,0,30,.2); transform-origin: center; background-position:center; background-repeat:no-repeat; background-size:contain; }
.wedding-dynamic-calendar.has-heart-image .wedding-calendar-heart { color:transparent; text-shadow:none; background-image:var(--wedding-calendar-heart-image); }
.wedding-admin-preview .wedding-dynamic-calendar { pointer-events: auto !important; cursor: pointer; outline: 1px dashed rgba(181,9,13,.55); outline-offset: 3px; }
.wedding-admin-preview .wedding-dynamic-calendar:hover { outline: 2px solid rgba(181,9,13,.75); }
.wedding-admin-preview .wedding-calendar-heart { pointer-events: auto !important; cursor: grab; touch-action: none; }
.wedding-admin-preview .wedding-calendar-heart.is-dragging { z-index: 30; cursor: grabbing; opacity: 1; filter: drop-shadow(0 7px 6px rgba(100,0,25,.25)); }
.wedding-admin-preview .ladi-group { pointer-events: none !important; }
.wedding-admin-preview [data-wedding-native-action="change_index"],
.wedding-admin-preview [data-wedding-native-action="change_index"] * { pointer-events: auto !important; cursor: pointer; }
.wedding-admin-preview .ladi-group > .ladi-element,
.wedding-admin-preview .wedding-editable-text-root,
.wedding-admin-preview .wedding-editable-image-root,
.wedding-admin-preview .wedding-editable-background-root,
.wedding-admin-preview .wedding-editable-link-root,
.wedding-admin-preview .wedding-editable-gift-root,
.wedding-admin-preview .wedding-editable-guest-root,
.wedding-admin-preview .wedding-draggable-marker,
.wedding-admin-preview [contenteditable="true"],
.wedding-admin-preview .ladi-image[data-wedding-editable],
.wedding-admin-preview .image-block-css[data-wedding-editable],
.wedding-admin-preview [data-wedding-background-editable="1"],
.wedding-admin-preview [data-wedding-background-root],
.wedding-admin-preview [data-wedding-section-root],
.wedding-admin-preview a[data-wedding-link-editable],
.wedding-admin-preview [data-wedding-gift-editable],
.wedding-admin-preview [data-wedding-guest-editable] { pointer-events: auto !important; }
#weddingRsvpTrigger { position: fixed; right: 18px; bottom: 18px; z-index: 9000000060; border: 0; border-radius: 999px; padding: 13px 20px; background: #754b3b; color: #fff; font: 700 14px/1.2 "Open Sans",sans-serif; box-shadow: 0 8px 25px rgba(50,28,20,.28); cursor: pointer; }
#weddingRsvpTrigger:hover { background: #5e3b2e; transform: translateY(-1px); }
#weddingGiftTrigger { position:fixed; right:18px; bottom:72px; z-index:9000000060; border:0; border-radius:999px; padding:11px 18px; background:#a0713e; color:#fff; font:700 13px/1.2 "Open Sans",sans-serif; box-shadow:0 8px 25px rgba(50,28,20,.24); cursor:pointer; }
#weddingGiftTrigger:hover { background:#82592f; transform:translateY(-1px); }
.wedding-gift-modal[hidden] { display:none !important; }.wedding-gift-modal { position:fixed; inset:0; z-index:9000000100; display:grid; place-items:center; padding:18px; font-family:"Open Sans",sans-serif; }.wedding-gift-backdrop { position:absolute; inset:0; background:rgba(30,20,16,.7); backdrop-filter:blur(3px); }.wedding-gift-card { position:relative; width:min(360px,100%); max-height:calc(100vh - 36px); overflow:auto; border-radius:18px; padding:28px 25px 24px; background:#fffaf2; color:#4d352c; text-align:center; box-shadow:0 24px 70px rgba(0,0,0,.3); }.wedding-gift-card h2 { margin:4px 0 17px; font:700 24px/1.2 Georgia,serif; }.wedding-gift-kicker { margin:0; color:#a0713e; font-size:10px; font-weight:800; letter-spacing:.16em; }.wedding-gift-x { position:absolute; right:10px; top:7px; border:0; background:transparent; color:#765b50; font-size:28px; cursor:pointer; }.wedding-gift-qr { display:block; width:210px; max-width:75%; aspect-ratio:1; object-fit:contain; margin:0 auto 14px; border:1px solid #e1d2c5; border-radius:11px; background:#fff; }.wedding-gift-card strong,.wedding-gift-card span,.wedding-gift-card small { display:block; margin-top:5px; overflow-wrap:anywhere; }.wedding-gift-card small { color:#796158; }.wedding-gift-copy { margin-top:16px; border:0; border-radius:9px; padding:11px 15px; background:#754b3b; color:#fff; font-weight:700; cursor:pointer; }
.wedding-rsvp-modal[hidden] { display: none !important; }
.wedding-rsvp-modal { position: fixed; inset: 0; z-index: 9000000100; display: grid; place-items: center; padding: 18px; font-family: "Open Sans",sans-serif; }
.wedding-rsvp-backdrop { position: absolute; inset: 0; background: rgba(30,20,16,.68); backdrop-filter: blur(3px); }
.wedding-rsvp-card { position: relative; width: min(380px,100%); max-height: calc(100vh - 36px); overflow: auto; padding: 30px 26px 24px; border-radius: 16px; background: #fffaf2; color: #4d352c; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.wedding-rsvp-card * { box-sizing: border-box; }
.wedding-rsvp-card h2 { margin: 2px 0 8px; font: 700 30px/1.15 "Cormorant Upright",serif; text-align: center; }
.wedding-rsvp-kicker { margin: 0; color: #a26c51; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-align: center; }
.wedding-rsvp-intro { margin: 0 0 18px; color: #796158; font-size: 13px; line-height: 1.5; text-align: center; }
.wedding-rsvp-x { position: absolute; right: 10px; top: 8px; border: 0; background: transparent; color: #765b50; font-size: 28px; cursor: pointer; }
.wedding-rsvp-card label { display: block; margin: 11px 0; color: #60483f; font-size: 12px; font-weight: 700; line-height: 1.4; }
.wedding-rsvp-card input,.wedding-rsvp-card select,.wedding-rsvp-card textarea { display: block; width: 100%; margin-top: 5px; border: 1px solid #decbbd; border-radius: 8px; padding: 10px 11px; background: #fff; color: #402e27; font: 400 14px/1.35 "Open Sans",sans-serif; outline: none; }
.wedding-rsvp-card input:focus,.wedding-rsvp-card select:focus,.wedding-rsvp-card textarea:focus { border-color: #a76743; box-shadow: 0 0 0 3px rgba(167,103,67,.13); }
.wedding-rsvp-submit { width: 100%; margin-top: 8px; border: 0; border-radius: 9px; padding: 12px; background: #754b3b; color: #fff; font-weight: 700; cursor: pointer; }
.wedding-rsvp-submit:disabled { opacity: .65; cursor: wait; }
.wedding-rsvp-message { min-height: 18px; font-size: 12px; line-height: 1.4; }
.wedding-rsvp-message.success { color: #24704a; }.wedding-rsvp-message.error { color: #b73333; }
.wedding-hp { position: absolute !important; left: -10000px !important; opacity: 0 !important; }
.wedding-modal-open { overflow: hidden !important; }
#weddingMusicControl { position:fixed; left:16px; bottom:16px; z-index:9000000061; width:48px; height:48px; display:grid; place-items:center; border:0; border-radius:50%; background:rgba(45,43,42,.72); color:#fff; font-size:22px; line-height:1; box-shadow:0 7px 22px rgba(0,0,0,.25); cursor:pointer; backdrop-filter:blur(5px); }
#weddingMusicControl[hidden] { display:none !important; }
#weddingMusicControl:hover { background:rgba(45,43,42,.9); transform:translateY(-1px); }
@media (max-width: 440px) { #weddingRsvpTrigger { right: 12px; bottom: 12px; } #weddingGiftTrigger { right:12px; bottom:66px; } .wedding-rsvp-card { padding: 26px 20px 20px; } }
html[data-wedding-showcase="1"] { scrollbar-width:none; overscroll-behavior:none; }
html[data-wedding-showcase="1"]::-webkit-scrollbar,
html[data-wedding-showcase="1"] body::-webkit-scrollbar { display:none; width:0; height:0; }
html[data-wedding-showcase="1"] body { overflow-x:hidden !important; scrollbar-width:none; }
html[data-wedding-showcase="1"] #weddingBootScreen,
html[data-wedding-showcase="1"] #weddingMusicControl,
html[data-wedding-showcase="1"] #weddingGiftTrigger,
html[data-wedding-showcase="1"] #weddingRsvpTrigger,
html[data-wedding-showcase="1"] #weddingGiftModal,
html[data-wedding-showcase="1"] #weddingRsvpModal,
html[data-wedding-showcase="1"] .ladi-loading,
html[data-wedding-showcase="1"] #toggleMusic,
html[data-wedding-showcase="1"] [id*="musicControl" i],
html[data-wedding-showcase="1"] [id*="music-button" i] { display:none !important; }
#weddingOperatorCredit{box-sizing:border-box;position:relative;z-index:20;width:100%;padding:14px 12px;background:#fff;color:#6b7280;font:500 14px/1.45 Arial,sans-serif;text-align:center}#weddingOperatorCredit a{color:#0784e3!important;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}#weddingOperatorCredit a:hover,#weddingOperatorCredit a:focus{color:#005fb3!important}
