/* =====================================================================
   Palmwood Real Estate — layout.css
   Page scaffolding shared by every page: containers, fixed header,
   full-screen menu and the site footer (+ their responsive rules).
   ===================================================================== */

/* ---------- Page shell & containers ---------- */
.page-main{position:relative}

.container{max-width:1500px;margin:0 auto}
.container--wide{max-width:1600px;margin:0 auto}
.container--narrow{max-width:1100px;margin:0 auto}
.container--text{max-width:880px;margin:0 auto}

/* =====================================================================
   Header
   ===================================================================== */
.pw-header{
  position:fixed;top:0;left:0;right:0;z-index:9000;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px var(--gutter);
  color:var(--ink);
  transition:background-color .5s,backdrop-filter .5s;
}
.pw-header.scrolled{background:color-mix(in srgb,var(--canvas) 82%,transparent);backdrop-filter:blur(14px)}
.pw-header.dark{color:var(--cream)}
.pw-header.dark.scrolled{background:color-mix(in srgb,var(--dark) 78%,transparent)}
.pw-header.dark .pw-logo{filter:brightness(0) invert(1)}

.pw-header__brand{display:flex;align-items:center;gap:12px}
.pw-logo--word{height:clamp(56px,5vw,72px);width:auto}

/* Burger button */
.burger{display:flex;align-items:center;gap:14px;color:inherit}
.burger .blabel{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:600}
.burger .blines{display:flex;flex-direction:column;align-items:flex-end;gap:6px;width:28px}
.burger .ln{display:block;height:1.5px;background:currentColor;transition:width .45s cubic-bezier(.19,1,.22,1),transform .45s cubic-bezier(.19,1,.22,1)}
.burger .ln:nth-child(1){width:28px}
.burger .ln:nth-child(2){width:18px}
.burger:hover .ln:nth-child(2){width:28px}

/* =====================================================================
   Full-screen menu
   ===================================================================== */
.pw-menu{
  position:fixed;inset:0;z-index:9500;
  background:var(--dark);color:var(--cream);
  display:grid;grid-template-columns:1.4fr .9fr;
  padding:clamp(28px,5vw,72px);
  opacity:0;visibility:hidden;
}
.pw-menu.open{opacity:1;visibility:visible}

.pw-menu__close{
  position:absolute;top:30px;right:var(--gutter);
  color:var(--cream);font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;font-weight:600;
  display:flex;align-items:center;gap:10px;
}
.pw-menu__close .x{font-size:18px;line-height:1}

.pw-menu__nav{align-self:center;display:flex;flex-direction:column;gap:clamp(2px,1vw,8px);padding-top:40px}

.pw-menu .ml{overflow:hidden;display:block}
.pw-menu .ml>span{display:block;transform:translateY(110%);transition:none}

.menulink{display:flex;align-items:baseline;gap:20px;cursor:pointer;transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.menulink:hover{transform:translateX(16px)}
.menulink__num{font-size:13px;color:var(--sand);font-weight:500;letter-spacing:.1em}
.menulink__label{font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.04;font-weight:500}
.menulink .serif{
  background-image:linear-gradient(to right,var(--accent) 50%,var(--cream) 50%);
  background-size:202% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  transition:background-position .75s cubic-bezier(.22,.61,.36,1);
}
.menulink:hover .serif{background-position:0 0}

.pw-menu__aside{align-self:end;display:flex;flex-direction:column;align-items:center;text-align:center;gap:30px;padding-bottom:8px}
.menu-palm{position:relative;width:clamp(200px,24vw,320px);height:clamp(200px,24vw,320px);transform-origin:center;will-change:transform}
.menu-palm__img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.55}
.pw-menu__contact{font-size:14px;line-height:1.7;color:rgba(244,241,234,.72)}
.pw-menu__contact-label{text-transform:uppercase;letter-spacing:.18em;font-size:11px;color:var(--sand);margin-bottom:12px;font-weight:600}
.pw-menu__legal{font-size:13px;letter-spacing:.05em;color:rgba(244,241,234,.6)}

/* =====================================================================
   Footer
   ===================================================================== */
.site-footer{background:var(--dark);color:var(--cream);padding:clamp(70px,10vh,120px) var(--gutter) 40px}

.foot-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;
  padding-bottom:clamp(50px,7vw,90px);
  border-bottom:1px solid rgba(244,241,234,.16);
}
.footer-cta__title{margin:0 0 24px;font-weight:500;font-size:clamp(2.4rem,5vw,4.2rem);line-height:1;max-width:14ch}

.foot-col__head{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sand);font-weight:600;margin-bottom:22px}
.foot-nav{display:flex;flex-direction:column;gap:13px}
.foot-link{font-size:15px;color:rgba(244,241,234,.82);align-self:flex-start;white-space:nowrap}
.foot-contact{font-size:15px;line-height:1.8;color:rgba(244,241,234,.82)}

.footer-bottom{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;padding-top:36px}
.footer-logo{height:30px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.footer-meta{display:flex;gap:28px;align-items:center;flex-wrap:wrap;font-size:13px;color:rgba(244,241,234,.55)}
.footer-meta__dim{color:rgba(244,241,234,.55)} /* .38 → .55 for AA contrast on --dark */

/* =====================================================================
   Responsive — chrome
   ===================================================================== */
@media (max-width:900px){
  .pw-menu{grid-template-columns:1fr;overflow-y:auto;align-content:start;gap:clamp(30px,6vw,48px);padding-top:clamp(86px,16vw,110px)}
  .pw-menu .menulink .serif{font-size:clamp(2.2rem,9vw,3.4rem)}
  .pw-menu .menu-palm{width:clamp(140px,34vw,210px);height:clamp(140px,34vw,210px)}
  .pw-menu__aside{align-self:start;align-items:flex-start;text-align:left}
}
@media (max-width:760px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px}
  .foot-grid>*:first-child{grid-column:1 / -1}
}
@media (max-width:440px){
  .foot-grid{grid-template-columns:1fr}
}

/* =====================================================================
   Language switcher (menu + footer) — FR active, EN placeholder (à câbler vers /en/)
   ===================================================================== */
.lang-switch{display:inline-flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.14em;font-weight:600;text-transform:uppercase;line-height:1}
.lang-switch__item{background:none;border:none;padding:0;margin:0;font:inherit;letter-spacing:inherit;color:rgba(244,241,234,.5);cursor:pointer;transition:color .3s}
.lang-switch__item:hover{color:var(--cream)}
.lang-switch__item.is-active{color:var(--cream);cursor:default}
.lang-switch__sep{color:rgba(244,241,234,.3)}
