

* {
  box-sizing: border-box;
}
body {
  font-family: Arial;
  margin: 0;
}
#gtm_logo {
  position: relative;
  width: 95%;
  margin: 7px auto 10px auto; /* top .. right .. bottom .. left */
}
#gtm_logo img	{
  max-width: 65%;
}

/* Main columns... DON'T FORGET You can use WORD-WRAP! https://www.w3schools.com/cssref/css3_pr_word-wrap.asp */

#prod_detail_container {
   position: relative;
   width: 95%;
   /* margin: 50px auto 10px auto; */ /* top .. right .. bottom .. left */
   margin: 0 auto 10px auto; /* top .. right .. bottom .. left */
   padding: 2px;
   border: 1px solid green;

   z-index: 40;
 }
#product_cat_block { /* width commented in ... navbar_middle_mega.css ... because it is controlled here */
   width: 95%;
}
#navbar_top_inner { /* width commented in ... navbar_top_fixed.css ... because it is controlled here */
  width: 95%;
}
 @media only screen and (min-width: 1600px) { /* Bootstrap breakpoints: (down page a bit) https://getflywheel.com/layout/css-breakpoints-responsive-design-how-to/ */
  #gtm_logo, #prod_detail_container, #product_cat_block, #navbar_top_inner, #footer_inner {
    /* .product_cat_block ... is in ... navbar_product_cat.css ... which is set to different width for ... home_page.css */
    width: 70%;
  }
}

/* Breadcrumbs --- START --- */

  /* (Link 2) https://www.w3schools.com/howto/howto_css_breadcrumbs.asp */
  /* (Link 1) https://www.w3schools.com/cssref/css_entities.asp */

ul.breadcrumb {
  padding: 10px 16px;
  list-style: none;
  background-color: #eee;
  border: 1px solid green;
  margin: 5px auto 6px auto; /* top .. right .. bottom .. left */
}
ul.breadcrumb li {
  display: inline;
  font-size: 18px;
}
ul.breadcrumb li+li:before {
  padding: 8px;
  color: black;
  content: "\00BB"; /* ">>" character ... (Link 1 ... from above) https://www.w3schools.com/cssref/css_entities.asp */
}
ul.breadcrumb li a {
  color: #0275d8;
  text-decoration: none;
}
ul.breadcrumb li a:hover {
  color: #F29445;
  text-decoration: underline;
}
ul.breadcrumb li#fixed_text {
  color: #74730E;
}

/* Breadcrumbs --- END --- */

.prod_detail_row, .row_inner { /* .............. https://www.w3schools.com/cssref/tryit.asp?filename=trycss3_justify-content */
  display: -webkit-flex; /* Safari */
 -webkit-justify-content: center; /* Safari 6.1+ */

  display: flex;
  flex-wrap: wrap;
  justify-content: centre;

  padding: 5px;

  /* border: 1px solid red; */
  /* margin-bottom: 5px; */
}
.row_inner { /* ............. Overrides .checkout_row above */
  /* border: none; */
  padding: 5px;
  flex-wrap: nowrap;
}
.spacer_1 {
  min-width: 2.4%;
  /* border: 1px dashed red; */
  margin: 0 5px;
}
.spacer_2 {
  min-width: 1.7%;
  /* border: 1px dashed red; */
  margin-left: 5px;
}
.zoom_spacer {
  min-width: 2.5%;
  /* border: 1px solid red; */
  margin-right: 5px;
}
.prod_detail_col {
  padding: 5px;
  border: 1px solid blue;
  /* width: 50%; */ /* 100% produces same result ... if commented then the images determine the left column to be much larger than the right column */
  margin: 3px;
  margin-bottom: 0;

  width: 510px;
  flex-grow: 1;

  overflow-x: auto;
}
.prod_detail_title {
  padding: 5px;
  margin: 0 0 7px 0; /* top .. right .. bottom .. left */

  /* border: 1px dotted blue; */

  text-align: center;
  text-decoration: underline;
}
h1 {
  color: #3916A2;

  font-size: 24px;
  font-family: arial;
  font-weight: bold;

  margin: 0;
}
#prod_description_container {
  padding: 3px;
  border: 1px solid green;
  margin-top: 15px;
}
p:first-of-type {
  margin-top: 6px;
}
p:last-of-type {
  margin-bottom: 6px;
}
p {
  margin: 10px;
}
#prod_description_heading_div {
  padding: 4px 13px 4px 13px; /* top .. right .. bottom .. left */
  margin-bottom: 3px;

  /* border: 1px solid blue; */
}
h2#prod_description_heading {
  font-size: 20px;
  text-decoration: underline;
  color: #017b05;
  margin: 0;
}
#prod_description_text {
  font-size: 16px;
  font-family: arial;

  padding: 3px;
  /* border: 1px solid orange; */
}
#prod_description_text li {
  color: #CE7403;
  margin-bottom: 15px;
  line-height: 1.75;  /* list-style: none; */ /* gets rid of bullet points */
}
#prod_description_text li span {
  color: black;
  line-height: 1.75;  /* list-style: none; */ /* gets rid of bullet points */
}

