/* ------------ HEADER ------------ */
.custom-site-header{
  position: fixed;
  width: 100%;
  background: var(--color-secondary);
  border-bottom: 1px solid rgba(0,0,0,.08);
  z-index: 10;
}

.header__inner{
  max-width: var(--max-width-container);
  height: 80px;
  margin: 0 auto;
  padding: var(--spacing-lg) var(--spacing-xl);
  display: flex;
  align-items: center;
  gap: var(--spacing-lg);
}

/* Logo */
.header__logo, .header__logo img{
  height: 100%;      
}

/* Nav */
.header__nav{
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
}

.menu{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: var(--spacing-lg);
}

.menu__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 999px;

  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--font-size-md);
  line-height: 1;
  font-weight: 500;

  background: transparent;
  transition: all .3s ease;
}

.menu__link:hover, .menu__link:focus-visible, .menu__link.is-active{
  background: var(--color-tertiary);
  outline: none;
 transform: translateY(2px);
}

/* CTA button */
.header__cta{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 999px;

  background: var(--color-primary);
  color: var(--color-secondary);
  text-decoration: none;

  font-size: var(--font-size-md);
  line-height: 1;
  font-weight: 600;

  transition: all .3s ease;
}

.header__cta:hover,
.header__cta:focus-visible{
  opacity: .92;
  outline: none;
  color: var(--color-secondary);
  transform: translateY(2px);
}

/* Responsive minimal */
@media (max-width: 900px){
  .header__inner{
    gap: var(--spacing-md);
  }
  .header__nav{
    justify-content: flex-start;
    overflow-x: auto;
  }
  .menu{
    gap: var(--spacing-md);
    white-space: nowrap;
  }
}

/* ------------ HERO ------------ */
.custom .hero {
    min-height: 100vh;
    position: relative;
    display: flex;
    align-items: flex-end;
    padding: var(--spacing-lg) var(--spacing-xxl);
    background: var(--color-primary);
}
.custom .hero h1 {
    font-size: var(--font-size-xl);
    font-style: italic;
    letter-spacing: -2px;
    font-family: var(--font-accent);
    color: var(--color-secondary);
    max-width: 600px;
}

/* ------------ DESCRIPTION ------------ */
.custom .description h2 {
    text-align: center;
}
.custom .description .text {
    width: 60%;
    margin: 0 auto;
}

/* ------------ CAROUSEL ------------ */
.practices-carousel {
  background: var(--color-secondary,#fff);
}
.practices-carousel h2 {
    padding-left: var(--spacing-xxl);
}
.carousel {
  display: flex;
  gap: var(--spacing-lg);
  overflow-x: auto;
 /* -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  cursor: grab;
  scrollbar-width: none; /* Firefox */
}
/* .carousel::-webkit-scrollbar { display: none; } Chrome/Safari */
.carousel.is-grabbing { cursor: grabbing; }

.carousel__slide {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 1.5px 12px 1.5px rgb(0 0 0 / 7%);
  flex: 0 0 38vw;
  position: relative;
  overflow: hidden;
  transition: box-shadow .18s;
}

.carousel__slide--center {
  box-shadow: 0 2.5px 18px 2.5px rgb(0 0 0 / 10%);
  z-index: 2;
}

.carousel__img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  display: block;
  border-radius: 12px;
}

.carousel__label {
  position: absolute;
  left: var(--spacing-lg);
  bottom: var(--spacing-lg);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 999px;
  background: #e6e6e6;
  color: #222;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.07rem;
  font-style: italic;
  letter-spacing: 0;
  z-index: 5;
  box-shadow: 0px 1px 4px rgb(0 0 0 / 12%);
}

.carousel__icon {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  z-index: 5;
  pointer-events: none;
}

/* Survol slide */
.carousel__slide:hover, .carousel__slide:focus-within {
  box-shadow: 0 4px 22px 3px rgb(5 147 252 / 12%);
}

.carousel__link {
  display: block;
  position: relative;
  transition: box-shadow .18s;
}

/* Responsive simple */
@media (max-width: 900px){
  .carousel__img { height: 180px; }
  .carousel__slide { min-width: 75vw; }
}