/* ==========================================================================
   Comandero Móvil — page styles
   Breakpoints follow the original page builder:
   tablet = 768–991px, mobile = ≤767px.
   ========================================================================== */

/* ---------- Shared bits ---------- */
.cm-btn {
  --bs-btn-padding-y: 8px;
  --bs-btn-padding-x: 16px;
  --bs-btn-font-size: 20px;
  --bs-btn-line-height: 1.5;
  --bs-btn-border-radius: 5px;
  --bs-btn-hover-bg: var(--sr-orange);
  --bs-btn-hover-border-color: var(--sr-orange);
  font-weight: 400;
  white-space: normal;
}

/* ---------- Hero ---------- */
.cm-hero {
  display: flex;
  align-items: center;
  min-height: 400px;
  padding: 76px 0 2px;
  background-image: url('../../img/shared/restaurante-comandero-bg.webp');
  background-position: 0 0;
}
.cm-hero > .container { flex: 1 0 100%; }
.cm-hero__overlay { background-color: rgba(58, 43, 76, .87); }
.cm-hero__title {
  margin: 0 0 10px;
  font-size: 60px;
  font-weight: 700;
  color: #f7f7f7;
}
.cm-hero__accent { color: #ef6e16; }
.cm-hero__subtitle {
  margin: 0 0 60px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.2;
  color: #fff;
}
.cm-hero__text {
  width: 60%;
  margin: 0 auto 30px;
  font-size: 18px;
  line-height: 25px;
  color: #fff;
  --animate-duration: 700ms;
}
.cm-hero .cm-btn { margin-bottom: 30px; }

@media (min-width: 768px) and (max-width: 991.98px) {
  .cm-hero { min-height: 350px; }
  .cm-hero__title { margin-bottom: 20px; }
  .cm-hero__text { width: 90%; font-size: 16px; line-height: 22px; }
}
@media (max-width: 767.98px) {
  .cm-hero { min-height: 300px; padding: 30px 0 2px; }
  .cm-hero__title { margin-bottom: 10px; font-size: 40px; line-height: 40px; }
  .cm-hero__text { width: 100%; font-size: 16px; line-height: 22px; }
  .cm-btn { --bs-btn-font-size: 18px; }
}

/* ---------- Beneficios con barras ---------- */
.cm-benefits { padding: 109px 0 110px; }
.cm-benefits__intro { width: 85%; font-size: 20px; font-weight: 400; }
.cm-benefits__title {
  margin-bottom: 25px;
  font-size: 46px;
  line-height: 56px;
  font-weight: 700;
}
.cm-benefits__image { display: inline-block; --animate-duration: 900ms; }

.cm-skills__list { list-style: none; margin: 0; padding: 0; }
.cm-skill { margin-bottom: 10px; }
.cm-skill__label {
  display: block;
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 20px;
  font-weight: 400;
}
.cm-skill__bar {
  display: block;
  height: 6px;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f5f5f5;
  border-radius: 4px;
}
.cm-skill__fill {
  display: block;
  width: 100%;
  height: 100%;
  background-color: #3071ff;
}
/* Progress bars grow from 0 when revealed (main.js adds animate__growWidth) */
.animate__growWidth { animation-name: cmGrowWidth; }
@keyframes cmGrowWidth { from { width: 0; } to { width: 100%; } }

@media (min-width: 768px) and (max-width: 991.98px) {
  .cm-benefits { padding: 100px 0; }
  .cm-benefits__intro { width: 100%; }
  .cm-skills { padding-top: 20px; }
  .cm-benefits__image { margin: 50px 150px 0; max-width: calc(100% - 300px); }
}
@media (max-width: 767.98px) {
  .cm-benefits { padding: 63px 0 50px; }
  .cm-benefits__intro { width: 100%; }
  .cm-benefits__title { font-size: 35px; line-height: 40px; }
  .cm-skills { padding: 20px 0; }
  .cm-benefits__image { margin: 50px 40px 0; max-width: calc(100% - 80px); }
}

/* ---------- Agilice su servicio ---------- */
.cm-agile { padding: 110px 0; color: #fff; }
/* The original background photo (rawpixel k-111-t-686) is no longer available;
   the gradient overlay is what the live page renders. */
.cm-agile__overlay { background: linear-gradient(45deg, rgba(0, 0, 0, .66) 0%, rgba(86, 22, 152, .86) 100%); }
.cm-agile__intro { margin-bottom: 30px; font-size: 20px; font-weight: 400; }
.cm-agile__title {
  margin-bottom: 30px;
  font-size: 45px;
  line-height: 30px;
  font-weight: 700;
  color: #fff;
}
.cm-agile__video { margin: 0 50px; width: auto; }
.cm-agile__link {
  display: inline-block;
  margin: 25px 0 30px;
  padding: 7px 17px;
  border-radius: 3px;
  color: #fff;
}
.cm-agile__link:hover, .cm-agile__link:focus { color: #fff; background-color: rgba(0, 0, 0, .05); }

@media (min-width: 768px) and (max-width: 991.98px) {
  .cm-agile__video { margin: 0 0 20px; }
  .cm-agile__link { margin: 0 0 20px; }
}
@media (max-width: 767.98px) {
  .cm-agile { padding: 72px 0 71px; }
  .cm-agile__title { font-size: 30px; line-height: 40px; }
  .cm-agile__video { margin: 0 0 10px; }
  .cm-agile__link { margin: 0 0 10px; }
}

/* ---------- Dirige, controla y administra ---------- */
.cm-control { padding: 110px 0 140px; }
.cm-control__shot--first { padding-left: 30px; }
.cm-control__shot img[data-animate] { --animate-duration: 900ms; }
.cm-control__text { padding-left: 30px; font-size: 18px; line-height: 24px; }
.cm-control__title {
  margin-bottom: 25px;
  font-size: 45px;
  line-height: 1.2;
  font-weight: 700;
  color: #3c3b44;
}

@media (max-width: 991.98px) {
  .cm-control { padding: 50px 0; }
  .cm-control__text { padding: 30px 0 0; }
  .cm-control__shot--first { padding: 30px 0 0; }
}
@media (max-width: 767.98px) {
  .cm-control__text { padding-top: 0; }
  .cm-control__shot--first { padding: 0 80px; }
  .cm-control__title { font-size: 30px; line-height: 40px; }
}

/* ---------- Experiencia (galería) ---------- */
.cm-experience {
  padding: 150px 0;
  color: #fff;
  background-image: url('../../img/comandero-movil/slide-restaurante-1.jpg');
}
.cm-experience__overlay { background: linear-gradient(45deg, rgba(86, 57, 66, .85) 0%, rgba(86, 22, 152, .86) 100%); }
.cm-experience__text { font-size: 18px; line-height: 24px; }
.cm-experience__title {
  margin-bottom: 25px;
  font-size: 45px;
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
}
.cm-gallery { gap: 0; margin: -8px -8px 22px; }
.cm-gallery li { margin: 8px; }
.cm-gallery img { width: 140px; height: 220px; object-fit: cover; }

@media (min-width: 768px) and (max-width: 991.98px) {
  .cm-experience { padding: 100px 0; }
  .cm-gallery { margin-bottom: 12px; }
}
@media (max-width: 767.98px) {
  .cm-experience { padding: 50px 0; }
  .cm-experience__title { font-size: 30px; line-height: 40px; }
  .cm-gallery { margin-bottom: 12px; }
  .cm-gallery img { width: 95px; height: 145px; }
}

/* ---------- Carrusel + acordeón ---------- */
.cm-details { padding: 119px 0 70px; background-color: #f3f5f7; }

.cm-carousel { margin-bottom: 30px; }
.cm-carousel .carousel-indicators { margin-bottom: 10px; }
.cm-carousel .carousel-indicators [data-bs-target] {
  box-sizing: border-box;
  width: 10px;
  height: 10px;
  margin: 1px;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 10px;
  background-color: transparent;
  opacity: 1;
}
.cm-carousel .carousel-indicators .active { width: 12px; height: 12px; margin: 0; background-color: #fff; }
.cm-carousel__arrow {
  width: 40px;
  font-size: 24px;
  color: #fff;
  opacity: .8;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
}
.cm-carousel__arrow:hover, .cm-carousel__arrow:focus { opacity: .9; }

.cm-accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-width: 1px;
  --bs-accordion-border-color: transparent;
  --bs-accordion-border-radius: 0;
  --bs-accordion-inner-border-radius: 0;
  --bs-accordion-btn-padding-x: 15px;
  --bs-accordion-btn-padding-y: 10px;
  --bs-accordion-btn-color: var(--sr-text);
  --bs-accordion-btn-bg: #fff;
  --bs-accordion-active-color: #fff;
  --bs-accordion-active-bg: #4d4161;
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-body-padding-x: 15px;
  --bs-accordion-body-padding-y: 15px;
  margin-bottom: 30px;
}
.cm-accordion .accordion-item { margin-bottom: 10px; overflow: hidden; }
.cm-accordion .accordion-item:not(:first-of-type) { border-top: 1px solid transparent; }
.cm-accordion .accordion-header { margin: 0; }
.cm-accordion .accordion-button {
  padding-right: 30px;
  font-size: 18px;
  line-height: 28px;
  font-weight: 400;
  transition: background-color .4s, color .4s;
}
.cm-accordion .accordion-button::after {
  width: auto;
  height: auto;
  margin-left: auto;
  background-image: none;
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 20px;
  content: "\f105"; /* angle-right */
  color: #4d4161;
  transform: none;
  transition: transform .4s, color .4s;
}
.cm-accordion .accordion-button:not(.collapsed)::after { color: #fff; transform: rotate(90deg); }
.cm-accordion .accordion-body p:last-child { margin-bottom: 0; }

@media (min-width: 768px) and (max-width: 991.98px) {
  .cm-carousel, .cm-accordion { margin-bottom: 20px; }
}
@media (max-width: 767.98px) {
  .cm-details { padding: 70px 0; }
  .cm-accordion { margin-bottom: 10px; }
}

/* ---------- Requerimientos ---------- */
.cm-requirements { padding: 80px 0; scroll-margin-top: var(--sr-header-height); }
.cm-requirements__title {
  margin: 0 0 65px;
  font-size: 36px;
  line-height: 36px;
  font-weight: 800;
  color: #3c3b44;
  text-align: center;
}
.req-group__header {
  display: flex;
  align-items: flex-start;
  margin-bottom: 20px;
  padding: 10px;
  border-radius: 3px;
  transition: box-shadow .3s;
}
.req-group__icon {
  flex: 0 0 auto;
  display: inline-block;
  margin-right: 15px;
  padding: 8px 10px;
  border-radius: 100px;
  background-color: #f56e1a;
  color: #fff;
  text-align: center;
}
.req-group__icon i { display: block; width: 25px; height: 25px; font-size: 25px; line-height: 25px; }
.req-group__title {
  margin: 5px 0 5px;
  font-weight: 400;
  color: #122646;
}
.req-group__list { list-style: none; margin: 0; padding: 0; }
.req-group__list li {
  padding: 10px 10px 10px 20px;
  font-family: 'Source Sans Pro', 'Source Sans 3', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  color: #59667d;
}
.req-group__list li:nth-child(odd) { background-color: #eeeff2; }

@media (min-width: 768px) and (max-width: 991.98px) {
  .req-group__header { padding: 15px; margin-bottom: 20px; }
  .req-group--second { padding-top: 55px; }
}
@media (max-width: 767.98px) {
  .cm-requirements { padding: 40px 0; }
  .req-group__header { margin: 12px 15px 10px; }
  .req-group__title { font-size: 20px; line-height: 30px; }
  .req-group__list li { padding: 12px 15px; font-size: 14px; line-height: 20px; }
  .req-group--second { padding-top: 48px; }
}