/* Product Image & Thumbnails --- START --- */

.product_thumbnail {
  border: 1px solid black;
  padding: 5px;
  width: 20%;
  z-index: 35; /* 35 & 40 ... "product_thumbnail" = child of = "row_inner" ... "Z" is simply relative to: parent container */

  min-height: 175px; /* 2024 thumbnail scrollbar... in JS (see JS notes) you've added: "my_image.complete" and "my_image.onload", because without them... */
                     /* product_thumbnail could load with 0 height if JS computed it before "myimage" had finished loading. Therefore this acted as a... */
  overflow-y: auto;  /* backup by keeping the height at a reasonable minimum value. However, I've decided to leave this min-height: 175px enabled anyway */
}
.thumbnail_box {
  /* border: 1px solid blue; */ /* Reduces image with by 1px ... which scales height accordingly ... resulting in white region at bottom of image = All Normal! */
  padding: 2px;
  margin-bottom: 10px;
}
.thumbnail_box img {
  width: 100%; /* sets (restricts) the image to its container size ... else it's massive and covers the screen */
  opacity: 1.0;
  transition: 0.5s ease;
}
.thumbnail_box img:hover { /* scaling or border requires stacking contexts */
               /* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context */
               /* https://stackoverflow.com/questions/20851452/z-index-is-canceled-by-setting-transformrotate */
  opacity: 0.75;
  /* border: 1px solid red; */
  -ms-transform: scale(1.02); /* IE 9 */
  -webkit-transform: scale(1.02); /* Safari prior 9.0 */
  transform: scale(1.02); /* Standard syntax */ /* https://stackoverflow.com/questions/20851452/z-index-is-canceled-by-setting-transformrotate */
}
.img-zoom-container {
  position: relative;
  width: 80%;
  z-index: 40; /* 35 & 40 ... "img-zoom-container" = child of = "row_inner" ... "Z" is simply relative to: parent container */
}
.img-zoom-container img {
  /* border-radius: 8px; */
  max-width: 100%;

  -ms-transform: scale(1.0); /* IE 9 */
  -webkit-transform: scale(1.0); /* Safari 3-8 */
  transform: scale(1.0);
  transition: .5s ease;
}

/* Product Image & Thumbnails --- END --- */

