.builder-block { --builder-size: initial; --builder-mobile-size: initial; --builder-padding: initial; --builder-mobile-padding: initial; --builder-default-padding: 0px; box-sizing: border-box; font-size: var(--builder-size, inherit); overflow-wrap: anywhere; }
.builder-section-inner, .builder-column, .builder-card { display: flex; flex-direction: column; gap: inherit; min-width: 0; }
.builder-section { --builder-default-padding: 48px; padding-block: 48px; }
.builder-section-inner { gap: inherit; }
.builder-columns { display: grid; grid-template-columns: repeat(var(--builder-columns, 2), minmax(0, 1fr)); gap: 24px; }
.builder-heading { --builder-default-size: clamp(28px, 4vw, 48px); font-family: var(--font-display); font-weight: 600; font-size: var(--builder-size, var(--builder-default-size)); margin: 0; line-height: 1.15; }
.builder-text { line-height: 1.7; }
.rich-line + .rich-line { margin-top: .5em; }
.rich-marker { display: inline-block; min-width: 1.25em; }
.builder-rich { --builder-size: initial; --builder-mobile-size: initial; font-size: var(--builder-size, inherit); white-space: pre-wrap; }
.builder-rich a, .builder-text a { text-decoration: underline; text-underline-offset: 3px; }
.builder-rich[style*="text-align"] { display: block; width: 100%; }
.builder-image { margin: 0; object-fit: cover; }
.builder-image img { width: 100%; display: block; border-radius: inherit; max-height: 600px; object-fit: inherit; }
.builder-button { display: inline-flex; width: fit-content; color: var(--on-primary); font-weight: 600; }
.builder-card { --builder-default-padding: 28px; background: var(--paper); padding: 28px; border-radius: 18px; gap: 16px; }
.builder-card-title { font-size: var(--builder-size, 24px); font-weight: 600; }
.builder-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(160px,100%), 1fr)); gap: 16px; object-fit: cover; }
.builder-gallery img { display: block; width: 100%; aspect-ratio: 1; object-fit: inherit; border-radius: inherit; }
.builder-testimonial { --builder-default-padding: 28px; margin: 0; padding: 28px; border-left: 3px solid var(--lime); background: var(--paper); }
.builder-testimonial cite { display: block; font-size: .85em; margin-top: 20px; color: var(--ink-soft); }
.builder-faq details { padding: 18px 0; border-bottom: 1px solid var(--line); }
.builder-faq summary { cursor: pointer; font-weight: 600; }
.builder-faq details > div { margin-top: 14px; line-height: 1.6; }
.builder-divider { border: 0; border-top: 1px solid var(--line); width: 100%; }
@media (min-width: 701px) { .builder-hide-desktop { display: none !important; } }
.editor-preview [data-builder-id] { cursor: pointer; }
.editor-preview [data-builder-id]:hover { outline: 1px dashed var(--lime); outline-offset: 4px; }
.editor-preview .builder-empty { border: 1px dashed var(--line); padding: 30px; color: var(--ink-soft); font-size: 14px; text-align: center; }
@media (max-width: 700px) {
  .builder-block, .builder-rich { font-size: var(--builder-mobile-size, var(--builder-size, var(--builder-default-size, inherit))) !important; }
  .builder-block { padding: var(--builder-mobile-padding, var(--builder-padding, var(--builder-default-padding))) !important; }
  .builder-columns { grid-template-columns: 1fr; }
  .builder-hide-mobile { display: none !important; }
}
.canvas-styled, .builder-block { --canvas-x: 0px; --canvas-y: 0px; translate: var(--canvas-x) var(--canvas-y); }
.canvas-styled { --builder-size: initial; --builder-mobile-size: initial; --builder-padding: initial; --builder-mobile-padding: initial; }
.canvas-styled:is(span,strong,em,small,cite,a,label) { display: inline-block; }
.canvas-styled.anime-effect, .builder-block.anime-effect { translate: calc(var(--motion-x, 0px) + var(--canvas-x)) calc(var(--motion-y, 0px) + var(--canvas-y)); }
.builder-reference { display: contents; }
[data-canvas-relocated] { position: relative !important; inset: auto !important; transform: none !important; grid-area: auto !important; max-width: 100%; min-width: 0; }
.canvas-outline { position: fixed; border: 2px solid #c43a32; pointer-events: none; z-index: 2147483000; border-radius: 2px; }
.canvas-toolbar { position: fixed; display: flex; gap: 2px; align-items: center; max-width: calc(100vw - 8px); background: #2c3e57; color: #fffaf4; border-radius: 5px; padding: 4px; box-shadow: 0 4px 16px #0003; z-index: 2147483001; font: 12px/1.2 "Segoe UI",Arial,sans-serif; }
.canvas-toolbar button { color: #fffaf4; background: transparent; border: 0; border-radius: 3px; padding: 6px 8px; cursor: pointer; font: inherit; white-space: nowrap; }
.canvas-toolbar button:hover { background: #ffffff25; }
.canvas-toolbar button:disabled { opacity: .35; cursor: default; }
.canvas-toolbar .canvas-move-handle { cursor: grab; font-size: 18px; padding-block: 3px; }
.canvas-toolbar .canvas-position-handle { cursor: move; touch-action: none; font-size: 18px; padding-block: 3px; }
.canvas-selection-label { max-width: 135px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; margin-right: 5px; }
.canvas-resize-handle { width: 13px; height: 13px; border: 2px solid white; background: #c43a32; position: absolute; bottom: -7px; right: -7px; padding: 0; cursor: nwse-resize; pointer-events: auto; touch-action: none; }
.canvas-drop-marker { position: fixed; background: #c43a32; z-index: 2147483002; pointer-events: none; border-radius: 2px; }
.canvas-drop-marker.canvas-drop-inside { background: #c43a3212; border: 2px dashed #c43a32; }
.canvas-editing [data-canvas-id], .canvas-editing [data-builder-id] { cursor: pointer; }
.canvas-editing [data-canvas-id]:hover { outline: 1px dashed #c43a3270; outline-offset: 3px; }
.canvas-inline-editing { outline: 2px solid #e9b7c0 !important; outline-offset: 3px; cursor: text !important; min-width: 20px; white-space: pre-wrap; }
.canvas-inline-editing > div { margin: 0; }
.canvas-editing .course-card:not(.is-flipped) .course-card-front { transform: rotateY(0deg); opacity: 1; visibility: visible; }
.canvas-editing .course-card:not(.is-flipped) .course-card-back { transform: rotateY(-90deg); opacity: 0; visibility: hidden; }
@media (max-width: 700px) {
  .canvas-styled[style*="--builder-mobile-size"] { font-size: var(--builder-mobile-size) !important; }
  .canvas-styled[style*="--builder-mobile-padding"] { padding: var(--builder-mobile-padding) !important; }
  .canvas-selection-label { display: none; }
}
