/* ============================================================
   layout.css — Header, footer, blocs hero "image-notched"
   ============================================================ */

/* ============================================================
   Header — transparent sur fond mint, avec dropdowns
   ============================================================ */

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--c-mint);
  transition: background var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
.site-header.is-scrolled {
  background: rgba(242, 247, 244, 0.94);
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  box-shadow: 0 1px 0 rgba(26, 26, 26, 0.06);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-5);
  padding-block: var(--sp-5);
}

/* --- Logo "l'atelier Contemporain" sur deux lignes (style cuisine64) --- */
.site-brand {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
  text-decoration: none;
  color: var(--c-ink);
}
.site-brand__title {
  font-family: var(--ff-display);
  font-size: var(--fs-md);
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
}
.site-brand__subtitle {
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  margin-top: 2px;
}

/* --- Navigation principale --- */
.site-nav {
  display: flex;
  align-items: center;
  gap: var(--sp-6);
}
.site-nav__list {
  display: flex;
  gap: var(--sp-6);
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}

.site-nav__link {
  position: relative;
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  padding-block: var(--sp-3);
  color: var(--c-ink);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  background: transparent;
  border: 0;
}
.site-nav__link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: var(--c-ink);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--dur-base) var(--ease-out);
}
.site-nav__link:hover::after,
.site-nav__link[aria-current="page"]::after,
.site-nav__link[aria-expanded="true"]::after { transform: scaleX(1); }

.site-nav__link .caret {
  font-size: 0.7em;
  transition: transform var(--dur-fast) var(--ease-out);
}
.site-nav__link[aria-expanded="true"] .caret { transform: rotate(180deg); }

/* --- Dropdown submenu --- */
.has-submenu { position: relative; }

.submenu {
  position: absolute;
  top: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 220px;
  padding: var(--sp-4) 0;
  margin: 0;
  list-style: none;
  background: var(--c-ink);
  color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(26, 26, 26, 0.18);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--dur-fast) var(--ease-out),
    transform var(--dur-fast) var(--ease-out),
    visibility 0s linear var(--dur-fast);
  z-index: 60;
}
.has-submenu:hover .submenu,
.has-submenu:focus-within .submenu,
.has-submenu.is-open .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  transition-delay: 0s;
}

.submenu li { margin: 0; }
.submenu a {
  display: block;
  padding: var(--sp-3) var(--sp-6);
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: #ffffff;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}
.submenu a:hover,
.submenu a:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}
.submenu a[aria-current="page"] {
  color: var(--c-mint);
}

/* Petite flèche pointant vers le bouton parent (façon tooltip) */
.submenu::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px;
  height: 12px;
  background: var(--c-ink);
}

/* --- CTA Contact (pilule) --- */
.site-nav__cta {
  display: inline-flex;
  align-items: center;
  padding: var(--sp-3) var(--sp-5);
  background: var(--c-button);
  color: var(--c-button-text);
  font-family: var(--ff-body);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  border-radius: var(--r-pill);
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out-back);
}
.site-nav__cta:hover {
  background: var(--c-button-hover);
  color: var(--c-button-text);
  transform: translateY(-1px);
}

/* --- Hamburger mobile --- */
.site-nav__toggle {
  display: none;
  width: 32px; height: 32px;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.site-nav__toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--c-ink);
  transition: transform var(--dur-fast) var(--ease-out),
              opacity var(--dur-fast) var(--ease-out);
}

/* ============================================================
   BLOC HERO IMAGE-NOTCHED  (signature cenza)

   .hero-image
     .hero-image__media       <-- l'image, avec coin biseauté
     .hero-image__caption     <-- titre serif + paragraphe en bas-gauche
     .hero-image__button      <-- pilule centrée en bas
   ============================================================ */

.hero-image {
  position: relative;
  margin-block: clamp(2rem, 5vw, var(--sp-7));
  padding-inline: var(--container-pad);
}

.hero-image__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--c-card);
  /* Coin biseauté bas-gauche (signature cenza) */
  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    calc(35% + var(--notch)) 100%,
    calc(35% + var(--notch)) calc(100% - var(--notch)),
    35% calc(100% - var(--notch)),
    35% 100%,
    0 100%
  );
}
.hero-image__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Variante : encoche bas-gauche pour caption */
.hero-image--caption-left .hero-image__media {
  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    0 100%,
    0 60%,
    32% 60%,
    32% 100%,
    0 100%
  );
}

/* Caption (titre + paragraphe) en bas-gauche, hors image */
.hero-image__caption {
  width: 32%;
  padding: var(--sp-6) 0 0;
}
.hero-image__caption h1,
.hero-image__caption h2 {
  font-size: clamp(2rem, 4.5vw, 3.75rem);
  margin-bottom: var(--sp-5);
  line-height: var(--lh-tight);
}
.hero-image__caption p {
  font-size: var(--fs-base);
  color: var(--c-ink-soft);
}

