.zy1002_S2_box {
  display: flex;
  flex-direction: row;
  gap: 15px;
  align-items: stretch;
  min-height: 96svh;
  height: 96svh;
}

@media (max-width: 1200px) {
  .zy1002_S2_box {
    display: flex;
    flex-direction: column;
    gap: 15px;
    min-height: 0;
    height: auto;
  }
}

/* Menu layout (align with 1001) */
.zy1002_menu_container {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.zy1002_menu_step {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.zy1002_menu_step_label {
  line-height: 1.3;
  font-size: clamp(0.95rem, 1.2vw, 1.05rem);
}

.zy1002_menu_step_field {
  display: block;
  min-width: 0;
}

.zy1002_menu_input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: clamp(5px, 1.1vw, 8px) clamp(8px, 1.6vw, 12px);
  border: 1px solid #333333;
  border-radius: 5px;
  font-size: clamp(0.95rem, 1.1vw, 1rem);
  line-height: 1.1;
  min-height: 32px;
}

.zy1002_S1_title_inputs {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* End buttons: keep 1002 aligned like 1001 regardless of wrapping */
.zy1002_btn_ending_container {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  width: 100%;
}

.zy1002_btn_ending_container .zytool_btn_ending,
#zy1002_btn_generate_worksheet,
#zy1002_btn_download_worksheet,
#zy1002_btn_download_answers {
  flex: 0 0 200px;
  width: 200px;
  max-width: 200px;
  min-width: 200px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.15;
}

/**/
/**/
/**/
/**/
/**/

/* verberg opties cross-browser */
#zy1002_S3_selector_new option[hidden],
#zy1002_S3_selector_new option[disabled] {
  display: none;
}

/* A4 preview container (pdf viewer) */
.zy1002_worksheet_container {
  display: flex;
  flex-direction: column;
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 0;
  flex: 1 1 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
  box-sizing: border-box;
}
.zy1002_worksheet_container .zy_pdf_viewer,
.zy1002_worksheet_container .zy_pdf_canvas_wrap {
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 0;
}
.zy1002_worksheet_container .zy_pdf_canvas_wrap {
  overflow: auto;
  flex: 1 1 auto;
}
#zy1002_worksheet_preview {
  display: block;
  width: auto;
  height: auto;
  background-color: white;
}

.zy1002_worksheet_container .zy_pdf_btn {
  background: #d9d9d9;
  border-color: #b5b5b5;
  color: #1a1a1a;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}
.zy1002_worksheet_container .zy_pdf_btn:hover,
.zy1002_worksheet_container .zy_pdf_btn:focus,
.zy1002_worksheet_container .zy_pdf_btn:active {
  background: #e5e5e5;
  color: #1a1a1a;
}
.zy1002_worksheet_container .zy_pdf_btn:focus-visible {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35);
}
.zy1002_worksheet_container .zy_pdf_btn_icon {
  filter: brightness(0);
}

/* Elementor widget wrapper fix */
.elementor-widget-html .zy1002_worksheet_container {
  width: 100%;
  max-width: none;
  min-height: 0;
}

@media (max-width: 1200px) {
  .elementor-widget-html .zy1002_worksheet_container {
    height: auto;
    max-height: none;
  }
}

.zy1002_S3_calc_container {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.zy1002_S3_calc_box {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.zy1002_S3_calc_set_title {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
}
.zy1002_S3_calc_set_body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.zy1002_S3_calc_set {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.zy1002_S3_btn_main {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;

  background-color: #2f5ea3;
  color: #f7d9a0;
  border: none;
  border-radius: 10px;
  padding: 12px;
  font-size: 17px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition:
    transform 0.02s ease-in-out,
    box-shadow 0.02s ease-in-out,
    background-color 0.2s;
}
.zy1002_S3_btn_main:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
  background-color: #3a6db8;
}
.zy1002_S3_btn_main:focus {
  background-color: #3a6db8;
  color: #fdf5e3;
}

.zy1002_S3_calc_box_sub {
  display: flex;
  flex-direction: column;
}

.zy1002_S3_calc_box_sub_title {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  font-size: 80%;
}
.zy1002_S3_calc_box_sub_set {
  display: flex;
  justify-content: space-between;
  gap: 5px;
  flex-wrap: wrap;
}

.zy1002_S3_btn_sub {
  width: 150px;
  background-color: #f4f6fb;
  color: #1f2d3d;
  border: none;
  border-radius: 8px;
  padding: 12px;
  font-weight: 600;
  cursor: pointer;
  transition:
    transform 0.02s ease-in-out,
    box-shadow 0.02s ease-in-out,
    background-color 0.15s;
}
.zy1002_S3_btn_sub:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
  background-color: #e6ebf7;
}
.zy1002_S3_btn_sub:focus {
  background-color: #e6ebf7;
}

@media (max-width: 1850px) {
  .zy1002_S3_calc_set_body {
    display: flex;
    flex-direction: column;
  }
}

.zy1002_S4A_row {
  display: grid;
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr) minmax(0, 1.2fr);
  gap: clamp(10px, 2vw, 16px);
}

