/* DOMUS PRIME CMS v1.6 — unified mobile accordion and carousel controls */

/* One visual language for all accordion/FAQ blocks. */
.accordion{
  width:100%;
}
.accordion .faq-item,
.service-faq .faq-item{
  overflow:hidden;
}
.accordion__btn{
  width:100%;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.accordion__btn i{
  pointer-events:none;
  transition:transform .24s ease,background .24s ease,color .24s ease;
}
.accordion__btn.active i{
  transform:rotate(45deg);
}
.accordion__content{
  max-height:0;
  overflow:hidden;
  transition:max-height .34s cubic-bezier(.22,.61,.36,1);
}

/* Premium controls for reviews and every section using slider-controls. */
.slider-controls{
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
}
.slider-controls button{
  appearance:none;
  -webkit-appearance:none;
  width:52px!important;
  height:52px!important;
  min-width:52px;
  padding:0!important;
  display:grid!important;
  place-items:center;
  border:1px solid rgba(24,24,19,.12)!important;
  border-radius:18px!important;
  background:rgba(255,250,240,.82)!important;
  color:#171714!important;
  box-shadow:0 14px 36px rgba(14,14,10,.10),inset 0 1px 0 rgba(255,255,255,.75)!important;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  cursor:pointer;
  transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease,color .22s ease;
}
.slider-controls button i{
  font-size:17px!important;
  line-height:1;
  color:inherit!important;
}
.slider-controls button:hover,
.slider-controls button:focus-visible{
  transform:translateY(-2px);
  background:linear-gradient(135deg,var(--gold2),var(--gold))!important;
  border-color:rgba(201,164,97,.55)!important;
  color:#171714!important;
  box-shadow:0 18px 42px rgba(201,164,97,.24)!important;
  outline:none;
}
.slider-controls button:active{
  transform:translateY(0) scale(.97);
}
.slider-controls button:disabled{
  opacity:.42;
  pointer-events:none;
}

/* Keep the review section visually stable on phones. */
.testimonials .section-top{
  gap:24px;
}
.testimonials .review-slider{
  overflow:hidden!important;
}
.testimonials .review-track{
  touch-action:pan-y;
}
.testimonials .review{
  overflow:hidden;
}
.testimonials .review>p{
  overflow-wrap:anywhere;
  hyphens:auto;
}
.testimonials .review-dots button{
  appearance:none;
  border:0;
  cursor:pointer;
}

@media (max-width:760px){
  /* Section heading and controls no longer look detached. */
  .testimonials .section-top{
    display:grid!important;
    grid-template-columns:1fr;
    align-items:start!important;
    margin-bottom:30px!important;
  }
  .testimonials .section-top>div{
    width:100%;
  }
  .testimonials .slider-controls{
    width:100%;
    justify-content:flex-start;
    gap:10px;
  }
  .slider-controls button{
    width:48px!important;
    height:48px!important;
    min-width:48px;
    border-radius:16px!important;
  }
  .slider-controls button i{
    font-size:16px!important;
  }

  .testimonials .review-slider{
    padding-bottom:28px!important;
  }
  .testimonials .review-track{
    gap:14px!important;
  }
  .testimonials .review{
    flex:0 0 100%!important;
    min-height:0!important;
    padding:24px!important;
    border-radius:26px!important;
  }
  .testimonials .review>p{
    font-size:clamp(24px,7.6vw,34px)!important;
    line-height:1.12!important;
    letter-spacing:-.04em!important;
    margin-bottom:32px!important;
  }
  .testimonials .review__bottom{
    gap:16px!important;
  }
  .testimonials .review__project{
    width:100%;
    min-width:0;
    grid-template-columns:48px minmax(0,1fr) auto!important;
    gap:12px!important;
    padding:11px!important;
    border-radius:18px!important;
  }
  .testimonials .review__project img{
    width:48px!important;
    height:42px!important;
    border-radius:12px!important;
  }
  .testimonials .review__project span{
    min-width:0;
  }
  .testimonials .review__project strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  /* Unified FAQ cards on all public pages. */
  .service-faq .accordion,
  .accordion{
    gap:10px;
  }
  .service-faq .faq-item,
  .accordion .faq-item{
    border-radius:20px!important;
  }
  .service-faq .accordion__btn,
  .faq-item .accordion__btn{
    min-height:66px!important;
    padding:16px!important;
    display:flex!important;
    align-items:flex-start!important;
    gap:12px!important;
    text-align:left!important;
    font-size:16px!important;
    line-height:1.38!important;
  }
  .service-faq .accordion__btn span,
  .faq-item .accordion__btn span{
    flex:1 1 auto;
    min-width:0;
    overflow-wrap:anywhere;
  }
  .service-faq .accordion__btn i,
  .faq-item .accordion__btn i{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    flex:0 0 34px!important;
    margin-left:auto;
    margin-top:-1px;
    display:grid!important;
    place-items:center;
    border-radius:50%!important;
  }
  .service-faq .accordion__content p,
  .faq-item .accordion__content p{
    padding:0 16px 18px!important;
    font-size:14px!important;
    line-height:1.65!important;
  }

  /* Materials remains lighter, but uses the same safe interaction geometry. */
  .materials .accordion{
    gap:0;
  }
  .materials .accordion__btn{
    min-height:64px;
    padding:17px 0!important;
    display:flex;
    align-items:center!important;
    gap:14px!important;
  }
  .materials .accordion__btn i{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    flex:0 0 30px!important;
    display:grid!important;
    place-items:center;
  }
  .materials .accordion__content p{
    padding:0 0 18px!important;
  }
}

@media (max-width:430px){
  .testimonials .review{
    padding:22px!important;
  }
  .testimonials .review>p{
    font-size:clamp(23px,7.8vw,31px)!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .accordion__content,
  .accordion__btn i,
  .slider-controls button{
    transition:none!important;
  }
}