/* Bouton pilule "intégré" en bas-centre */
.hero-image__cta {
  position: absolute;
  bottom: -22px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

/* ============================================================
   Variante simple : hero "full-image + bouton" sans caption
   (comme les écrans Salon / Cuisine de cenza)
   ============================================================ */

.hero-tile {
  position: relative;
  margin-block: clamp(2rem, 5vw, var(--sp-7));
  padding-inline: var(--container-pad);
}
.hero-tile__media {
  position: relative;
  width: 100%;
  aspect-ratio: 21 / 9;
  overflow: hidden;
  background: var(--c-card);
  border-radius: 0;
  /* Encoche en bas-centre pour accueillir le bouton */
  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    calc(50% + 140px) 100%,
    calc(50% + 130px) calc(100% - 6px),
    calc(50% + 110px) calc(100% - 22px),
    calc(50% - 110px) calc(100% - 22px),
    calc(50% - 130px) calc(100% - 6px),
    calc(50% - 140px) 100%,
    0 100%
  );
}
.hero-tile__media img {
  width: 100%; height: 100%; object-fit: cover;
}
.hero-tile__cta {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}

/* ============================================================
   Grilles
   ============================================================ */

.grid { display: grid; gap: var(--sp-6); }
.grid--2 { grid-template-columns: 1fr 1fr; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--auto { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }

.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 6vw, var(--sp-9));
  align-items: center;
}

/* ============================================================
   Footer
   ============================================================ */

.site-footer {
  background: var(--c-ink);
  color: rgba(255,255,255,0.75);
  padding-block: var(--sp-8) var(--sp-5);
  font-size: var(--fs-sm);
}
.site-footer a { color: #ffffff; }
.site-footer a:hover { color: var(--c-mint); }

.site-footer__top {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--sp-7);
  padding-bottom: var(--sp-7);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.site-footer__brand h3 {
  color: #ffffff;
  font-family: var(--ff-display);
  font-size: var(--fs-xl);
  margin-bottom: var(--sp-3);
}
.site-footer h6 {
  color: #ffffff;
  letter-spacing: var(--tracking-xwide);
  margin-bottom: var(--sp-4);
}
.site-footer__list { list-style: none; margin: 0; padding: 0; }
.site-footer__list li { margin-bottom: var(--sp-2); }
.site-footer__bottom {
  margin-top: var(--sp-5);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-xs);
  color: rgba(255,255,255,0.5);
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 960px) {
  .split, .grid--2, .grid--3 { grid-template-columns: 1fr; }
  .site-footer__top { grid-template-columns: 1fr 1fr; }
  .hero-image--caption-left .hero-image__media {
    clip-path: none;
    aspect-ratio: 4 / 3;
  }
  .hero-image__caption { width: 100%; }
}

@media (max-width: 960px) {
  /* À partir de 960px on cache la nav horizontale et on affiche le hamburger */
  .site-nav__list, .site-nav__cta { display: none; }
  .site-nav__toggle { display: flex; }

  .site-nav.is-open .site-nav__list {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--c-mint);
    padding: var(--sp-5) var(--container-pad);
    gap: var(--sp-2);
    box-shadow: 0 12px 32px rgba(0,0,0,0.08);
    align-items: flex-start;
    border-top: 1px solid var(--c-rule);
  }
  .site-nav.is-open .site-nav__cta {
    display: inline-flex;
    margin-top: var(--sp-3);
  }

  /* Sur mobile, le submenu se déroule verticalement sous l'item parent */
  .site-nav.is-open .has-submenu { width: 100%; }
  .site-nav.is-open .submenu {
    position: static;
    transform: none;
    display: none;
    background: transparent;
    color: var(--c-ink);
    box-shadow: none;
    padding: var(--sp-2) 0 var(--sp-3) var(--sp-4);
    opacity: 1;
    visibility: visible;
    min-width: 0;
  }
  .site-nav.is-open .submenu::before { display: none; }
  .site-nav.is-open .submenu a {
    color: var(--c-ink-soft);
    padding: var(--sp-2) 0;
  }
  .site-nav.is-open .submenu a:hover { background: transparent; color: var(--c-ink); }
  .site-nav.is-open .has-submenu.is-open .submenu { display: block; }

  .site-footer__top { grid-template-columns: 1fr 1fr; gap: var(--sp-5); }
}

@media (max-width: 720px) {
  .site-footer__top { grid-template-columns: 1fr; }
}
