/* Frontend */
.alignfull {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  text-align: center;
}
@media (min-width: 920px) {
  .alignwide {
    margin: 32px calc( ( 767px - 920px ) / 2 );
    width: auto;
  }
}
@media (max-width: 919px) {
  .alignwide {
    margin: 32px calc(50% - 50vw);
    max-width: 100vw;
    width: 100vw;
  }
}

/* -----------------------------------------------------------------------------  icons */
span.icon {
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
}
.small i.tbico { font-size: 20px; }
.medium i.tbico { font-size: 40px; }
.large i.tbico { font-size: 60px; }

.tb-icon-wrapper.align-left {
  float: left;
  margin-right: 0.5em;
}
.tb-icon-wrapper.align-right {
  float: right;
  margin-left: 0.5em;
}
.tb-icon-wrapper.align-center {
  display: flex;
  justify-content: center;
}

/* Custom Icons */
.tb-icon-wrapper,
.tb-svg-wrapper {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
}
.tb-svg-wrapper.align-left {
    float: left;
    margin-right: 0.5em;
}
.tb-svg-wrapper.align-right {
    float: right;
    margin-left: 0.5em;
}
.tb-svg-wrapper.align-center {
    display: block;
    width: 100%;
    text-align: center;
    margin: 0.5em 0;
}
.tb-svg {
    display: inline-flex;
    align-items: center;   /* vertical alignment with text */
    justify-content: center;
    width: auto;
    height: auto;
}
.tb-svg svg {
    display: block;
    max-width: 100%;
    height: auto;
}


/* ----------------------------------------------------------------------------- Alert box */
.alert {
  padding: 30px;
  border-radius: 15px;
  margin: 15px 0;
  position: relative;
  color: #fff;
}

.alert-success {
  background-color: #d4edda;
  color: #2f5d3a;
  border: 1px solid #b7dbc2;
}

.alert-info {
  background-color: #d1ecf1;
  color: #1b4f5d;
  border: 1px solid #b6dbe3;
}

.alert-warning {
  background-color: #fff3cd;
  color: #5f4c1b;
  border: 1px solid #f0deb5;
}

.alert-danger {
  background-color: #f8d7da;
  color: #742a2f;
  border: 1px solid #e8b7bc;
}

.alert .close-alert {
  position: absolute;
  top: 8px;
  right: 4px;
  margin: 0!important;
  border: none;
  cursor: pointer!important;
  background: url(../images/close.svg) no-repeat 50% 50%;
  background-size: 20px 20px;
  width: 30px;
  height: 30px;
  -webkit-transition: .2s;
  -moz-transition: .2s;
  -o-transition: .2s;
  -ms-transition: .2s;
  transition: .2s;
}

.alert .close-alert:hover,
.alert .close-alert:active {
  background: url(../images/close.svg) no-repeat 50% 50%!important;
  background-size: 25px 25px;
  -webkit-transition: .2s;
  -moz-transition: .2s;
  -o-transition: .2s;
  -ms-transition: .2s;
  transition: .2s;
}
/* -----------------------------------------------------------------------------  Accordion */
.accordion {
  margin-top: 40px;
  box-shadow: 0 0 15px 0 rgb(0, 0, 0, 0.1);
  padding: 0!important;
  overflow: hidden;
  border-radius: 15px;
  transition: all 0.35s;
  margin-bottom: 30px;
}
.accordion:hover {
	box-shadow: 0 0 30px 0 rgb(0,0,0,0.1);
	transition: all 0.35s;
}
.accordion-item {
	padding: 0;
}
.accordion-header {
  background: #9b9793;
  color: #fff !important;
  border-radius: 2px !important;
  margin: 0 !important;
  padding-left: 30px !important;
  font-family: "Manrope";
  line-height: 60px !important;
  font-size: 18px;
  border-bottom: 1px solid #fefefe!important;
  font-weight: 300 !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
}
.accordion-header:hover,
.accordion-header:focus {
  background: #9b9793;
  color: #fff !important;
}
.accordion-header:active {
  background:#c9c4bf!important;
  color:#181818;
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 0!important;
}
.accordion-inner {
  display: inline-block;
  width: 100%;
  padding: 30px;
  text-align: left;
  color: #62615f;
  font-size: 16px;
}
.accordion-header i {
    color: #62615f;
    transform: rotate(0deg);
    font-size: 30px;
}
.accordion-header .fas {
    transition: transform 0.3s ease;
}
.accordion-header.active .fas {
    transform: rotate(180deg);
}