.options_container {
  padding: 10px;
  border: 1px solid gray;
  margin-bottom: 15px;
}
.dropdown_container {
  margin-bottom: 5px;
}
select {
  /* display: inline-block... Not needed... window.getComputedStyle(size, null).getPropertyValue("display") reports: "[object HTMLSelectElement]" */
  width: 100%;
  padding: 7px 15px;
  margin: 8px 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 15px;
}
.dropdown_heading {
  text-decoration: underline;
}
.table_container {
  padding: 10px;
  /* border: 1px solid gray; */
  overflow-x: auto; /* Not really required because flex responsiveness already moves column to next row down */

  transition: 0.5s;
}
#proportional_discount_div {
  /* border: 1px solid gray; */
  margin: 0 0 20px 0; /* top .. right .. bottom .. left */
  text-align: center;
}
#discount_message_span {
  color: green;
}
table#prod_detail_tbl {
  width:100%;
  font-size: 11px; /* changed to 13px for larger than 700px wide viewport in @media further down */
  font-family: Arial;
  margin-bottom: 17px;
}
table#prod_detail_tbl, table#prod_detail_tbl th, table#prod_detail_tbl td {
  border: 1px solid gray;
  border-collapse: collapse;
}
table#prod_detail_tbl th, table#prod_detail_tbl td {
  padding: 5px 5px 5px 5px; /* changed for larger than 700px wide viewport in @media further down */
  text-align: left;
}
.main_heading {
  color: #8B008B;
  font-size: 15px;
  font-style: italic;
  text-decoration: underline;
  margin: 0;
}
.data_title {
  color: #336BB1;
  font-size: 13px;
  text-decoration: underline;
  margin: 0;
}
table#prod_detail_tbl tr:nth-child(1) td {
  background-color: #F5F5F5;
}
table#prod_detail_tbl tr:nth-child(1n + 2) td {
  background-color: #FEFEFD;
}
table#prod_detail_tbl tr:nth-child(1n + 2) th {
  background-color: #FDFDFE;
}
table#prod_detail_tbl tr:nth-child(7) td {
  background-color: #F5F5F5;
}
.qty_price_div {
  margin: 0 auto 20px 20px; /* top .. right .. bottom .. left */
}
#enter_qty, #product_code {
  color: green;
  font-style: none;
  text-decoration: none;
}
#kit_price_span, #kit_price {
  color: #C93E3E;
  font-size: 19px;
  font-style: italic;
  /*font-weight: bold;*/
  text-decoration: underline;
}
#kit_price_span { margin-left: 10px; }

.submit_button { /* https://www.w3schools.com/howto/howto_css_animate_buttons.asp */
  width: 100%;
  border: 1px solid gray;
  border-radius: 4px;
  background-color: #4CAF50;

  margin-bottom: 15px;

  color: #FFFFFF;
  text-align: center;
  font-size: 17px;
  padding: 10px;

  transition: all 0.5s;
  cursor: pointer;
}
.submit_button:hover {
  background-color: #d88838;
}
.submit_button span {
  cursor: pointer;
  display: inline-block; /* somehow corrects vertical alignment discrepancy of ">>" character */
  position: relative;
  transition: padding-right 0.5s; /* transition all ... to also slowly change colour*/
}
.submit_button:hover span {
  padding-right: 25px; /* Magic!: moves "Submit" text left ... padding does effect document flow ... even when position is: absolute ... */
}
.submit_button span::after {
  content: '\00bb';
  position: absolute; /* like for zoom-image ... this stops this! element from effecting the document flow ... so keeps "Submit" text in the middle */
  opacity: 0;					/* But! see how padding below ... does its Magic! */
  top: 0;
  right: -20px; /* offsets ">>" character to the right side of span ... "+" = to the left ... "-" = to the right ... a bit strange */
  transition: right 0.5s; /* transition all ... to also slowly change colour*/
}
.submit_button:hover span::after {
  opacity: 1;
  right: 0; /* moves ">>" character left */
}
.info_link_container {
  padding: 5px 25px 5px 25px; /* top .. right .. bottom .. left */

  /*padding: 5px;*/
  /* border: 1px solid blue; */
  /* width: 50%; */ /* 100% produces same result ... if commented then the images determine the left column to be much larger than the right column */
  margin: 0 10px 0 10px; /* top .. right .. bottom .. left */

  width: 250px;
  flex-grow: 1;
}
.info_link_button {
  width: 100%;
  background-color: #436595;
  color: white;
  padding: 14px 20px;
  margin: 8px 0;
  border: 3px solid #16d0d0;
  border-radius: 4px;
  cursor: pointer;
  font-size: 24px;
  /* box-shadow: 5px 5px 8px blue, 10px 10px 8px red, 15px 15px 8px green; */
  transition: 0.5s;
}
.info_link_button:hover {
  background-color: #d07316;
}

/* Responsive @media CSS */

@media only screen and (min-width: 700px)	{
  table#prod_detail_tbl {
    font-size: 13px;
  }
  table#prod_detail_tbl th, table#prod_detail_tbl td {
    padding: 7px 5px 7px 10px; /* top .. right .. bottom .. left */
  }
}