/*
Theme Name: CustomTable Configurator
Description: Minimal full-screen theme for the CustomTable.eu configurator.
Version: 1.0.9
Text Domain: customtable-configurator
*/

:root {
  color-scheme: light;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: #fff;
}

/* Keep the standalone configurator on one deliberate Latin typeface even
   when the engine injects its own font rules after the theme stylesheet. */
html body #ipm-root,
html body #ipm-root #ipm-app,
html body #ipm-root .ipm-right,
html body #ipm-root button,
html body #ipm-root input,
html body #ipm-root select,
html body #ipm-root textarea {
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif !important;
}

body {
  overflow-x: hidden;
  color: #3f382f;
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

button,
input,
select,
textarea {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

img {
  height: auto;
  max-width: 100%;
  border-style: none;
}

#ipm-app h1,
#ipm-app h2,
#ipm-app h3,
#ipm-app h4,
#ipm-app h5,
#ipm-app h6,
#ipm-app p {
  margin-block-start: 0;
}

/* Recreate the layout/reset normally supplied by Hello Elementor. */
@media (min-width: 901px) {
  #ipm-root .ipm-configurator-layout {
    grid-template-columns: minmax(0, 62%) minmax(0, 38%) !important;
    width: 100vw !important;
    max-width: none !important;
        height: calc(100dvh - 50px) !important;
        min-height: 640px !important;
    max-height: none !important;
  }

  #ipm-root .ipm-left,
  #ipm-root .ipm-right,
  #ipm-root .ipm-scene {
    height: 100% !important;
  }
}

#ipm-app .ipm-step-header {
  display: flex !important;
  align-items: center !important;
  min-height: 54px !important;
  font-weight: 500 !important;
}

#ipm-app .ipm-step-title {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  min-width: 0 !important;
  white-space: normal !important;
}

#ipm-app .ipm-step-summary {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#ipm-app .ipm-diagram-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

#ipm-app .ipm-diagram-option {
  min-height: 130px !important;
  justify-content: center !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  border-radius: 14px !important;
}

#ipm-app .ipm-diagram-label {
  display: flow-root !important;
  min-height: 0 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
}

#ipm-app button {
  font-family: inherit !important;
}

/* .ipm-right is a sibling of #ipm-app, not its child. Keep every control
   inside the right column, including the top action row. */
html body #ipm-root .ipm-right {
  padding: 22px 20px 32px !important;
  overflow-x: hidden !important;
}

html body #ipm-root .ipm-top-actions {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  grid-template-columns: minmax(0, 0.96fr) minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 10px !important;
  border: 0 !important;
  box-sizing: border-box !important;
}

html body #ipm-root .ipm-top-actions > * {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

html body #ipm-root div.ipm-right div.ipm-top-actions > button#ipm-generate-pdf.ipm-pdf-btn,
html body #ipm-root div.ipm-right div.ipm-top-actions > button#ipm-copy-link {
  padding-inline: 10px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  letter-spacing: 0.01em !important;
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif !important;
  font-weight: 400 !important;
}

html body #ipm-root .ipm-top-actions > #ipm-price {
  padding-inline: 10px !important;
  font-family: inherit !important;
  font-size: 22px !important;
  font-weight: 600 !important;
}

#ipm-app .ipm-steps {
  display: block !important;
  position: relative !important;
}

#ipm-app .ipm-step {
  position: relative !important;
  padding: 0 44px 0 4px !important;
}

#ipm-app .ipm-step::after {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  top: 50% !important;
  right: 16px !important;
  display: block !important;
  width: 9px !important;
  height: 9px !important;
  border-right: 2px solid #315b38 !important;
  border-bottom: 2px solid #315b38 !important;
  pointer-events: none !important;
  transform: translateY(-70%) rotate(45deg) !important;
  transform-origin: center !important;
  transition: transform 0.18s ease !important;
}

#ipm-app .ipm-step.active::after {
  transform: translateY(-25%) rotate(225deg) !important;
}

/* Each panel already supplies its own separator. Remove only the two outer
   rules that visually frame the five-step list. */
html body #ipm-root #ipm-app .ipm-steps,
html body #ipm-root #ipm-app .ipm-panel:first-child {
  border-top: 0 !important;
}

html body #ipm-root #ipm-app,
html body #ipm-root #ipm-app .ipm-steps {
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

html body #ipm-root #ipm-app::before,
html body #ipm-root #ipm-app::after,
html body #ipm-root #ipm-app .ipm-steps::before,
html body #ipm-root #ipm-app .ipm-steps::after {
  content: none !important;
  display: none !important;
}

html body #ipm-root div.ipm-right #ipm-app div.ipm-steps > div.ipm-panel:last-child,
html body #ipm-root div.ipm-right #ipm-app div.ipm-steps > div.ipm-panel:last-child > div.ipm-step {
  border-bottom-width: 0 !important;
  border-bottom-style: none !important;
  border-bottom-color: transparent !important;
}

/* The engine outputs a real HR between the action row and the accordion. */
html body #ipm-root div.ipm-right > hr,
html body #ipm-root div.ipm-right hr {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

#ipm-app .ipm-step-number {
  font-weight: 600 !important;
}

#ipm-app .ipm-panel-body {
  position: relative !important;
}

html body #ipm-root #ipm-app .ipm-panel-body button.ipm-option:not(.icon):not(.ipm-diagram-option):not(.ipm-leg-model-option) {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 84px !important;
  min-height: 44px !important;
  margin: 6px 10px 6px 0 !important;
  padding: 9px 15px !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
}

html body #ipm-root #ipm-app button.ipm-option,
html body #ipm-root #ipm-app .ipm-leg-model-option,
html body #ipm-root #ipm-app .ipm-swatch-label {
  font-size: 15px !important;
  line-height: 1.25 !important;
}

/* Clear type hierarchy: step title > subsection title > option. */
#ipm-app .ipm-step-title {
  font-size: 18px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}

#ipm-app .ipm-step-summary {
  font-size: 15px !important;
  line-height: 1.35 !important;
  font-weight: 400 !important;
}

#ipm-app .ipm-panel-body > strong {
  display: inline-block !important;
  margin: 4px 0 3px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}

/* The engine marks unavailable combinations with .disabled rather than the
   native disabled attribute. Make that state unmistakable without changing
   any availability rule. */
#ipm-app button.ipm-option.disabled,
#ipm-app button.ipm-option:disabled,
#ipm-app button.ipm-option[aria-disabled="true"] {
  color: #a8a39d !important;
  background: #f1f0ee !important;
  border-color: #dedbd6 !important;
  opacity: 0.48 !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

.customtable-main,
.customtable-content {
  width: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
}

.customtable-content > * {
  max-width: none;
  margin-block: 0;
}

body.admin-bar .customtable-main {
  min-height: calc(100vh - 32px);
}

@media (max-width: 782px) {
  body.admin-bar .customtable-main {
    min-height: calc(100vh - 46px);
  }
}