/* ----------------------------------------------------- Tabs */
/*
.tab-buttons {
    padding: 0 10px;
    box-sizing: border-box;
    border-bottom: 1px solid #3e3935;
}
@media (min-width: 850px) {
    .tab-buttons {
        display: flex;
        justify-content: space-between;
        flex-wrap: nowrap;
    }
}
button.tab-button {
    padding: 20px 20px 15px;
    border-radius: 0;
    background: none;
    box-shadow: none !important;
    outline: none;
    border-top: none;
    border-left: none;
    border-right: none;
    margin-bottom: -1px;
    color: #9b9793;
    border-bottom: 3px solid #c3740900;
    transition: all ease-in-out 0.3s;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12px;
    font-weight: bold;
}
button.tab-button.active,
button.tab-button:hover {
    border-bottom: 3px solid #c37409;
    transition: all ease-in-out 0.3s;
}

.tab-content {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}
*/

/* -----------------------------------------------------------------------------  Tabs */
.tab-buttons {
    padding: 0 10px;
    box-sizing: border-box;
    border-bottom: 1px solid #3e3935;
    display: flex;
    gap: 10px;
}
button.tab-button {
    padding: 12px 20px;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 12px;
    color: #9b9793;
    transition: border-color 0.3s ease;
}
button.tab-button.active,
button.tab-button:hover {
    border-bottom: 3px solid #c37409;
    color: #c37409;
}
.tab-content {
    display: none;
    padding: 15px 10px;
}
.tab-content[hidden] {
    display: none;
}
.tab-content:not([hidden]) {
    display: block;
}

/* -----------------------------------------------------------------------------  Counter */
.tb-counter-wrapper {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  margin: 10px 0;
}
.tb-counter-number {
  position: absolute;
  width: 100%;
  text-align: center;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  font-weight: bold;
}

/* -----------------------------------------------------------------------------  Columns */
/* Grid wrapper */
.tb-columns {
    display: grid;
    grid-template-columns: repeat(12, 1fr); /* 12 equal columns */
    gap: var(--tb-gap, 20px);
    align-items: var(--tb-align, start); /* start | center | end */
    box-sizing: border-box;
}
@media (max-width: 575px) {
    .tb-columns {
        column-gap: 0;
    }
}
/* Default each item spans full width on extra-small screens (stack) */
.tb-columns .tb-column {
    box-sizing: border-box;
    grid-column: span 12; /* mobile-first: stack */
    width: 100%;
}

/* ---------- Non-responsive predefined behavior is handled inline by PHP:
   <div class="tb-column" style="grid-column: span N;"> ... </div>
   so no additional CSS needed for those. ---------- */

/* ---------- Responsive utility classes ---------- */
/* sm: 576px and up */
@media (min-width: 576px) {
    .tb-columns .tb-col-sm-1  { grid-column: span 1;  }
    .tb-columns .tb-col-sm-2  { grid-column: span 2;  }
    .tb-columns .tb-col-sm-3  { grid-column: span 3;  }
    .tb-columns .tb-col-sm-4  { grid-column: span 4;  }
    .tb-columns .tb-col-sm-5  { grid-column: span 5;  }
    .tb-columns .tb-col-sm-6  { grid-column: span 6;  }
    .tb-columns .tb-col-sm-7  { grid-column: span 7;  }
    .tb-columns .tb-col-sm-8  { grid-column: span 8;  }
    .tb-columns .tb-col-sm-9  { grid-column: span 9;  }
    .tb-columns .tb-col-sm-10 { grid-column: span 10; }
    .tb-columns .tb-col-sm-11 { grid-column: span 11; }
    .tb-columns .tb-col-sm-12 { grid-column: span 12; }
}

