:root {
  --ink: #171512;
  --muted: #726d64;
  --paper: #f5f1e9;
  --paper-deep: #e8e0d4;
  --cream: #fbf9f4;
  --gold: #98754b;
  --gold-light: #cab38f;
  --rose: #a67d75;
  --line: rgba(23, 21, 18, 0.14);
  --shadow: 0 24px 70px rgba(40, 31, 21, 0.12);
  font-synthesis: none;
}

:root[data-theme="rosa"] {
  --ink: #281b20;
  --muted: #78666c;
  --paper: #f6eaed;
  --paper-deep: #ead7dc;
  --cream: #fffafb;
  --gold: #9b706b;
  --gold-light: #d9b6b2;
  --rose: #ad526e;
  --line: rgba(91, 43, 57, 0.15);
  --shadow: 0 28px 80px rgba(96, 52, 63, 0.15);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "DM Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  height: 84px;
  padding: 0 clamp(22px, 5vw, 76px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(245, 241, 233, 0.9);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.catalog-navigation {
  padding: 12px clamp(22px, 5vw, 76px);
  border-bottom: 1px solid var(--line);
  background: var(--cream);
  scroll-margin-top: 84px;
}
.catalog-navigation .category-tabs { margin: 0; padding-bottom: 3px; }
.header-actions { display: flex; align-items: center; gap: 14px; }
.theme-switch {
  padding: 10px 2px 8px;
  color: var(--muted);
  border-bottom: 1px solid currentColor;
  text-decoration: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: 180ms ease;
}
.theme-switch:hover { color: var(--ink); }
.theme-badge { display: none; color: var(--rose); font: inherit; }
.brand { display: flex; align-items: center; gap: 13px; color: inherit; text-decoration: none; }
.brand-mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  font: 20px "Italiana", serif;
  color: var(--gold);
}
.brand-logo { width: 60px; height: 60px; object-fit: contain; border-radius: 50%; background: white; }
.brand strong { display: block; font: 21px/1 "Italiana", serif; letter-spacing: 0.02em; }
.site-edit-trigger { padding: 8px 12px; border: 1px solid var(--rose); border-radius: 999px; color: var(--ink); background: #fff; cursor: pointer; font-size: 13px; }
.brand small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; }
.cart-trigger {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 10px 10px 18px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  color: var(--ink);
  background: transparent;
  cursor: pointer;
  transition: 180ms ease;
}
.cart-trigger:hover { background: var(--ink); color: var(--cream); }
.cart-count { display: grid; place-items: center; min-width: 29px; height: 29px; padding: 0 8px; border-radius: 999px; background: var(--ink); color: var(--cream); font-size: 12px; }
.cart-trigger:hover .cart-count { background: var(--cream); color: var(--ink); }

.hero {
  min-height: 0;
  padding: clamp(42px, 5vw, 76px) clamp(24px, 8vw, 130px);
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(350px, 0.94fr);
  align-items: center;
  gap: 6vw;
  overflow: hidden;
}
.eyebrow { margin: 0 0 20px; color: var(--gold); font-size: 10px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; }
.eyebrow > span[aria-hidden="true"] { margin-right: 9px; font-size: 8px; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 800px; margin-bottom: 28px; font: clamp(50px, 6.5vw, 100px)/0.95 "Italiana", serif; letter-spacing: -0.045em; font-weight: 400; }
h1 em { color: var(--rose); font-style: italic; }
.hero-text { max-width: 590px; margin-bottom: 38px; color: var(--muted); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.7; }
.primary-link { display: inline-flex; gap: 18px; align-items: center; color: var(--ink); text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; border-bottom: 1px solid var(--ink); padding-bottom: 8px; }
.hero-object { position: relative; min-height: 460px; display: grid; place-items: center; }
.halo { position: absolute; border: 1px solid rgba(152, 117, 75, 0.34); border-radius: 50%; }
.halo-one { width: 430px; height: 430px; }
.halo-two { width: 315px; height: 315px; border-style: dashed; animation: spin 28s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.reliquary { position: relative; width: 218px; height: 257px; filter: drop-shadow(0 28px 28px rgba(53, 38, 22, 0.18)); }
.reliquary-ring { position: absolute; top: 0; left: 50%; width: 44px; height: 55px; transform: translateX(-50%); border: 9px solid #b5986c; border-radius: 50%; box-shadow: inset 0 0 0 2px #dfccaa; }
.reliquary-glass {
  position: absolute;
  inset: 36px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  border: 12px solid #a88455;
  border-radius: 50%;
  background: radial-gradient(circle at 36% 28%, rgba(255,255,255,.94), rgba(235,222,202,.65) 42%, rgba(177,147,112,.22));
  box-shadow: inset 0 0 0 3px #d7be91, inset 0 0 25px rgba(100,70,40,.2);
}
.mini-charm { width: 39px; height: 39px; display: grid; place-items: center; color: #8a6947; background: rgba(255,255,255,.72); border: 1px solid rgba(138,105,71,.3); border-radius: 50%; font-family: serif; }
.object-note { position: absolute; bottom: -8px; right: 5%; color: var(--muted); font: italic 16px "Italiana", serif; letter-spacing: 0.04em; }
.hero-media { position: relative; min-height: 440px; align-self: stretch; display: grid; place-items: center; }
.hero-media > img { width: 100%; max-height: 540px; height: 100%; object-fit: contain; background: #fff; border-radius: 45% 45% 10px 10px; box-shadow: 0 25px 65px rgba(96,52,63,.13); }
.hero-logo-stamp { position: absolute; right: -20px; bottom: -20px; width: min(180px, 35%); aspect-ratio: 1; overflow: hidden; border: 7px solid var(--cream); border-radius: 50%; box-shadow: 0 14px 38px rgba(96,52,63,.16); }
.hero-logo-stamp img { width: 100%; height: 100%; object-fit: cover; }

.collection { padding: clamp(42px, 5vw, 72px) clamp(22px, 6vw, 92px); background: var(--cream); border-top: 1px solid var(--line); scroll-margin-top: 20px; }
.reviews-section {
  padding: clamp(36px, 4.5vw, 64px) clamp(22px, 6vw, 92px);
  color: #fff7f8;
  background: radial-gradient(circle at 84% 20%, rgba(235, 173, 187, .22), transparent 28%),
    linear-gradient(125deg, #492433, #713b50 67%, #8c4b61);
  overflow: hidden;
}
.reviews-intro { max-width: 1440px; margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 320px); align-items: center; gap: 46px; }
.reviews-copy .eyebrow { color: #f5bdc9; font-size: 12px; }
.reviews-copy h2 { max-width: 750px; margin: 0 0 19px; font: clamp(44px, 5.5vw, 78px)/1.05 "Italiana", serif; letter-spacing: -.035em; }
.reviews-copy > p:not(.eyebrow) { max-width: 570px; margin: 0 0 29px; color: #f5dfe5; font: 17px/1.6 "DM Sans", sans-serif; }
.reviews-copy .site-edit-trigger { display: block; margin-top: 22px; }
.reviews-seal { width: min(100%, 295px); aspect-ratio: 1; display: grid; justify-items: center; align-content: center; gap: 8px; justify-self: end; transform: rotate(7deg); border: 1px solid rgba(255,230,237,.6); border-radius: 50%; background: rgba(255,255,255,.1); box-shadow: 0 0 0 12px rgba(255,255,255,.045), inset 0 0 0 12px rgba(255,255,255,.055); }
.reviews-seal img { width: 115px; height: 115px; object-fit: cover; border-radius: 50%; }
.reviews-seal-stars { color: #ffe0a6; letter-spacing: .13em; font-size: 19px; }
.reviews-seal > span:last-child { color: #ffe9ed; font-size: 11px; letter-spacing: .23em; }
.reviews-grid { max-width: 1440px; margin: 30px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review-card { min-width: 0; display: flex; flex-direction: column; gap: 12px; padding: 26px; border: 1px solid rgba(255,255,255,.55); border-radius: 19px; color: #4b2936; background: #fff9fa; box-shadow: 0 20px 45px rgba(39,16,28,.12); }
.review-card-stars { color: #ab6f3c; font-size: 18px; letter-spacing: .15em; }
.review-card blockquote { flex: 1; margin: 0; font: 16px/1.6 "DM Sans", sans-serif; overflow-wrap: anywhere; }
.review-gallery { position: relative; min-width: 0; border-radius: 12px; background: #f4e8ea; overflow: hidden; }
.review-gallery img { display: block; width: 100%; height: 210px; object-fit: contain; }
.review-gallery-arrow { position: absolute; top: 50%; width: 36px; height: 36px; transform: translateY(-50%); border: 1px solid #e6cbd2; border-radius: 50%; background: rgba(255,249,250,.94); color: #633244; font-size: 26px; line-height: 1; cursor: pointer; }
.review-gallery-prev { left: 8px; }
.review-gallery-next { right: 8px; }
.review-gallery-count { position: absolute; right: 10px; bottom: 9px; padding: 3px 9px; border-radius: 999px; background: rgba(56,25,37,.82); color: white; font-size: 12px; }
.review-card-meta { display: flex; flex-direction: column; gap: 4px; padding-top: 12px; border-top: 1px solid #ecdfe3; font-size: 13px; }
.review-card-meta strong { font-size: 14px; }
.review-card-meta span { color: #785b66; overflow-wrap: anywhere; }
.review-card a { width: fit-content; color: #733d50; font-size: 13px; text-underline-offset: 3px; }
.reviews-more { display: block; margin: 28px auto 0; padding: 12px 21px; border: 1px solid #f8c8d2; border-radius: 999px; color: white; background: transparent; cursor: pointer; font-size: 14px; }
.reviews-more:hover { color: #522b3b; background: #ffe8ed; }
.reviews-intro.review-banner-canvas, .review-banner-canvas {
  position: relative; display: block; width: 100%; max-width: 1440px;
  aspect-ratio: 4.4; min-height: 0; overflow: hidden; container-type: inline-size;
}
.review-banner-box { position: absolute; display: flex; align-items: center; min-width: 0; min-height: 0; overflow: hidden; line-height: 1.15; overflow-wrap: anywhere; white-space: pre-wrap; }
.review-banner-box.kind-text .review-box-text { display: block; width: 100%; max-height: 100%; overflow: auto; }
.review-banner-box.kind-image img { display: block; width: 100%; height: 100%; }
.review-banner-box.shape-circle { border-radius: 50%; }
.review-banner-box.kind-circle { border: 1px solid rgba(255,230,237,.6); background: color-mix(in srgb, currentColor 10%, transparent); box-shadow: inset 0 0 0 12px rgba(255,255,255,.055); }
.review-banner-box[data-review-box="rb-title"] { font-weight: 400; letter-spacing: -.035em; }
.review-banner-box[data-review-box="rb-eyebrow"], .review-banner-box[data-review-box="rb-stars"] { font-weight: 700; letter-spacing: .1em; }
.review-banner-box[data-review-box="rb-caption"] { letter-spacing: .15em; }
.review-banner-admin-actions { display: none; gap: 10px; flex-wrap: wrap; max-width: 1440px; margin: 12px auto 0; }
.review-banner-admin-actions:has(> button:not([hidden])) { display: flex; }
.review-banner-admin-actions .site-edit-trigger { margin: 0; }
.review-banner-box[data-review-edit-box] { cursor: pointer; outline: 1px dashed rgba(255,255,255,.55); }
.review-banner-box[data-review-edit-box]:focus-visible { outline: 3px solid #ffe0a6; }
.review-banner-editor { width: min(1080px, calc(100vw - 24px)); max-height: 92vh; overflow-y: auto; }
.review-banner-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.review-banner-preview-scroll { overflow-x: auto; max-width: 100%; }
.review-banner-preview-pair { display: flex; align-items: start; gap: 16px; min-width: 900px; }
.review-banner-preview-panel { flex: 1 0 620px; min-width: 0; padding: 10px; border: 2px solid #ead9df; border-radius: 14px; background: #fff9fb; }
.review-banner-preview-panel:last-child { flex: 0 0 260px; }
.review-banner-preview-panel.active { border-color: #713c4e; }
.review-banner-preview-heading { margin-bottom: 10px; color: #713c4e; font: 700 14px "Manrope", sans-serif; }
.review-banner-stage { border-radius: 10px; background: linear-gradient(125deg, #492433, #713b50 67%, #8c4b61); touch-action: none; }
.review-banner-stage-mobile { aspect-ratio: 1.55; }
.review-banner-stage .review-banner-box { outline: 1px dashed #ffd7df; cursor: pointer; }
.review-banner-stage .review-banner-box.selected { outline: 3px solid #ffe0a6; }
.review-banner-stage .review-banner-box.preview-hidden { opacity: .35; }
.review-banner-stage .review-box-text { padding: 2px; outline: 0; cursor: text; }
.review-box-placeholder { margin: auto; font: 12px "Lato", sans-serif; color: white; text-align: center; }
.review-box-delete, .review-box-move, .review-box-resize { position: absolute; z-index: 2; display: grid; place-items: center; width: 26px; height: 26px; border: 0; border-radius: 50%; color: white; background: #713c4e; cursor: grab; touch-action: none; }
.review-box-delete { top: 2px; left: 2px; background: #a22b4d; cursor: pointer; font-size: 20px; }
.review-box-move { top: 2px; right: 2px; }
.review-box-resize { right: 2px; bottom: 2px; cursor: nwse-resize; }
.review-banner-stage .review-banner-box:not(.selected) > :is(.review-box-delete, .review-box-move, .review-box-resize) { display: none; }
.review-banner-box-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0; padding: 17px; border: 1px solid #ead9df; border-radius: 12px; background: white; }
.review-banner-box-fields h3, .review-banner-box-fields .review-banner-wide { grid-column: 1 / -1; }
.review-banner-box-fields h3 { margin: 0; font: 700 17px "Manrope", sans-serif; }
.review-banner-box-fields label { display: grid; gap: 6px; min-width: 0; color: #4d2935; font: 600 14px "Manrope", sans-serif; }
.review-banner-box-fields :is(input, select, textarea) { width: 100%; min-height: 40px; padding: 8px; border: 1px solid #d9bdc5; border-radius: 8px; color: #442d35; background: white; font: 15px "Manrope", sans-serif; }
.review-banner-box-fields textarea { min-height: 80px; resize: vertical; }
.review-banner-box-fields .review-banner-visible { display: flex; align-items: center; gap: 8px; }
.review-banner-box-fields .review-banner-visible input { width: 18px; min-height: 18px; accent-color: #713c4e; }
@media (max-width: 600px) { .review-banner-box-fields { grid-template-columns: 1fr; } }
.reviews-editor-list { display: grid; gap: 15px; margin: 24px 0; }
.review-edit-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.review-edit-row h3 { grid-column: 1 / -1; margin: 0; font-size: 18px; }
.review-order { grid-column: 1 / -1; display: flex; gap: 9px; align-items: end; flex-wrap: wrap; padding: 11px; border-radius: 10px; background: #f9eff1; }
.review-order label { width: 125px; }
.review-order input { text-align: center; }
.review-order button { min-height: 42px; padding: 8px 12px; border: 1px solid #c9a3ae; border-radius: 8px; background: white; color: #703747; font: 600 14px/1.4 "Manrope", sans-serif; cursor: pointer; }
.review-order button:disabled { opacity: .45; cursor: default; }
.review-edit-row label { display: grid; gap: 5px; font-size: 14px; font-weight: 600; }
.review-edit-row label.review-wide, .review-edit-row .review-actions, .review-photo-editor { grid-column: 1 / -1; }
.review-edit-row input, .review-edit-row textarea, .review-edit-row select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: 14px/1.4 "Manrope", sans-serif; }
.review-edit-row textarea { min-height: 100px; resize: vertical; }
.review-edit-row img { max-width: 150px; max-height: 130px; object-fit: contain; border: 1px solid var(--line); border-radius: 8px; }
.review-photo-editor { display: grid; gap: 10px; min-width: 0; }
.review-photo-editor > strong { font-size: 14px; }
.review-photo-list { display: flex; gap: 12px; max-width: 100%; overflow-x: auto; padding: 4px 1px 12px; }
.review-photo-item { flex: 0 0 145px; display: grid; gap: 6px; padding: 7px; border: 1px solid var(--line); border-radius: 10px; }
.review-photo-item img { width: 100%; height: 115px; object-fit: contain; }
.review-photo-item span { font-size: 13px; text-align: center; }
.review-photo-item > div { display: flex; flex-wrap: wrap; gap: 4px; }
.review-photo-item button { min-height: 32px; padding: 3px 7px; border: 1px solid var(--line); border-radius: 6px; background: white; color: #703747; cursor: pointer; }
.review-photo-item button:disabled { opacity: .45; cursor: default; }
.review-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.review-actions button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: white; color: #703747; cursor: pointer; }
.relic-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  max-width: 1320px; margin: 20px auto; padding: 26px clamp(24px, 5vw, 72px);
  color: #542f3a; text-decoration: none; border-radius: 28px;
  background: linear-gradient(105deg, #f6dce2 0%, #f9e9ed 56%, #ecc8d2 100%);
  box-shadow: 0 18px 44px rgba(95, 41, 57, .12);
}
.relic-banner-copy { display: grid; gap: 8px; }
.relic-banner-copy strong { font: clamp(30px, 3vw, 48px)/1.05 "Italiana", serif; }
.relic-banner-copy > span:nth-child(3) { font-size: 15px; line-height: 1.5; }
.relic-banner-action { display: inline-block; width: fit-content; margin-top: 8px; padding: 11px 18px; color: white; background: #713c4e; border-radius: 999px; font-size: 14px; }
.relic-banner-images { display: flex; align-items: center; padding-right: 30px; }
.relic-banner-images img { width: 95px; height: 95px; object-fit: contain; border: 5px solid white; border-radius: 50%; background: white; box-shadow: 0 8px 20px rgba(95,41,57,.13); }
.relic-banner-images img + img { margin-left: -22px; }
.relic-banner:hover .relic-banner-action { background: #542f3a; }
.relic-banner:focus-visible, .relic-card button:focus-visible { outline: 3px solid #7b3c57; outline-offset: 3px; }
.relic-controls { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, .6fr) auto; align-items: end; gap: 16px; margin: -8px 0 30px; }
.relic-controls.admin-visibility { grid-template-columns: minmax(220px, 1fr) minmax(150px, .6fr) minmax(170px, .6fr) auto; }
.relic-controls > div { display: grid; gap: 7px; }
.relic-controls label { font-size: 14px; font-weight: 600; }
.relic-controls input, .relic-controls select { width: 100%; min-height: 45px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: white; font: 14px "DM Sans", sans-serif; }
.relic-controls p { margin: 0 0 10px; color: var(--muted); font-size: 14px; }
[hidden] { display: none !important; }
.product-grid.relic-grid { grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 18px; }
.relic-card { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: white; text-align: center; }
.relic-card-hidden { border: 2px solid #92556b; background: #fff3f6; }
.relic-visibility-badge { display: block; margin-bottom: 8px; padding: 6px 8px; border-radius: 8px; background: #713c4e; color: white; font: 700 12px/1.3 "Manrope", sans-serif; }
.relic-photo { aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border-radius: 10px; background: white; }
.relic-photo img { width: 100%; height: 100%; object-fit: contain; }
.relic-code { display: block; min-height: 41px; margin: 8px 0 10px; font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.relic-actions { display: grid; gap: 8px; }
.relic-actions .quantity-control { grid-template-columns: 1fr 1fr 1fr; }
.relic-actions .add-button { min-height: 38px; }
.relic-admin-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-bottom: 10px; }
.relic-admin-actions .edit-photo-button { margin: 0; padding: 6px 9px; font-size: 12px; }
.relic-admin-actions .danger { border-color: #b76a70; color: #913b46; }
.relic-admin-actions .danger:hover { background: #913b46; color: white; }
.relic-hidden-tools { margin: 0 0 15px; }
.relic-hidden-tools > button { cursor: pointer; }
.relic-hidden-list { display: grid; gap: 8px; max-height: 230px; overflow: auto; margin: 12px 0 20px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: white; list-style: none; }
.relic-hidden-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; }
.relic-hidden-list button { padding: 6px 10px; border: 1px solid #aa647a; border-radius: 8px; background: white; color: #713c4e; cursor: pointer; }
.relic-more { display: block; margin: 28px auto 0; padding: 12px 22px; border: 1px solid var(--ink); border-radius: 999px; color: var(--ink); background: transparent; cursor: pointer; font-size: 14px; }
.relic-more:hover { color: white; background: var(--ink); }
.relic-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; margin: 30px 0 0; color: var(--ink); font-size: 14px; }
.relic-pagination button { min-height: 42px; padding: 10px 18px; border: 1px solid var(--ink); border-radius: 999px; background: white; color: var(--ink); cursor: pointer; }
.relic-pagination button:hover:not(:disabled) { background: var(--ink); color: white; }
.relic-pagination button:disabled { opacity: .4; cursor: not-allowed; }
.reviews-pagination { color: white; }
.reviews-pagination button { border-color: #f8c8d2; color: white; background: transparent; }
.reviews-pagination button:hover:not(:disabled) { color: #542f3a; background: #f8c8d2; }
.admin-badge { padding: 8px 10px; border: 1px solid #b6798a; border-radius: 999px; color: #7d3e55; font-size: 12px; font-weight: 600; white-space: nowrap; }
.admin-signin { color: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.edit-photo-button { display: inline-block; margin: 0 0 11px; padding: 7px 12px; border: 1px solid #aa647a; border-radius: 999px; color: #713c4e; background: white; cursor: pointer; font-size: 13px; }
.edit-photo-button:hover { color: white; background: #713c4e; }
.catalog-editor { width: min(720px, calc(100vw - 24px)); max-height: 88vh; padding: 26px; border: 1px solid #e4cad1; border-radius: 22px; color: var(--ink); background: #fffafb; box-shadow: 0 35px 90px rgba(57,22,35,.25); }
.catalog-editor::backdrop { background: rgba(40,23,31,.55); }
.stock-editor { width: min(940px, calc(100vw - 24px)); max-height: 92vh; overflow-y: auto; }
.stock-editor .stock-summary { margin: 10px 0 18px; font-weight: 700; color: #713c4e; }
.stock-toolbar, .stock-bulk, .stock-file-actions { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 14px 0; }
.stock-toolbar label, .stock-bulk label { display: grid; flex: 1 1 220px; gap: 6px; font: 600 14px/1.4 "Manrope", sans-serif; }
.stock-toolbar label:first-child { flex-grow: 2; }
.stock-bulk { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.stock-bulk label { flex: 0 1 260px; }
.stock-toolbar input, .stock-toolbar select, .stock-bulk input, .stock-row input { width: 100%; min-height: 42px; padding: 8px 11px; border: 1px solid #ceb6be; border-radius: 8px; color: var(--ink); background: #fff; font: 15px/1.4 "Manrope", sans-serif; }
.stock-bulk button, .stock-file-actions button, .stock-file-label, .stock-more { min-height: 42px; padding: 9px 13px; border: 1px solid #9b6c7c; border-radius: 8px; color: #713c4e; background: white; cursor: pointer; font: 600 14px/1.4 "Manrope", sans-serif; }
.stock-file-label { display: inline-flex; align-items: center; }
#stockUpload { max-width: 220px; font-size: 14px; }
.stock-editor .stock-hint { margin: 5px 0 22px; }
.stock-editor .stock-result-count { margin-bottom: 8px; font-weight: 700; color: var(--ink); }
.stock-list { display: grid; border-top: 1px solid var(--line); }
.stock-row { display: grid; grid-template-columns: 56px minmax(0,1fr) 112px; gap: 14px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.stock-row img { width: 56px; height: 56px; object-fit: contain; border-radius: 8px; background: white; }
.stock-item-label { display: grid; min-width: 0; gap: 3px; }
.stock-item-label strong { font-size: 15px; overflow-wrap: anywhere; }
.stock-item-label span, .stock-item-label small { color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.stock-row label { display: grid; gap: 3px; font-size: 13px; font-weight: 600; }
.stock-row input[aria-invalid="true"] { border-color: #ad344b; outline: 2px solid #ad344b; }
.stock-more { margin-top: 16px; }
.stock-footer { position: sticky; bottom: -26px; display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 22px -26px -26px; padding: 14px 26px; border-top: 1px solid var(--line); background: #fffafb; }
.stock-footer p { flex: 1; margin: 0; }
.stock-footer button { white-space: nowrap; }
.stock-empty { padding: 24px 0; }
@media (max-width: 600px) {
  .stock-editor { padding: 18px; }
  .stock-row { grid-template-columns: 44px minmax(0,1fr) 88px; gap: 8px; }
  .stock-row img { width: 44px; height: 44px; }
  .stock-item-label small { font-size: 12px; }
  .stock-row input { padding: 7px 6px; }
  .stock-footer { bottom: -18px; flex-wrap: wrap; margin: 20px -18px -18px; padding: 12px 18px; }
  .stock-footer button { width: 100%; }
}
.catalog-editor .editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.editor-heading h2 { margin-bottom: 10px; font: 32px/1.15 "Italiana", serif; }
.editor-heading button { border: 0; background: none; cursor: pointer; font-size: 30px; }
.catalog-editor h3 { margin: 26px 0 12px; font: 22px "Manrope", sans-serif; }
.catalog-editor p { color: var(--muted); font-size: 14px; line-height: 1.5; }
.site-text-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.site-section-order { display: grid; gap: 8px; margin: 14px 0 24px; padding: 0; list-style: none; }
.site-section-order li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 7px 8px 7px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: grab; }
.site-section-order li:active { cursor: grabbing; }
.site-section-order li.section-drop-target { border-color: #9c4f6d; background: #fceef2; }
.site-section-order li > span:first-child { font-size: 14px; font-weight: 600; }
.site-section-order-actions { display: flex; flex: none; gap: 5px; }
.site-section-order-actions button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff8fa; font-size: 19px; cursor: pointer; }
.site-section-order-actions button:disabled { opacity: .4; cursor: default; }
.site-section-order-actions button:focus-visible { outline: 3px solid #9c4f6d; outline-offset: 2px; }
#siteEditor { width: min(1180px, calc(100vw - 24px)); }
.site-section-editor-layout { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(360px, 1.2fr); align-items: start; gap: 20px; }
.site-section-editor-layout .site-section-order { margin-top: 0; }
.site-section-preview { position: sticky; top: 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.site-section-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; font-size: 14px; }
.site-preview-devices { display: flex; gap: 4px; }
.site-preview-devices button { padding: 6px 9px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: white; font: 12px "Manrope", sans-serif; cursor: pointer; }
.site-preview-devices button[aria-pressed="true"] { border-color: #9c4f6d; background: #fbe6ee; }
.site-section-preview-window { position: relative; height: min(54vh, 540px); min-height: 330px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff8fa; }
.site-section-preview-window iframe { position: absolute; top: 0; left: 0; border: 0; transform-origin: top left; background: white; }
.site-section-preview > p { margin: 8px 2px 0; font-size: 12px; }
html[data-section-preview] .site-header, html[data-section-preview] .catalog-navigation,
html[data-section-preview] footer, html[data-section-preview] .floating-whatsapp,
html[data-section-preview] .site-edit-trigger, html[data-section-preview] .relic-banner-edit-trigger,
html[data-section-preview] .review-banner-admin-actions { display: none !important; }
html[data-section-preview] main a, html[data-section-preview] main button,
html[data-section-preview] main input, html[data-section-preview] main select { pointer-events: none !important; }
@media (max-width: 800px) {
  .site-section-editor-layout { grid-template-columns: 1fr; }
  .site-section-preview { position: static; }
}
.site-button-group { margin: 10px 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.site-button-group summary { cursor: pointer; font-size: 15px; font-weight: 700; }
.site-button-group[open] .site-text-fields { padding-top: 18px; }
.site-text-fields label, .product-edit-form > label { display: grid; gap: 7px; color: var(--ink); font-size: 14px; font-weight: 600; }
.site-text-fields input, .site-text-fields textarea, .product-edit-form input, .product-edit-form textarea { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: white; font: 15px/1.4 "Manrope", sans-serif; }
.site-text-fields select { width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: white; font: 15px/1.4 "Manrope", sans-serif; }
.site-text-fields textarea, .product-edit-form textarea { min-height: 94px; resize: vertical; }
.site-image-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.site-image-fields label { display: grid; gap: 7px; font-size: 14px; }
.site-image-fields img { width: 100%; height: 110px; object-fit: contain; background: white; border: 1px solid var(--line); }
.site-image-fields input { max-width: 100%; }
.cart-editor { overflow-y: auto; }
.cart-editor details { margin: 14px 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.cart-editor summary { cursor: pointer; font-size: 15px; font-weight: 700; }
.cart-editor details[open] > div { margin-top: 16px; }
.cart-editor-group { display: grid; align-content: start; gap: 12px; min-width: 0; }
.cart-editor-group h3 { grid-column: 1 / -1; margin: 0 0 2px; font-size: 16px; }
.cart-editor-group label, .cart-editor-button-row label { display: grid; gap: 6px; min-width: 0; font-size: 13px; font-weight: 600; }
.cart-editor-group input, .cart-editor-group textarea, .cart-editor-button-row input,
.cart-editor-button-row select, .cart-editor-font-row input, .cart-editor-font-row select { min-width: 0; width: 100%; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--ink); font: 14px/1.4 "Manrope", sans-serif; }
.cart-editor-group textarea { min-height: 76px; resize: vertical; }
.cart-editor-group:not(:first-child) { border-top: 1px solid var(--line); padding-top: 15px; }
.cart-font-fields, .cart-button-fields { display: grid; gap: 12px; }
.cart-editor-font-row { display: grid; grid-template-columns: minmax(110px, 1fr) minmax(120px, 1fr) 85px; gap: 10px; align-items: center; font-size: 13px; }
.cart-editor-button-row { display: grid; grid-template-columns: 1fr 135px; gap: 10px; align-items: end; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.cart-editor-button-row small { color: var(--muted); font-size: 12px; font-weight: 400; }
@media (max-width: 540px) { .cart-editor-button-row, .cart-editor-font-row { grid-template-columns: 1fr; } }
.product-edit-form { display: grid; gap: 16px; }
.product-edit-form .product-visibility { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid #aa647a; border-radius: 10px; background: white; }
.product-edit-form .product-visibility input { width: 20px; height: 20px; min-height: 20px; flex: none; accent-color: #713c4e; }
.gallery-editor-list { display: grid; gap: 9px; }
.gallery-editor-row { display: flex; align-items: center; gap: 9px; padding: 7px; border: 1px solid var(--line); border-radius: 9px; background: white; font-size: 14px; }
.gallery-editor-row img { width: 58px; height: 58px; object-fit: contain; background: #faf5f6; }
.gallery-editor-row span { flex: 1; }
.gallery-editor-row button { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: white; cursor: pointer; }
.gallery-editor-row button:disabled { opacity: .35; cursor: default; }
.editor-primary { display: inline-block; min-height: 44px; padding: 10px 24px; border: 0; border-radius: 8px; color: white; background: #713c4e; cursor: pointer; font-size: 14px; font-weight: 600; }
.editor-primary:disabled { opacity: .55; cursor: wait; }
.photo-editor { width: min(460px, calc(100vw - 24px)); max-height: min(95vh, 900px); padding: 24px; border: 1px solid #e4cad1; border-radius: 22px; color: #442d35; background: #fff8fa; box-shadow: 0 35px 90px rgba(57,22,35,.28); }
.photo-editor::backdrop { background: rgba(40, 23, 31, .58); }
.photo-editor-heading { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.photo-editor-heading h2 { margin: 4px 0 0; font: 31px/1.1 "Italiana", serif; }
.photo-editor > p { font-size: 14px; line-height: 1.5; }
.photo-editor-close { border: 0; background: transparent; cursor: pointer; font-size: 28px; }
.photo-upload { display: inline-block; margin: 12px 0 8px; padding: 10px 14px; border-radius: 8px; color: white; background: #713c4e; cursor: pointer; font-size: 14px; }
#editorFile { display: block; max-width: 100%; font-size: 13px; }
#editorCanvas { display: block; width: min(100%, 310px); height: auto; margin: 16px auto; border: 1px solid #ead8dd; border-radius: 10px; background: white; }
.editor-sliders { display: grid; gap: 11px; }
.editor-sliders label { display: grid; gap: 3px; font-size: 14px; }
.editor-sliders input { width: 100%; accent-color: #713c4e; }
.editor-status { min-height: 22px; color: #7d3e55; }
.editor-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; }
.editor-actions button { min-height: 40px; padding: 9px 15px; border: 1px solid #713c4e; border-radius: 8px; background: transparent; color: #713c4e; cursor: pointer; font-size: 14px; }
.editor-actions #saveEditor { color: white; background: #713c4e; }
.editor-actions button:disabled { opacity: .5; cursor: wait; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 26px; }
.section-heading h2 { margin: 0; font: clamp(38px, 4.5vw, 64px)/1 "Italiana", serif; font-weight: 400; letter-spacing: -0.035em; }
.section-heading > p { max-width: 390px; margin-bottom: 5px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.category-tabs { display: flex; gap: 9px; margin-bottom: 38px; padding-bottom: 3px; overflow-x: auto; scrollbar-width: none; scroll-margin-top: 105px; }
.category-tabs::-webkit-scrollbar { display: none; }
.category-tab { flex: 0 0 auto; padding: 12px 21px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; text-decoration: none; transition: 180ms ease; }
.category-tab:hover, .category-tab[aria-selected="true"] { color: var(--cream); border-color: var(--ink); background: var(--ink); }
.round-size-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; margin: 0 0 22px; scroll-margin-top: 105px; }
.round-size-tabs[hidden] { display: none; }
.round-size-tabs > span { color: var(--muted); font-size: 14px; }
.round-size-tabs > div { display: flex; flex-wrap: wrap; gap: 8px; }
.round-size-tabs a { padding: 9px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: #fff8fa; cursor: pointer; font: 600 14px/1.3 "Manrope", sans-serif; text-decoration: none; }
.round-size-tabs a:hover, .round-size-tabs a[aria-pressed="true"] { border-color: var(--ink); color: var(--cream); background: var(--ink); }
.product-order-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin: 0 0 30px; padding: 14px 16px; border: 1px solid #e3cbd3; border-radius: 12px; background: #fff8fa; }
.product-order-tools #productOrderActions { display: flex; flex-wrap: wrap; gap: 9px; }
.product-order-tools #hiddenProductsList { width: 100%; margin: 0; }
.product-order-tools p { width: 100%; margin: 0; color: #713c4e; font-size: 14px; line-height: 1.4; }
.product-order-tools p:empty { display: none; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px clamp(14px, 2vw, 27px); }
.product-card { min-width: 0; }
.product-card-hidden { padding: 8px; border: 2px solid #92556b; border-radius: 12px; background: #fff3f6; }
.product-admin-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: -5px 0 12px; }
.product-admin-actions .edit-photo-button { margin: 0; padding: 6px 9px; font-size: 12px; }
.product-order-tools label[for="productVisibility"] { display: grid; gap: 5px; font: 600 13px/1.4 "Manrope", sans-serif; }
.product-order-tools #productVisibility { min-height: 36px; padding: 6px 9px; border: 1px solid #d9bdc5; border-radius: 8px; background: white; font: inherit; }
.product-card.organizing { padding: 8px; border: 1px solid #d9bdc5; border-radius: 12px; background: #fff8fa; }
.product-card.order-drop-target { outline: 3px solid #713c4e; outline-offset: 3px; }
.product-order-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.product-order-controls label { display: inline-flex; align-items: center; gap: 5px; margin-right: auto; color: #5f3644; font-size: 14px; font-weight: 600; }
.product-order-controls select, .product-order-controls button { min-width: 34px; min-height: 34px; border: 1px solid #d9bdc5; border-radius: 8px; color: #5f3644; background: #fff; font: 600 14px "Manrope", sans-serif; cursor: pointer; }
.product-order-controls select { padding: 0 5px; }
.product-order-controls button:disabled { opacity: .4; cursor: default; }
.product-order-controls [data-order-handle] { cursor: grab; touch-action: none; }
.product-order-controls [data-order-handle]:active { cursor: grabbing; }
.product-visual {
  position: relative;
  aspect-ratio: 0.91;
  margin-bottom: 19px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, #e6dfd5, #f6f2eb 68%);
}
.product-visual::before { content: ""; position: absolute; width: 68%; aspect-ratio: 1; border: 1px solid rgba(152,117,75,.25); border-radius: 50%; }
.product-visual::after { content: ""; position: absolute; inset: 13px; border: 1px solid rgba(255,255,255,.64); }
.product-image { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: contain; }
.product-visual:has(.product-image)::before,
.product-visual:has(.product-image)::after { display: none; }
.product-symbol { position: relative; z-index: 1; display: grid; place-items: center; width: 38%; aspect-ratio: 1; border: 8px double #aa895d; border-radius: 50%; color: #886944; background: rgba(250,247,241,.84); box-shadow: 0 20px 38px rgba(84,63,38,.18); font: clamp(30px, 4vw, 54px) "Italiana", serif; }
.product-index { position: absolute; top: 25px; left: 25px; color: var(--muted); font-size: 9px; letter-spacing: 0.14em; }
.product-category { margin-bottom: 8px; color: var(--gold); font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.product-card h3 { min-height: 50px; margin-bottom: 8px; font: 600 18px/1.38 "Manrope", sans-serif; letter-spacing: -.02em; }
.gallery-arrow { position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(0,0,0,.1); border-radius: 50%; color: #38232c; background: rgba(255,255,255,.93); box-shadow: 0 4px 12px rgba(0,0,0,.12); cursor: pointer; font-size: 25px; line-height: 1; }
.gallery-prev { left: 8px; }
.gallery-next { right: 8px; }
.gallery-counter { position: absolute; z-index: 3; bottom: 10px; left: 50%; transform: translateX(-50%); padding: 4px 9px; border-radius: 999px; color: #38232c; background: rgba(255,255,255,.94); font: 600 12px "Manrope", sans-serif; }
.gallery-arrow:focus-visible { outline: 3px solid #713c4e; }
.product-meta { min-height: 38px; margin-bottom: 15px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.product-price { margin-bottom: 15px; font-size: 13px; font-weight: 600; }
.source-link { display: inline-flex; align-items: center; gap: 7px; margin: -4px 0 16px; color: var(--muted); text-decoration: none; border-bottom: 1px solid transparent; font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.source-link:hover { color: var(--ink); border-color: currentColor; }
.product-channel-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 4px 0 17px; }
.product-channel-offers.single-offer { grid-template-columns: 1fr; }
.channel-offer { display: grid; align-content: center; gap: 4px; min-width: 0; min-height: 86px; padding: 10px; border: 1px solid #d8bbc5; border-radius: 12px; color: #512c3a; background: #fff7f9; text-align: left; text-decoration: none; }
.channel-offer:hover, .channel-offer:focus-visible { border-color: #713c4e; box-shadow: 0 4px 13px rgba(81,44,58,.11); }
.channel-offer span { font: 700 11px "Manrope", sans-serif; }
.channel-offer strong { font: 700 clamp(14px, 1.4vw, 19px) "Manrope", sans-serif; white-space: nowrap; }
.channel-offer small { font: 600 10px "Manrope", sans-serif; line-height: 1.3; }
.whatsapp-offer { border-color: #b5d6c2; color: #20543b; background: #f2faf4; }
.product-actions { display: grid; grid-template-columns: auto 1fr; gap: 10px; }
.quantity-control { display: grid; grid-template-columns: 32px 26px 32px; align-items: center; border: 1px solid var(--line); }
.quantity-control button { height: 39px; border: 0; color: var(--ink); background: transparent; cursor: pointer; }
.quantity-control span { text-align: center; font-size: 12px; }
.add-button { border: 1px solid var(--ink); color: var(--cream); background: var(--ink); cursor: pointer; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; transition: 180ms ease; }
.add-button:hover { color: var(--ink); background: transparent; }
.empty-state { padding: 70px 0; text-align: center; color: var(--muted); }

footer { padding: 28px clamp(22px, 6vw, 92px); display: flex; justify-content: space-between; gap: 20px; color: var(--muted); border-top: 1px solid var(--line); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.scrim { position: fixed; inset: 0; z-index: 90; background: rgba(18, 15, 12, .42); backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; inset: 0 0 0 auto; z-index: 100; width: min(520px, 100%); padding: 34px; display: flex; flex-direction: column; color: var(--ink); background: var(--cream); box-shadow: var(--shadow); transform: translateX(102%); transition: transform 280ms ease; }
.cart-drawer.open { transform: translateX(0); }
.cart-header { display: flex; align-items: start; justify-content: space-between; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.cart-header h2 { margin: 0; font: 34px "Italiana", serif; font-weight: 400; }
.cart-header h2 span { color: var(--muted); font: 15px "DM Sans", sans-serif; }
.cart-header .eyebrow { margin-bottom: 10px; }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: transparent; cursor: pointer; font-size: 24px; font-weight: 300; line-height: 1; }
.cart-items { flex: 1; min-height: 0; overflow-y: auto; }
.cart-item { display: grid; grid-template-columns: 70px 1fr auto; gap: 15px; align-items: center; padding: 17px 0; border-bottom: 1px solid var(--line); }
.cart-item-art { width: 70px; height: 70px; display: grid; place-items: center; overflow: hidden; color: var(--gold); background: var(--paper-deep); border: 1px solid var(--line); border-radius: 50%; font: 24px "Italiana", serif; }
.cart-item-image { width: 100%; height: 100%; object-fit: cover; }
.cart-item h3 { margin: 0 0 5px; font: 17px "Italiana", serif; font-weight: 400; }
.cart-item p { margin: 0 0 9px; color: var(--muted); font-size: 11px; }
.cart-item .cart-relic-pricing { display: grid; gap: 3px; font-size: 12px; line-height: 1.4; }
.cart-gift { color: #20543b; font-weight: 700; }
.cart-item-controls { display: flex; align-items: center; gap: 10px; }
.cart-item-controls button { width: 27px; height: 27px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.cart-item-controls span { min-width: 14px; text-align: center; font-size: 12px; }
.remove-button { border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 17px; }
.cart-empty { flex: 1; display: grid; place-content: center; justify-items: center; padding: 60px 30px; text-align: center; }
.cart-empty > span { margin-bottom: 22px; color: var(--gold); font-size: 62px; font-family: serif; }
.cart-empty h3 { margin-bottom: 9px; font: 27px "Italiana", serif; font-weight: 400; }
.cart-empty p { max-width: 260px; margin-bottom: 20px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.text-button { border: 0; border-bottom: 1px solid var(--ink); padding: 0 0 5px; background: transparent; cursor: pointer; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.cart-summary { max-height: 65vh; padding-top: 22px; border-top: 1px solid var(--line); overflow-y: auto; }
.summary-row { display: flex; justify-content: space-between; margin-bottom: 9px; color: var(--muted); font-size: 12px; }
.summary-row strong { color: var(--ink); }
.gift-allowance { display: block; width: 100%; margin: 11px 0 15px; padding: 10px 12px; border: 1px solid #b5d6c2; border-radius: 9px; color: #20543b; background: #f2faf4; cursor: pointer; font: inherit; font-size: 13px; line-height: 1.4; text-align: left; text-decoration: none; }
.gift-allowance:hover, .gift-allowance:focus-visible { border-color: #20543b; background: #e8f5eb; }
.gift-allowance[hidden] { display: none; }
.total-row { margin: 18px 0 8px; color: var(--ink); font-size: 15px; }
.total-row strong { font: 24px "Italiana", serif; font-weight: 400; }
.channel-total { margin-top: 15px; }
.channel-total strong { font-size: 15px; }
.shopee-cart-button { width: 100%; margin: 14px 0 8px; padding: 12px; border: 1px solid #713c4e; border-radius: 8px; color: #713c4e; background: white; cursor: pointer; font: 700 12px "Manrope", sans-serif; }
.shopee-cart-button:disabled { opacity: .55; cursor: default; }
.shopee-cart-links { max-height: 190px; margin-bottom: 14px; overflow-y: auto; }
.shopee-cart-links a { display: flex; justify-content: space-between; gap: 10px; padding: 9px 4px; border-bottom: 1px solid var(--line); color: #713c4e; font-size: 12px; text-decoration: none; }
.shopee-cart-links strong { flex: 0 0 auto; }
.shopee-cart-links p { margin: 8px 0; color: var(--muted); font-size: 11px; }
.product-whatsapp-note { margin: 0; color: #476d57; font-size: 13px; }
.summary-note, .privacy-note { color: var(--muted); font-size: 10px; line-height: 1.45; }
.shipping-quote { margin: 16px 0 8px; padding: 16px; border: 1px solid #d4b9bf; border-radius: 12px; background: #fffaf9; }
.shipping-quote h3 { margin: 0 0 5px; color: #713c4e; font: 19px "Italiana", serif; }
.shipping-quote > p, .shopee-shipping-note { margin: 4px 0 12px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.shipping-quote-form label { display: block; margin: 8px 0 6px; font-size: 13px; font-weight: 700; }
.shipping-quote-form > div { display: flex; gap: 8px; }
.shipping-quote-form input { min-width: 0; flex: 1; padding: 11px; border: 1px solid #d4b9bf; border-radius: 7px; background: white; font: inherit; font-size: 16px; }
.shipping-quote-form button { padding: 10px 14px; border: 0; border-radius: 7px; background: #713c4e; color: white; font: 700 13px "Manrope", sans-serif; cursor: pointer; }
.shipping-quote-form button:disabled { opacity: .6; cursor: wait; }
.shipping-quote-status { margin: 9px 0 0 !important; }
.shipping-address-fields { margin: 14px 0; padding-top: 12px; border-top: 1px solid var(--line); }
.shipping-address-fields[hidden] { display: none; }
.shipping-address-fields h4 { margin: 0 0 4px; color: var(--ink); font-size: 14px; }
.shipping-address-fields > p { margin: 3px 0 10px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.shipping-address-fields .shipping-address-status:empty { display: none; }
.shipping-address-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.shipping-address-grid label { display: grid; gap: 4px; margin: 0; font-size: 12px; font-weight: 600; }
.shipping-address-grid .address-wide { grid-column: 1 / -1; }
.shipping-address-grid input { width: 100%; min-width: 0; padding: 9px; border: 1px solid #d4b9bf; border-radius: 7px; background: white; font: inherit; font-size: 14px; }
.shipping-quote-options { display: grid; gap: 8px; margin-top: 10px; }
.shipping-option { display: flex; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; background: white; font-size: 13px; }
.shipping-option:has(input:checked) { border-color: #713c4e; background: #f8edf0; }
.shipping-option span { flex: 1; }
.shipping-option small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.shipping-option strong { white-space: nowrap; }
.shipping-grand-total { margin: 11px 0 0 !important; color: #713c4e !important; font-weight: 700; font-size: 14px !important; }
.shopee-shipping-note { margin: 0 0 12px; }
@media (max-width: 420px) { .shipping-quote { padding: 13px; } .shipping-quote-form > div { gap: 5px; } .shipping-quote-form button { padding-inline: 10px; } }
.copy-section { margin: 18px 0 14px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.copy-section > p { margin-bottom: 10px; color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.copy-section > .copy-hint { margin: 10px 0 0; font-size: 12px; line-height: 1.5; letter-spacing: normal; text-transform: none; }
.copy-actions { display: grid; grid-template-columns: 1fr 1.25fr 1fr; gap: 7px; }
.copy-actions button { padding: 9px 5px; border: 1px solid var(--line); color: var(--ink); background: transparent; cursor: pointer; font-size: 10px; }
.copy-actions button:hover { border-color: var(--ink); }
.copy-actions button:disabled { opacity: .45; cursor: default; }
.whatsapp-button { width: 100%; padding: 15px; border: 0; color: white; background: #1c6b4c; cursor: pointer; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.whatsapp-button:disabled { opacity: .6; cursor: wait; }
.whatsapp-button span { margin-right: 8px; }
.floating-whatsapp { position: fixed; right: clamp(16px, 3vw, 34px); bottom: calc(22px + env(safe-area-inset-bottom)); z-index: 80; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 56px; padding: 0 18px 0 13px; border-radius: 999px; color: white; background: #255f4a; box-shadow: 0 9px 28px rgba(18, 56, 40, .32); font: 700 14px/1.2 "Manrope", sans-serif; text-decoration: none; transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease; }
.floating-whatsapp:hover { color: white; background: #1c4e3c; box-shadow: 0 12px 32px rgba(18, 56, 40, .38); transform: translateY(-3px); }
.floating-whatsapp:focus-visible { outline: 3px solid #713c4e; outline-offset: 3px; }
.floating-whatsapp svg { width: 30px; height: 30px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 600px) {
  .floating-whatsapp { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); width: 56px; height: 56px; padding: 0; }
  .floating-whatsapp span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
.cart-drawer { font-family: var(--cart-body-font, "Manrope", sans-serif); font-size: var(--cart-body-size, 14px); }
.cart-drawer .cart-header h2 { font-family: var(--cart-title-font, "Italiana", serif); font-size: var(--cart-title-size, 34px); line-height: 1.15; }
.cart-drawer .cart-header h2 > [data-site-text="cartTitle"] { color: inherit; font: inherit; }
.cart-drawer .cart-empty h3, .cart-drawer .shipping-quote h3 { font-family: var(--cart-title-font, "Italiana", serif); }
.cart-drawer .cart-item h3 { font-family: var(--cart-item-font, "Italiana", serif); font-size: var(--cart-item-size, 17px); line-height: 1.3; }
.cart-drawer .cart-item p, .cart-drawer .cart-empty p, .cart-drawer .summary-row,
.cart-drawer .summary-note, .cart-drawer .privacy-note, .cart-drawer .shipping-quote > p,
.cart-drawer .shopee-shipping-note, .cart-drawer .shipping-quote-form label,
.cart-drawer .shipping-address-fields h4, .cart-drawer .shipping-address-fields p, .cart-drawer .shipping-address-grid label,
.cart-drawer .shopee-cart-links p, .cart-drawer .shopee-cart-links a,
.cart-drawer .copy-section > p { font-family: var(--cart-body-font, "Manrope", sans-serif); font-size: var(--cart-body-size, 14px); }
.cart-drawer button:not(.icon-button):not(.remove-button):not([data-cart-action]),
.cart-drawer .gift-allowance { font-family: var(--cart-button-font, "Manrope", sans-serif); font-size: var(--cart-button-size, 14px); }
.cart-drawer .icon-button { min-width: 38px; width: auto; padding-inline: 8px; font-family: var(--cart-button-font, "Manrope", sans-serif); font-size: var(--cart-button-size, 14px); }
.cart-drawer .cart-item-controls button { min-width: 27px; width: auto; padding-inline: 6px; font-family: var(--cart-button-font, "Manrope", sans-serif); font-size: var(--cart-button-size, 14px); }
.cart-drawer .remove-button { font-family: var(--cart-button-font, "Manrope", sans-serif); font-size: var(--cart-button-size, 14px); }
.cart-drawer .cart-item { grid-template-columns: 70px minmax(0, 1fr) auto; }
.cart-drawer .cart-item-controls button, .cart-drawer .remove-button { max-width: 95px; overflow-wrap: anywhere; }
.cart-drawer .cart-header > div { min-width: 0; overflow-wrap: anywhere; }
.cart-drawer .icon-button { max-width: 40%; overflow-wrap: anywhere; }
.cart-drawer p, .cart-drawer a { overflow-wrap: anywhere; }
.privacy-note { margin: 9px 0 0; text-align: center; }
.toast { position: fixed; z-index: 200; left: 50%; bottom: 28px; padding: 12px 18px; color: var(--cream); background: var(--ink); border-radius: 999px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translate(-50%, 15px); transition: 180ms ease; font-size: 12px; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.centered { top: 50%; bottom: auto; z-index: 220; padding: 17px 28px; border-radius: 14px; font: 700 18px/1.2 "Manrope", sans-serif; transform: translate(-50%, -40%); }
.toast.centered.show { transform: translate(-50%, -50%); }
.gift-prompt { position: fixed; z-index: 210; bottom: max(24px, env(safe-area-inset-bottom)); right: clamp(16px, 4vw, 48px); width: min(400px, calc(100vw - 32px)); padding: 18px 44px 18px 18px; border: 1px solid #ce9da8; border-radius: 16px; color: #4e2935; background: #fff9fa; box-shadow: 0 18px 60px rgba(54, 22, 34, .22); }
.gift-prompt[hidden], .gift-prompt [hidden] { display: none; }
.gift-prompt-close { position: absolute; top: 7px; right: 9px; width: 32px; height: 32px; border: 0; border-radius: 50%; color: #713c4e; background: transparent; cursor: pointer; font-size: 23px; line-height: 1; }
.gift-prompt-close:hover { background: #f4e4e8; }
.gift-prompt-choose { display: block; width: 100%; padding: 5px 0; border: 0; color: #713c4e; background: transparent; cursor: pointer; font: 700 18px/1.4 "Manrope", sans-serif; text-align: left; }
.gift-prompt-choose:hover { text-decoration: underline; text-underline-offset: 4px; }
.gift-prompt-title { margin: 2px 0 14px; font: 700 17px/1.45 "Manrope", sans-serif; }
.gift-prompt-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gift-prompt-actions button { min-height: 42px; padding: 8px 12px; border: 1px solid #713c4e; border-radius: 8px; color: white; background: #713c4e; cursor: pointer; font-size: 13px; font-weight: 700; }
.gift-prompt-actions button:last-child { color: #713c4e; background: white; }
@media (max-width: 520px) { .gift-prompt { bottom: max(16px, env(safe-area-inset-bottom)); right: 16px; padding: 15px 40px 15px 15px; } .gift-prompt-choose { font-size: 16px; } }
body.drawer-open { overflow: hidden; }

:root[data-theme="rosa"] body {
  background:
    radial-gradient(circle at 10% 12%, rgba(255, 255, 255, .72), transparent 26%),
    radial-gradient(circle at 86% 18%, rgba(191, 106, 129, .10), transparent 25%),
    var(--paper);
}
:root[data-theme="rosa"] .site-header {
  background: rgba(250, 241, 243, .91);
  box-shadow: 0 8px 35px rgba(108, 59, 72, .05);
}
:root[data-theme="rosa"] .brand-mark {
  color: #a25067;
  border-color: #a25067;
  box-shadow: inset 0 0 0 4px rgba(255,255,255,.42);
}
:root[data-theme="rosa"] .brand small { color: #9b6c79; }
:root[data-theme="rosa"] .theme-badge { display: inline; }
:root[data-theme="rosa"] .hero {
  position: relative;
  background:
    linear-gradient(118deg, rgba(255,255,255,.35), transparent 46%),
    radial-gradient(circle at 78% 45%, rgba(183, 91, 116, .13), transparent 27%);
}
:root[data-theme="rosa"] h1 em { color: #a74663; }
:root[data-theme="rosa"] .halo-one { border-color: rgba(173, 82, 110, .36); }
:root[data-theme="rosa"] .halo-two { border-color: rgba(143, 85, 99, .28); }
:root[data-theme="rosa"] .reliquary-ring { border-color: #b77b82; box-shadow: inset 0 0 0 2px #efd0d3; }
:root[data-theme="rosa"] .reliquary-glass {
  border-color: #a96872;
  background: radial-gradient(circle at 36% 28%, rgba(255,255,255,.96), rgba(246,221,226,.72) 42%, rgba(172,99,116,.20));
  box-shadow: inset 0 0 0 3px #deb1b8, inset 0 0 25px rgba(116,55,70,.17);
}
:root[data-theme="rosa"] .mini-charm { color: #a04d66; border-color: rgba(160,77,102,.28); }
:root[data-theme="rosa"] .collection { background: rgba(255, 250, 251, .93); }
:root[data-theme="rosa"] .product-visual {
  background:
    radial-gradient(circle at 72% 26%, rgba(255,255,255,.85), transparent 20%),
    linear-gradient(145deg, #ead7dc, #fbf2f4 66%);
}
:root[data-theme="rosa"] .product-visual::before { border-color: rgba(173,82,110,.23); }
:root[data-theme="rosa"] .product-symbol {
  color: #994e62;
  border-color: #b87883;
  background: rgba(255,250,251,.88);
  box-shadow: 0 22px 42px rgba(110,55,70,.18);
}
:root[data-theme="rosa"] .category-tab:hover,
:root[data-theme="rosa"] .category-tab[aria-selected="true"],
:root[data-theme="rosa"] .add-button,
:root[data-theme="rosa"] .cart-count { background: #5a3340; border-color: #5a3340; }
:root[data-theme="rosa"] .add-button:hover { color: #5a3340; background: transparent; }
:root[data-theme="rosa"] .cart-trigger:hover { background: #5a3340; border-color: #5a3340; }
:root[data-theme="rosa"] .whatsapp-button { background: #255f4a; }
:root[data-theme="rosa"] footer { background: #f2e3e7; }

@media (max-width: 1020px) {
  .relic-controls.admin-visibility { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .relic-controls.admin-visibility p { grid-column: 1 / -1; }
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { grid-template-columns: 1fr .75fr; }
  .hero-object { min-height: 380px; transform: scale(.82); }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .catalog-navigation { padding: 10px 18px; scroll-margin-top: 72px; }
  .catalog-navigation .category-tabs { flex-wrap: nowrap; overflow-x: auto; }
  .category-tab { padding: 10px 14px; }
  .reviews-section { padding: 28px 22px 36px; font-family: "Lato", sans-serif; }
  .reviews-intro { grid-template-columns: minmax(0, 1fr) minmax(96px, 30%); align-items: center; gap: 12px; }
  .reviews-copy .eyebrow { margin-bottom: 12px; font: 700 11px/1.35 "Lato", sans-serif; letter-spacing: .12em; }
  .reviews-copy h2 { margin-bottom: 12px; font: 700 clamp(24px, 6vw, 34px)/1.12 "Lato", sans-serif; letter-spacing: -.025em; }
  .reviews-copy > p:not(.eyebrow) { margin-bottom: 0; font: 400 14px/1.45 "Lato", sans-serif; }
  .reviews-copy .site-edit-trigger { margin-top: 12px; }
  .reviews-seal { justify-self: end; width: min(100%, 126px); gap: 3px; transform: none; box-shadow: 0 0 0 7px rgba(255,255,255,.045), inset 0 0 0 7px rgba(255,255,255,.055); }
  .reviews-seal img { width: 55px; height: 55px; }
  .reviews-seal-stars { font-size: 12px; }
  .reviews-seal > span:last-child { font-size: 7px; letter-spacing: .12em; }
  .reviews-grid { grid-template-columns: 1fr; margin-top: 20px; }
  .review-card { gap: 10px; padding: 20px; }
  .review-card blockquote { font: 400 15px/1.5 "Lato", sans-serif; }
  .reviews-section button { font-family: "Lato", sans-serif; }
  .reviews-intro.review-banner-canvas { aspect-ratio: 1.55; min-height: 0; }
  .review-banner-box[data-review-box="rb-title"] { font-weight: 700; letter-spacing: -.025em; }
  .review-edit-row { grid-template-columns: 1fr; }
  .admin-badge { display: none; }
  .relic-banner { margin: 12px 16px; padding: 24px; }
  .relic-banner-images { display: none; }
  .relic-controls, .relic-controls.admin-visibility { grid-template-columns: 1fr; gap: 12px; }
  .relic-controls.admin-visibility p { grid-column: auto; }
  .relic-controls p { margin: 0; }
  .collection.relic-mode { padding-inline: 10px; }
  .product-grid.relic-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 5px; }
  .relic-grid .relic-card { padding: 2px 1px 5px; border: 0; border-radius: 6px; background: transparent; }
  .relic-grid .relic-card-hidden { border: 1px solid #92556b; background: #fff3f6; }
  .relic-grid .relic-photo { border-radius: 4px; }
  .relic-grid .relic-code { min-height: 0; margin: 4px 0 5px; font-size: clamp(10px, 2.6vw, 12px); line-height: 1.15; }
  .relic-grid .relic-actions { gap: 4px; }
  .relic-grid .quantity-control { min-width: 0; }
  .relic-grid .quantity-control button { height: 34px; padding: 0; font-size: 15px; }
  .relic-grid .quantity-control span { font-size: 11px; }
  .relic-grid .add-button { min-height: 32px; padding: 2px 1px; font-size: 9px; letter-spacing: 0; text-transform: none; }
  .site-header { height: 72px; }
  .cart-trigger > span:first-child { display: none; }
  .cart-trigger { padding: 7px; border: 0; }
  .header-actions { gap: 10px; }
  .theme-switch { max-width: 72px; padding: 3px 0; text-align: center; font-size: 8px; line-height: 1.35; }
  .brand strong { font-size: 18px; }
  .brand-logo { width: 44px; height: 44px; }
  .brand { gap: 7px; }
  .brand strong { font-size: 15px; }
  .brand small { font-size: 7px; }
  .hero { min-height: auto; padding-block: 32px 38px; grid-template-columns: 1fr; }
  .hero-media { min-height: 310px; order: -1; margin: 0 0 8px; }
  .hero-media > img { max-height: 320px; }
  .hero-logo-stamp { right: 0; bottom: -12px; width: 110px; }
  h1 { font-size: clamp(49px, 14vw, 68px); }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 20px; }
  .product-grid { gap: 22px 13px; }
  .product-card h3 { min-height: 42px; font-size: 18px; }
  .site-text-fields, .site-image-fields { grid-template-columns: 1fr; }
  .site-edit-trigger { font-size: 12px; padding: 7px 9px; }
  .product-meta { min-height: 54px; }
  .product-actions { grid-template-columns: minmax(100px, 115px) minmax(0, 1fr); }
  .product-channel-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quantity-control { grid-template-columns: 1fr 1fr 1fr; }
  .add-button { min-height: 41px; }
  footer { flex-direction: column; align-items: center; text-align: center; }
  .cart-drawer {
    padding: 24px 20px max(24px, env(safe-area-inset-bottom));
    height: 100dvh;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
  }
  .cart-header { flex: 0 0 auto; }
  .cart-items { flex: 0 0 auto; overflow-y: visible; }
  .cart-summary { flex: 0 0 auto; max-height: none; overflow-y: visible; }
  .shopee-cart-links { max-height: none; overflow-y: visible; }
}
@media (max-width: 420px) {
  .product-grid { grid-template-columns: 1fr; }
  .product-visual { aspect-ratio: 1.08; }
  .product-card h3, .product-meta { min-height: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
}

/* Banners and freely positioned media frames */
.hero h1 { font-size: clamp(2.4rem, 7vw, var(--banner-title-size, 100px)); }
.hero .hero-text { font-size: clamp(.875rem, 1.4vw, var(--banner-body-size, 18px)); }
.hero-media { overflow: visible; }
.hero-media .banner-carousel { width: 100%; height: 100%; min-height: 440px; border-radius: 45% 45% 10px 10px; background: white; box-shadow: 0 25px 65px rgba(96,52,63,.13); }
.hero-media .banner-carousel > img, .hero-media .banner-carousel > video { border-radius: inherit; }
.hero-logo-stamp { z-index: 2; pointer-events: none; }
.hero-logo-stamp[hidden], .banner-logo-stamp[hidden] { display: none; }
.banner-logo-stamp img { display: block; width: 100%; height: 100%; object-fit: cover; transform-origin: center; }
.relic-banner > .banner-logo-stamp, .custom-banner > .banner-logo-stamp,
.banner-layout-stage > .banner-logo-stamp { position: absolute; z-index: 6; right: 18px; bottom: 18px;
  width: 104px; aspect-ratio: 1; overflow: hidden; border: 5px solid white; border-radius: 50%;
  background: white; box-shadow: 0 10px 26px rgba(96,52,63,.18); pointer-events: none; }
.banner-logo-stamp.badge-bottom-left { right: auto; left: 18px; bottom: 18px; }
.banner-logo-stamp.badge-top-right { top: 18px; bottom: auto; }
.banner-logo-stamp.badge-top-left { top: 18px; bottom: auto; right: auto; left: 18px; }
.hero-media .hero-logo-stamp.badge-bottom-left { right: auto; left: -20px; bottom: -20px; }
.hero-media .hero-logo-stamp.badge-top-right { right: -20px; top: -20px; bottom: auto; }
.hero-media .hero-logo-stamp.badge-top-left { right: auto; left: -20px; top: -20px; bottom: auto; }
.banner-layout-stage > .banner-logo-stamp { width: min(110px, 17%); right: 12px; bottom: 12px; }
.banner-layout-stage > .banner-logo-stamp.badge-bottom-left { right: auto; left: 12px; bottom: 12px; }
.banner-layout-stage > .banner-logo-stamp.badge-top-right { top: 12px; bottom: auto; right: 12px; }
.banner-layout-stage > .banner-logo-stamp.badge-top-left { top: 12px; bottom: auto; left: 12px; right: auto; }
.banner-carousel { position: relative; display: grid; place-items: center; overflow: hidden; }
.banner-carousel > img, .banner-carousel > video { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.banner-carousel-arrow { position: absolute; top: 50%; z-index: 4; transform: translateY(-50%); display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(0,0,0,.13); border-radius: 50%; color: #442d35; background: rgba(255,255,255,.94); cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.13); font-size: 29px; line-height: 1; }
.banner-carousel-arrow.prev { left: 12px; }
.banner-carousel-arrow.next { right: 12px; }
.banner-carousel-count { position: absolute; z-index: 4; bottom: 14px; left: 50%; transform: translateX(-50%); padding: 5px 10px; border-radius: 99px; color: #442d35; background: rgba(255,255,255,.94); font: 600 12px "Manrope", sans-serif; }
.relic-banner { position: relative; overflow: hidden; }
.relic-banner-overlay { position: absolute; inset: 0; z-index: 1; }
.relic-banner-copy { position: relative; z-index: 2; pointer-events: none; }
.relic-banner-copy strong { font-size: clamp(2rem, 3.5vw, var(--banner-title-size, 48px)); }
.relic-banner-copy > span:nth-child(3) { font-size: clamp(.875rem, 1.4vw, var(--banner-body-size, 15px)); }
.relic-banner-images { width: min(45%, 460px); min-width: 240px; padding: 0; pointer-events: none; }
.relic-banner-images .banner-carousel { width: 100%; height: 220px; border-radius: 20px; background: rgba(255,255,255,.8); }
.relic-banner-images .banner-carousel > img { border: 0; border-radius: 0; box-shadow: none; width: 100%; height: 100%; margin: 0; object-fit: contain; }
.relic-banner-images .banner-carousel > video, .relic-banner-images .banner-carousel button { pointer-events: auto; }
.relic-banner-images .banner-carousel-arrow { width: 34px; height: 34px; font-size: 24px; }
.relic-banner-images .banner-carousel-arrow.prev { left: 7px; }
.relic-banner-images .banner-carousel-arrow.next { right: 7px; }
.relic-banner.visual-banner { display: block; width: min(1320px, calc(100% - 36px)); height: clamp(270px, 25vw, 340px); padding: 0; container-type: inline-size; }
.visual-banner .relic-banner-copy { display: contents; }
.visual-banner [data-relic-part] { position: absolute; z-index: 2; display: flex; align-items: center; min-width: 0; overflow: hidden; line-height: 1.15; overflow-wrap: anywhere; }
.visual-banner [data-relic-part="eyebrow"] { letter-spacing: .22em; text-transform: uppercase; }
.visual-banner [data-relic-part="action"] { justify-content: center; gap: 5px; margin: 0; padding: 5px; white-space: nowrap; }
.visual-banner [data-relic-part="carousel"] { min-width: 0; padding: 0; pointer-events: none; }
.visual-banner [data-relic-part="carousel"] .banner-carousel { width: 100%; height: 100%; background: transparent; }
.visual-banner [data-relic-part="carousel"] .banner-carousel > img,
.visual-banner [data-relic-part="carousel"] .banner-carousel > video { width: 100%; height: 100%; }
.visual-banner [data-relic-part="carousel"] .banner-carousel button { pointer-events: auto; }
.relic-banner-edit-trigger { position: absolute; top: 9px; right: 10px; z-index: 9; padding: 7px 11px; border: 1px solid #713c4e; border-radius: 999px; background: white; color: #713c4e; cursor: pointer; font: 600 12px "Manrope", sans-serif; }
.relic-banner-edit-trigger[hidden] { display: none; }
.custom-banners { display: grid; gap: 30px; max-width: 1320px; margin: 30px auto; padding: 0 20px; }
.custom-banner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(20px, 5vw, 70px); min-height: 290px; padding: clamp(24px, 4vw, 48px); border-radius: 28px; color: #4d2935; background: #f1dce2; }
.custom-banner:nth-child(even) { background: #f7e9ed; }
.custom-banner-copy h2 { margin: 0 0 18px; font-size: clamp(2rem, 5vw, var(--banner-title-size, 54px)); line-height: 1.08; overflow-wrap: anywhere; }
.custom-banner-description { margin-bottom: 22px; font-size: clamp(.875rem, 1.4vw, var(--banner-body-size, 16px)); line-height: 1.6; }
.custom-banner-action { display: inline-flex; padding: 12px 20px; border-radius: 99px; color: white; background: #713c4e; text-decoration: none; font: 600 14px "Manrope", sans-serif; gap: 9px; }
.custom-banner-media .banner-carousel { width: 100%; aspect-ratio: 1.25; border-radius: 20px; background: rgba(255,255,255,.82); }
.custom-banner-media:empty { display: none; }
.custom-banner:has(.custom-banner-media:empty) { grid-template-columns: 1fr; }
.free-frame-section { max-width: 1320px; margin: 20px auto; padding: 0 20px; }
.free-frame-stage { position: relative; width: 100%; aspect-ratio: 16/8; overflow: hidden; border-radius: 28px; background: #f5e5e9; }
.free-frame-stage[role="link"] { cursor: pointer; }
.free-frame-stage[role="link"]:focus-visible { outline: 3px solid #713c4e; outline-offset: 4px; }
.free-frame-stage video { cursor: auto; }
.free-frame { position: absolute; overflow: hidden; background: #fff; box-shadow: 0 12px 36px rgba(74,30,45,.15); }
.free-frame.shape-round, .frame-edit-card.shape-round { border-radius: 20px; }
.free-frame.shape-circle, .frame-edit-card.shape-circle { border-radius: 50%; }
.free-frame > img, .free-frame > video { width: 100%; height: 100%; object-fit: cover; }
.creative-editor { width: min(1200px, calc(100vw - 24px)); }
.creative-editor-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 24px; margin-top: 24px; }
.creative-banner-rail { padding: 16px; border: 1px solid #ead9df; border-radius: 14px; background: #fff; }
.creative-banner-rail h3, .banner-editor-fields h3, .frame-editor-heading h3 { margin: 0 0 14px; font: 600 20px "Manrope", sans-serif; }
.banner-list-row { display: flex; gap: 4px; margin-bottom: 7px; }
.banner-list-row > button:first-child { flex: 1; min-width: 0; text-align: left; overflow: hidden; text-overflow: ellipsis; }
.banner-list-row button, .frame-selection button { padding: 8px 9px; border: 1px solid #e3cbd3; border-radius: 8px; color: #5f3644; background: white; cursor: pointer; font-size: 13px; }
.banner-list-row button.selected, .frame-selection button.selected { color: white; background: #713c4e; }
.editor-secondary { min-height: 37px; padding: 8px 12px; border: 1px solid #a7647a; border-radius: 8px; color: #713c4e; background: white; cursor: pointer; font-size: 13px; }
.editor-secondary.danger { color: #a22b4d; border-color: #c68c9c; }
.editor-secondary:disabled { opacity: .4; cursor: default; }
.banner-editor-fields { min-width: 0; padding: 18px; border: 1px solid #ead9df; border-radius: 14px; background: white; }
.banner-copy-fields, .banner-font-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.banner-logo-controls { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); align-items: center; gap: 14px; margin-bottom: 24px; }
.banner-logo-controls label { display: grid; gap: 7px; min-width: 0; color: #4d2935; font-size: 14px; font-weight: 600; }
.banner-logo-controls .logo-enabled { display: flex; align-items: center; gap: 9px; }
.banner-logo-controls .logo-enabled input { width: 18px; height: 18px; accent-color: #713c4e; }
.banner-logo-controls select { width: 100%; min-height: 42px; padding: 9px; border: 1px solid #d9bdc5; border-radius: 8px; background: white; font: 14px "Manrope", sans-serif; }
.banner-logo-controls input[type="range"] { width: 100%; min-height: 36px; accent-color: #713c4e; }
.banner-copy-fields label, .banner-font-fields label, .frame-control-grid label { display: grid; gap: 6px; color: #4d2935; font-size: 14px; font-weight: 600; }
.banner-copy-fields label:nth-child(3) { grid-column: 1/-1; }
.banner-copy-fields input, .banner-copy-fields textarea, .banner-font-fields input, .banner-font-fields select, .frame-control-grid input, .frame-control-grid select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid #d9bdc5; border-radius: 8px; color: #442d35; background: white; font: 15px "Manrope", sans-serif; }
.banner-copy-fields textarea { min-height: 80px; resize: vertical; }
.banner-copy-visibility { display: grid; gap: 5px; margin: 0 0 20px; padding: 12px; border: 1px solid #ead9df; border-radius: 10px; }
.banner-copy-visibility h4 { margin: 0 0 5px; font-size: 14px; }
.banner-copy-visibility > div { display: flex; align-items: center; gap: 8px; min-height: 32px; }
.banner-copy-visibility strong { flex: 1; font-size: 13px; }
.banner-copy-visibility button, .logo-version-visibility button { min-width: 47px; padding: 5px 7px; border: 1px solid #bbd7c8; border-radius: 7px; color: #315b49; background: white; cursor: pointer; font: 700 12px "Manrope", sans-serif; }
.banner-copy-visibility button.is-hidden, .logo-version-visibility button.is-hidden { border-color: #e4bdc8; color: #a22b4d; background: #fff0f3; }
.logo-version-visibility { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; }
.logo-version-visibility span { flex: 1; }
.banner-slide-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 7px; border: 1px solid #ead9df; border-radius: 8px; }
.banner-slide-row.selected { border-color: #9e6176; background: #fff7f9; }
.banner-slide-row > img, .banner-slide-row > video { width: 90px; height: 70px; object-fit: contain; background: #f9f4f6; }
.banner-slide-row > img { object-fit: contain !important; object-position: center !important; transform: none !important; }
.banner-slide-row span { flex: 1; font-size: 14px; }
.banner-slide-row button { width: 32px; height: 32px; border: 1px solid #d9bdc5; border-radius: 50%; background: white; cursor: pointer; }
.banner-slide-row .banner-slide-edit { width: auto; height: auto; min-height: 34px; padding: 6px 10px; border-radius: 8px; color: #713c4e; font-size: 13px; }
.banner-slide-row button:disabled { opacity: .35; cursor: default; }
.banner-slide-row .slide-visibility { width: auto; min-width: 48px; padding: 0 7px; border-radius: 8px; color: #315b49; font-size: 12px; font-weight: 700; }
.banner-slide-row .slide-visibility.is-hidden { color: #a22b4d; background: #fff0f3; }
.banner-photo-editor { display: grid; gap: 12px; margin: 17px 0 25px; padding: 16px; border: 1px solid #ead9df; border-radius: 14px; background: #fff9fa; }
.banner-photo-editor h4, .banner-photo-editor p { margin: 0; }
.banner-photo-editor h4 { font-size: 16px; }
.banner-photo-editor p, .media-adjust-grid p, .media-adjust-hint { color: #674b56; font-size: 14px; line-height: 1.5; }
.banner-photo-stage { width: min(100%, 500px); overflow: hidden; border: 1px solid #e1c8d0; border-radius: 12px; background: #f2e4e8; cursor: grab; touch-action: none; }
.banner-photo-stage:active, .frame-edit-card:has(> img):active, .banner-layout-stage .banner-layer:has(> img):active { cursor: grabbing; }
.banner-photo-stage img { display: block; width: 100%; height: 100%; user-select: none; -webkit-user-drag: none; pointer-events: auto; }
.media-adjust-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin: 12px 0; }
.media-adjust-grid label { display: grid; gap: 6px; color: #4d2935; font-size: 14px; font-weight: 600; }
.media-adjust-grid label span { margin-left: 5px; color: #785b66; font-size: 13px; font-weight: 400; }
.media-adjust-grid select { width: 100%; min-height: 42px; padding: 9px; border: 1px solid #d9bdc5; border-radius: 8px; background: white; color: #442d35; font: 14px "Manrope", sans-serif; }
.media-adjust-grid input[type="range"] { width: 100%; min-height: 36px; accent-color: #713c4e; }
.media-adjust-grid > p { grid-column: 1 / -1; margin: 0; }
.banner-photo-editor > button, .frame-media-controls > button { justify-self: start; }
#bannerMediaUpload, #frameMediaUpload { position: absolute; width: 1px; height: 1px; opacity: 0; clip-path: inset(50%); }
.photo-upload:focus-within { outline: 3px solid #713c4e; outline-offset: 3px; }
.frame-editor-section { margin: 28px 0; padding-top: 24px; border-top: 1px solid #ead9df; }
.frame-editor-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.frame-editor-heading p { margin: 0 0 15px; }
.frame-editor-heading > .frame-action-row { flex: 0 0 auto; }
.frame-gallery-link { display: grid; gap: 6px; margin: 4px 0 18px; color: #5f3644; font: 600 14px "Manrope", sans-serif; }
.frame-gallery-link input { width: 100%; padding: 11px 12px; border: 1px solid #dcbfc9; border-radius: 9px; font: 400 14px "Manrope", sans-serif; }
.frame-editor-stage { position: relative; width: 100%; aspect-ratio: 16/8; overflow: hidden; border: 1px dashed #b98092; border-radius: 15px; background: #f7e9ed; touch-action: none; }
.frame-edit-card { position: absolute; overflow: hidden; border: 2px solid #fff; background: white; box-shadow: 0 8px 22px rgba(74,30,45,.2); }
.frame-edit-card.selected { outline: 3px solid #713c4e; outline-offset: 1px; }
.frame-edit-card > img, .frame-edit-card > video { width: 100%; height: 100%; object-fit: cover; }
.frame-edit-card > img, .banner-layout-stage .banner-layer > img { cursor: grab; user-select: none; -webkit-user-drag: none; }
.frame-placeholder { display: grid; place-items: center; height: 100%; padding: 8px; color: #713c4e; font-size: 13px; text-align: center; }
.frame-move-handle, .frame-resize-handle { position: absolute; z-index: 3; display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 50%; color: white; background: #713c4e; cursor: grab; font-size: 18px; touch-action: none; }
.frame-move-handle { top: 5px; left: 5px; }
.frame-resize-handle { right: 5px; bottom: 5px; cursor: nwse-resize; }
.frame-editor-fields { margin-top: 18px; }
.frame-selection, .frame-action-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.frame-control-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin: 14px 0; }
.frame-action-row { align-items: center; }
.frame-action-row .photo-upload { margin: 0; }
.banner-zone { display: grid; gap: 0; }
.banner-zone:empty { display: none; }
.banner-zone > .custom-banner { position: relative; overflow: hidden; margin: 14px auto; width: min(1320px, calc(100% - 40px)); cursor: pointer; }
.banner-zone > .hero, .banner-zone > .relic-banner { width: 100%; }
#heroBannerMedia[role="link"] { cursor: pointer; }
#heroBannerMedia:focus-visible, .custom-banner:focus-visible { outline: 3px solid #713c4e; outline-offset: 4px; }
.banner-layers { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.banner-layer { position: absolute; min-height: 0; contain: size; display: flex; align-items: center; min-width: 0; overflow: hidden; line-height: 1.15; overflow-wrap: anywhere; white-space: pre-wrap; border-radius: 12px; }
.banner-layer.shape-circle { aspect-ratio: 1; border-radius: 50%; }
.banner-layer.shape-square { border-radius: 0; }
@media (min-width: 721px) { .hide-desktop { display: none !important; } }
@media (max-width: 720px) { .hide-mobile { display: none !important; } }
.banner-layer > img, .banner-layer > video { width: 100%; height: 100%; object-fit: inherit; }
.banner-layer > img[style], .banner-layer > video[style] { object-fit: inherit !important; }
.banner-layer:has(img), .banner-layer:has(video) { object-fit: cover; }
.banner-layers [data-edit-layer] { pointer-events: auto; cursor: pointer; outline: 2px dashed rgba(113,60,78,.7); }
.banner-layers [data-edit-layer]:hover { outline: 3px solid #713c4e; }
.banner-layout-editor { margin-top: 28px; padding-top: 24px; border-top: 1px solid #ead9df; }
.banner-layout-editor p { margin: 0 0 14px; }
.banner-layout-stage { position: relative; width: 100%; min-height: 230px; aspect-ratio: 16/8; overflow: hidden; border-radius: 16px; background: #f4dfe5; touch-action: none; }
.banner-stage-scroll { max-width: 100%; overflow-x: auto; }
.banner-preview-pair { display: flex; align-items: start; gap: 18px; min-width: 850px; }
.banner-preview-panel { min-width: 0; flex: 1 1 0; padding: 10px; border: 2px solid #ead9df; border-radius: 17px; background: #fff9fb; }
.banner-preview-panel:first-child { flex-grow: 2; }
.banner-preview-panel.active { border-color: #713c4e; }
.banner-preview-panel h4 { margin: 0 0 10px; font: 700 14px "Manrope", sans-serif; color: #713c4e; }
.banner-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 7px; min-height: 34px; margin-bottom: 7px; }
.banner-preview-heading h4 { margin: 0; }
.banner-preview-heading button { border: 0; background: transparent; color: #8b3d56; cursor: pointer; font: 600 11px "Manrope", sans-serif; }
.banner-preview-hidden .banner-layout-stage { opacity: .3; }
.banner-preview-hidden .banner-preview-heading::after { content: "Oculto"; color: #a22b4d; font-size: 11px; }
.version-visibility { display: flex; align-items: center; gap: 10px; grid-column: 1/-1; padding: 10px; border: 1px solid #ead9df; border-radius: 10px; background: #fff7f9; }
.version-visibility strong { flex: 1; font-size: 13px; }
.layer-selection { margin-top: 16px; }
.banner-layout-stage.mobile-stage { min-height: 0; aspect-ratio: 3/5; container-type: inline-size; }
.banner-layout-stage.relic-stage { min-width: 680px; min-height: 0; aspect-ratio: 4.12; container-type: inline-size; }
.banner-preview-pair .banner-layout-stage.relic-stage { min-width: 0; }
.banner-preview-pair .banner-layout-stage.mobile-stage { aspect-ratio: 3/5; }
.relic-preview-part { position: absolute; z-index: 1; display: flex; align-items: center; min-width: 0; overflow: hidden; line-height: 1.15; outline: 1px dashed #713c4e; overflow-wrap: anywhere; cursor: grab; }
.relic-preview-part.selected { z-index: 4; outline: 3px solid #713c4e; outline-offset: 1px; }
.relic-preview-part > span[contenteditable] { display: block; width: 100%; max-height: 100%; overflow: auto; outline: 0; cursor: text; }
.relic-preview-part.preview-carousel > img, .relic-preview-part.preview-carousel > video { width: 100%; height: 100%; object-fit: contain; }
.relic-preview-part.preview-carousel > img { cursor: grab; user-select: none; -webkit-user-drag: none; }
.relic-preview-part.preview-carousel > video, .banner-layout-stage .banner-layer > video { pointer-events: none; }
.banner-layout-stage.is-dragging, .banner-layout-stage.is-dragging * { cursor: grabbing !important; user-select: none !important; }
.relic-preview-part.shape-circle { aspect-ratio: 1; height: auto !important; border-radius: 50%; }
.relic-stage .banner-layer { z-index: 5; }
.relic-part-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 25px; }
.relic-part-fields label { display: grid; gap: 5px; color: #4d2935; font-size: 13px; font-weight: 600; }
.relic-part-fields label:has(textarea), .relic-part-fields > p { grid-column: 1/-1; }
.relic-part-fields input, .relic-part-fields select, .relic-part-fields textarea,
.relic-background-fields input { width: 100%; min-height: 39px; padding: 7px 9px; border: 1px solid #d9bdc5; border-radius: 8px; background: white; font: 14px "Manrope", sans-serif; }
.relic-part-fields textarea { min-height: 65px; resize: vertical; }
.relic-part-fields .relic-transparent { display: flex; align-items: center; gap: 8px; }
.relic-part-fields .relic-transparent input { width: 18px; min-height: 18px; }
.banner-layout-background { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; color: #713c4e; }
.banner-layout-background img, .banner-layout-background video { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.banner-layout-stage .banner-layer { border: 2px dashed #713c4e; background-clip: padding-box; cursor: grab; }
.banner-layout-stage .banner-layer.selected { z-index: 8; outline: 3px solid white; outline-offset: 1px; }
.banner-layout-stage .layer-text { width: 100%; height: 100%; padding: 12px; outline: none; overflow: auto; cursor: text; }
.banner-layout-stage .layer-placeholder { margin: auto; padding: 8px; text-align: center; }
.layer-move, .layer-resize, .layer-delete { position: absolute; z-index: 3; display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #713c4e; color: white; cursor: grab; touch-action: none; }
.layer-move { top: 3px; right: 3px; }
.layer-resize { right: 3px; bottom: 3px; cursor: nwse-resize; }
.layer-delete { top: 3px; left: 3px; background: #a22b4d; cursor: pointer; font-size: 22px; line-height: 1; }
.banner-layout-stage :is(.relic-preview-part, .banner-layer):not(.selected) > :is(.layer-delete, .layer-move, .layer-resize),
.banner-layout-stage:has(.banner-layer.selected) .relic-preview-part > :is(.layer-delete, .layer-move, .layer-resize) { display: none; }
.layer-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.layer-controls h4 { grid-column: 1 / -1; margin: 0; font-size: 17px; }
.layer-controls .media-adjust-hint { grid-column: 1 / -1; margin: 0; }
.layer-controls label { display: grid; gap: 6px; min-width: 0; font-size: 14px; font-weight: 600; }
.layer-controls input, .layer-controls textarea, .layer-controls select { width: 100%; min-height: 40px; padding: 8px; border: 1px solid #d9bdc5; border-radius: 8px; font: 15px "Manrope", sans-serif; }
.layer-controls textarea { min-height: 72px; resize: vertical; }
.layer-controls button { width: fit-content; }
.free-frame.shape-circle, .frame-edit-card.shape-circle { aspect-ratio: 1; height: auto !important; }
@media (max-width: 720px) { .banner-zone > .custom-banner { width: calc(100% - 32px); } .layer-controls, .media-adjust-grid { grid-template-columns: 1fr; } .banner-layout-stage { min-height: 190px; } .frame-editor-heading { flex-wrap: wrap; } }
@media (max-width: 720px) {
  .relic-banner.visual-banner { display: grid; height: auto; gap: 12px; padding: 24px; container-type: normal; }
  .visual-banner [data-relic-part] { position: relative !important; inset: auto !important; order: var(--mobile-order); width: auto !important; height: auto !important; }
  .visual-banner [data-relic-part="eyebrow"] { font-size: max(12px, var(--part-size)) !important; }
  .visual-banner [data-relic-part="title"] { font-size: clamp(30px, calc(var(--part-size) * .78), var(--part-size)) !important; }
  .visual-banner [data-relic-part="description"] { font-size: max(14px, var(--part-size)) !important; }
  .visual-banner [data-relic-part="action"] { width: fit-content !important; min-height: 44px; padding: 10px 16px; font-size: max(14px, var(--part-size)) !important; }
  .visual-banner [data-relic-part="carousel"] { width: 100% !important; height: 210px !important; }
  .visual-banner [data-relic-part="carousel"].shape-circle { width: min(210px, 100%) !important; height: auto !important; }
  .relic-part-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hero-media .banner-carousel { min-height: 310px; height: 310px; }
  .relic-banner { display: grid; }
  .relic-banner-images { display: block; width: 100%; min-width: 0; }
  .relic-banner-images .banner-carousel { height: 210px; }
  .custom-banner { grid-template-columns: 1fr; gap: 18px; }
  .custom-banner-media .banner-carousel { aspect-ratio: 1.3; }
  .free-frame-stage { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; aspect-ratio: auto; padding: 10px; }
  .free-frame { position: relative !important; left: auto !important; top: auto !important; width: 100% !important; height: auto !important; aspect-ratio: 1; }
  .creative-editor-layout { grid-template-columns: 1fr; }
  .banner-copy-fields, .banner-font-fields, .frame-control-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .site-header:has(#creativeEditTrigger:not([hidden])) { height: auto; min-height: 72px; }
  .site-header:has(#creativeEditTrigger:not([hidden])) .brand > span { display: none; }
  .site-header:has(#creativeEditTrigger:not([hidden])) .header-actions { flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
  .site-header:has(#creativeEditTrigger:not([hidden])) .site-edit-trigger { font-size: 11px; padding: 6px; }
}
@media (max-width: 720px) {
  .relic-banner.visual-banner.has-mobile-layout { position: relative; display: block; width: min(480px, calc(100% - 24px)); height: auto; aspect-ratio: 3/5; padding: 0; margin-inline: auto; container-type: inline-size; }
  .visual-banner.has-mobile-layout [data-relic-part] {
    position: absolute !important; left: var(--mobile-x) !important; top: var(--mobile-y) !important;
    width: var(--mobile-w) !important; height: var(--mobile-h) !important;
    font-size: clamp(9px, calc(var(--mobile-font-scale) * 1cqw), var(--mobile-size)) !important;
    min-height: 0;
  }
  .visual-banner.has-mobile-layout [data-relic-part="carousel"].shape-circle { width: var(--mobile-w) !important; height: var(--mobile-h) !important; }
  .banner-layers .banner-layer.mobile-positioned {
    left: var(--mobile-x) !important; top: var(--mobile-y) !important;
    width: var(--mobile-w) !important; height: var(--mobile-h) !important;
    font-size: clamp(10px, calc(var(--mobile-font-scale) * 1cqw), var(--mobile-size)) !important;
  }
  .banner-layers .banner-layer.mobile-positioned.shape-circle { height: var(--mobile-h) !important; }
}
@media (max-width: 470px) {
  .banner-copy-fields, .banner-font-fields, .banner-logo-controls, .frame-control-grid { grid-template-columns: 1fr; }
  .creative-editor { padding: 18px; }
  .banner-slide-row > img, .banner-slide-row > video { width: 62px; height: 58px; }
}

.banner-version-tools { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.banner-version-tools .editor-secondary { flex: 1 1 125px; min-height: 40px; padding: 8px; font-size: 14px; }