select[data-zy-select],
.zy1002_menu_step_field select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: clamp(4px, 1vw, 7px) clamp(8px, 1.6vw, 12px);
  font-size: clamp(0.88rem, 1vw, 0.96rem);
  line-height: 1.1;
  min-height: 32px;
}

/* Custom dropdown (zy_select) overrides for tool 1002 */
.zy1002_menu_container .zy_select_wrapper {
  font-size: clamp(0.88rem, 1vw, 0.96rem);
}
.zy1002_menu_container .zy_select_wrapper .zy_select_display {
  padding: clamp(4px, 1vw, 7px) clamp(8px, 1.6vw, 12px);
  line-height: 1.1;
  min-height: 32px;
}
.zy1002_menu_container .zy_select_label {
  line-height: 1.1;
}
.zy1002_menu_container .zy_select_arrow {
  font-size: 18px;
  line-height: 1;
}
.zy1002_menu_container .zy_select_option {
  padding: 4px 10px;
  line-height: 1.15;
}
.zy1002_menu_container .zy_select_list {
  max-height: 220px;
}

@media (max-width: 900px) {
  .zy1002_menu_step_label {
    font-size: clamp(0.95rem, 3.2vw, 1.05rem);
  }
  .zy1002_S4A_row {
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .zy1002_menu_container {
    gap: 10px;
  }
  .zy1002_menu_step {
    gap: 4px;
  }
  .zy1002_S1_title_inputs {
    gap: 6px;
  }
  .zy1002_S4A_row {
    grid-template-columns: minmax(0, 1fr);
  }
}

/**/
/**/
/**/
/**/
/**/

/**/
/**/
/**/
/**/
/**/

#zy1002_worksheet_preview {
  background-color: white;
}

/**/
/**/
/**/
/**/
/**/

/**/
/**/
/**/
/**/
/**/

.zy1002_S5_calc_container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Alleen actieve S5-sectie tonen */
.zy1002_S5_calc_box {
  display: none;
  flex-direction: column;
  gap: 5px;
}
.zy1002_S5_calc_box.is-active {
  display: flex;
}

/**/

/* S5 layout: main button links, subknoppen rechts, sets onder elkaar */
.zy1002_S5_calc_set_box {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap; /* breekt vanzelf als de container te smal is */
  align-items: stretch;
  gap: 5px;
  container-type: inline-size; /* maakt container-query op eigen breedte mogelijk */
}
.zy1002_S5_calc_box_main {
  flex: 0 1 clamp(130px, 24vw, 170px);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.zy1002_S5_calc_box_sub {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/**/

.zy1002_S5_calc_box_title {
  display: flex;
  font-size: clamp(0.95rem, 1.2vw, 1.05rem);
  line-height: 1.3;
}

/**/

.zy1002_S5_btn_main {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: 100%;
  padding: clamp(8px, 1.4vw, 12px);
  min-height: clamp(38px, 6.2vw, 54px);
  font-size: clamp(0.9rem, 2.1vw, 1.05rem);
  line-height: 1.15;
  background-color: #557aaf;
  color: #f5ce95;
  border: 1px solid black;
}
.zy1002_S5_btn_main:hover {
  background-color: #ffdb9d;
  color: #333333;
}
.zy1002_S5_btn_main:focus {
  background-color: #ffdb9d;
  color: #333333;
}

/**/

.zy1002_S5_calc_box_sub_set {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  gap: clamp(5px, 1vw, 5px);
  width: 100%;
}

.zy1002_S5_btn_sub {
  min-width: 92px;
  min-height: clamp(24px, 4.6vw, 32px);
  padding: clamp(3px, 0.9vw, 6px) clamp(5px, 1.2vw, 8px);
  max-width: 220px;
  background-color: #c0e3f8;
  color: #333333;
  border: 1px solid black;
  font-size: clamp(0.7rem, 1.3vw, 0.88rem);
  line-height: 1.15;
}
.zy1002_S5_btn_sub:hover {
  background-color: #ffefd4;
  color: #333333;
}
.zy1002_S5_btn_sub:focus {
  background-color: #ffefd4;
  color: #333333;
}

/* Breek op basis van containerbreedte, niet viewport */
@container (max-width: 360px) {
  .zy1002_S5_calc_set_box {
    flex-direction: column;
  }
  .zy1002_S5_calc_box_main,
  .zy1002_S5_calc_box_sub {
    flex: 1 1 100%;
    width: 100%;
  }
  .zy1002_S5_btn_sub {
    min-width: 100%;
    max-width: 100%;
  }
}
/* Tablet-optimalisaties */
@media (max-width: 1024px) {
  .zy1002_worksheet_container {
    max-height: 80vh;
    max-width: 100%;
  }
}

/* S5 set boxes breken pas volledig onder smalle containerbreedte */
@media (max-width: 360px) {
  .zy1002_S5_calc_set_box {
    flex-direction: column;
  }
  .zy1002_S5_calc_box_main {
    flex: 1 1 100%;
  }
  .zy1002_S5_calc_box_sub {
    flex: 1 1 100%;
    width: 100%;
  }
  .zy1002_S5_btn_sub {
    min-width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .zy1002_S5_btn_sub {
    min-width: 100%;
    max-width: 320px;
    padding: 10px 12px;
  }
  .zy_select_wrapper {
    max-width: 100%;
  }
}