/* md: 768px and up */
@media (min-width: 768px) {
    .tb-columns .tb-col-md-1  { grid-column: span 1;  }
    .tb-columns .tb-col-md-2  { grid-column: span 2;  }
    .tb-columns .tb-col-md-3  { grid-column: span 3;  }
    .tb-columns .tb-col-md-4  { grid-column: span 4;  }
    .tb-columns .tb-col-md-5  { grid-column: span 5;  }
    .tb-columns .tb-col-md-6  { grid-column: span 6;  }
    .tb-columns .tb-col-md-7  { grid-column: span 7;  }
    .tb-columns .tb-col-md-8  { grid-column: span 8;  }
    .tb-columns .tb-col-md-9  { grid-column: span 9;  }
    .tb-columns .tb-col-md-10 { grid-column: span 10; }
    .tb-columns .tb-col-md-11 { grid-column: span 11; }
    .tb-columns .tb-col-md-12 { grid-column: span 12; }
}

/* lg: 992px and up */
@media (min-width: 992px) {
    .tb-columns .tb-col-lg-1  { grid-column: span 1;  }
    .tb-columns .tb-col-lg-2  { grid-column: span 2;  }
    .tb-columns .tb-col-lg-3  { grid-column: span 3;  }
    .tb-columns .tb-col-lg-4  { grid-column: span 4;  }
    .tb-columns .tb-col-lg-5  { grid-column: span 5;  }
    .tb-columns .tb-col-lg-6  { grid-column: span 6;  }
    .tb-columns .tb-col-lg-7  { grid-column: span 7;  }
    .tb-columns .tb-col-lg-8  { grid-column: span 8;  }
    .tb-columns .tb-col-lg-9  { grid-column: span 9;  }
    .tb-columns .tb-col-lg-10 { grid-column: span 10; }
    .tb-columns .tb-col-lg-11 { grid-column: span 11; }
    .tb-columns .tb-col-lg-12 { grid-column: span 12; }
}

/* Optional niceties: padding inside columns */
.tb-columns .tb-column > * {
    margin: 0;
}

/* Example content styling you may want */
.tb-column { padding: 0; }


/* -----------------------------------------------------------------------------  Price box */
/* Pricing Table Container */
.pricing-table {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
}

/* Column widths */
.pricing-table.columns-1 .price-box-advanced { flex: 0 0 100%; }
.pricing-table.columns-2 .price-box-advanced { flex: 0 0 48%; }
.pricing-table.columns-3 .price-box-advanced { flex: 0 0 30%; }
.pricing-table.columns-4 .price-box-advanced { flex: 0 0 22%; }

/* Price Box Base */
/* Price Box Base */
.price-box-advanced {
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 25px 20px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
    background: #f9f9f9;
    color: #333;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

/* Highlighted Box - slight lift only */
.price-box-advanced.price-box-highlight {
    border: 2px solid #4a90e2;
    background: #ffffff;
    transform: translateY(-5px); /* slightly lifted */
    box-shadow: 0 10px 20px rgba(0,0,0,0.05); /* subtle shadow */
}

/* Hover effect for all boxes - subtle */
.price-box-advanced:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.05);
}

/* Header */
.price-box-header h3 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 15px;
}

/* Price */
.price-box-price {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 10px;
}

.price-box-price .period {
    font-size: 16px;
    font-weight: 400;
    color: #777;
}

/* Description */
.price-box-description {
    font-size: 14px;
    color: #555;
    margin-bottom: 15px;
}

/* Features with modern check/cross */
.price-box-features {
    list-style: none;
    padding: 0;
    margin-bottom: 20px;
}

.price-box-features li.feature-item {
    display: flex;
    align-items: center;
    gap: 8px; /* spacing between icon and text */
    margin-bottom: 6px;
}

.price-box-features li.feature-item svg {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}


/* Button */
.price-box-button {
    display: inline-block;
    padding: 10px 25px;
    border-radius: 50px;
    background: #4a90e2;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.3s;
}

.price-box-button:hover {
    background: #357abd;
}

/* Responsive */
@media (max-width: 992px) {
    .pricing-table.columns-3 .price-box-advanced,
    .pricing-table.columns-4 .price-box-advanced { flex: 0 0 48%; }
}
@media (max-width: 600px) {
    .pricing-table .price-box-advanced { flex: 0 0 100%; }
}
